java高频面试题(面向对象类)

    技术2022-07-11  113

    1.简述面向对象和面向过程的特点。

    第三代计算机高级语言中的分两种: 1.面向过程的编程语言,如:C,BASIC,PASCAL. 2.面向对象的编程语言,如:C++,JAVA,C#. 面向对象程序设计: 简称OOP,是种具有对象概念的程序编程典范,同时也是一种程序开发的抽象方针。它可能包含数据、属性、代码与方法。对象则指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高程序的重用性、灵活性和扩展性,对象里的程序可以访问及经常修改对象相关联的数据。在面向对象程序编程里,计算机程序会被设计成彼此相关的对象。 面向过程程序设计: 简称,POP,是一种以过程为中心的编程思想,也可以被称为面向记录编程思想。它们不支持丰富的“面向对象”的特性(比如继承、多台),它们不允许混合持久化状态和域逻辑。 就是分析出解决问题所需的步骤,然后用方法、函数把这些步骤一步一步实现,使用的时候一个一个依次调用。

    2.谈谈对象和类的关系

    类:具有某些共同特质的实体的集合,一种抽象的数据类型。在面向对象的程序设计语言中,类是对一类“事物”的熟属性与行为的抽象。 对象:对该类的实例,在java中通过new创建。是对该类的一种具体概念,有着自己的个性表示,有独立的属性,依靠属性来区分不同对象。 关系:类是对象的模板,对象是类的实例。在实际开发中应该先有类,之后才能产生对象。类是不能直接直接使用,而对象可以直接使用。

    3.如果将内存分为栈和堆,简述他们的特点,以及能够存放什么内容?

    栈:存储:函数参数、局部变量、临时变量等。特点:编译器自分配和释放。有入栈(压栈),出栈和栈顶元素。想要读取栈中的某个元素,需要将其之间所有元素出栈才能完成。 堆:存储:对象数据。特点:对象一旦使用完并不会马上消失,典型为使用new申请的内容。而是等垃圾回收器不定时来回收。

    4.局部变量、成员变量、静态变量分别怎么声明?

    局部变量:在方法中声明的变量。 成员变量:类中方法外的变量,通过new对象来调用。 静态变量:static修饰的变量,可以通过类点调用。

    5.局部变量使用之前,必须要手动初始化吗?

    6.如果不手动指定成员变量的值,系统将会自动初始化。那初始化的规则是?

    成员变量类型 默认值 整数 0 浮点数 0.0 字符 \u0000 布尔 false 引用 null

    7.构造方法的名称必须保持跟类名一致吗?

    8.构造方法有没有返回值?

    没有

    9.构造方法何时,被谁调用

    创建对象时被系统调用,构造函数还能够被重载,即可以传入参数。

    10.构造方法中能够存在return

    可以存在return;语句,但不可返回数据。

    11.系统一定会给我们提供无参构造吗

    不一定,在我们定义了构造器后就不会系统默认给。

    12.本类中如何调用构造方法?有什么要求?

    空构造必有,并且写个有参构造。这样中new两个类的时候可直接传入参数

    13.package的作用

    它们在单一的名称空间之下被组织在了一起。这个名称空间就是包名。

    14.Import 用于导入包还是类

    包中类

    15.简述private, default, protected,public的含义

    Private 私有属性,不可直接调用 Default 默认属性

    Protected 对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private

    Public 公开的,可以直接类点使用

    16.getter和setter必须提供吗,一般是用来做什么?

    不是必须提供,一般在成员属性设置为Private时候需要在对其其赋值与调用时候在需要getter和setter

    17.继承有什么好处,使用什么关键字实现

    多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些相同属性和行为,只要继承那个类即可。 关键字 class 子类名 extends 父类名 {}

    18.如果一个类没有显示继承任何类,那么该类有父类吗?是谁?

    java的所有类有一个共同的根父类,就是java.lang.Object,所以没有显式声明父类的类的默认父类就是java.lang.Object。

    19.重写指的是什么?

    子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变

    Processed: 0.011, SQL: 9