面向对象面试题

1) 面向对象的优点?

答案

易扩展 易维护

2) 如何声名一个静态块?

答案

在类中方法外声明 static关键字+代码块

3) 接口与抽象类的区别?

答案

类是单继承的,但是可以实现多个接口
抽象类里的方法可以有实例方法也可以有抽象方法
接口里面只能有抽象方法。 详细可以点击这里

4) 用于类和接口的关键字

答案

定义类的是class,如类文件的开头都是:public class 类名{ }
定义接口的是interface,如public interface 接口名{ }
用于实现接口的是implements。

5) 如何创建数组?

答案

数组是new出来的 或者直接可以声明,

举个例子 String[] array={"1","2"};

或者String[] array=new String[10];

6) 如何创建一个构造方法?要注意哪些?

答案

构造器是为了创建一个类的实例Platypus p1 = new Platypus();
注意:方法名与类名一致

7) 类的组成 和执行顺序

答案

组成:属性 方法  静态块 非静态块

执行顺序: 先父类,后子类,静态块 静态字段 非静态块 非静态字段 构造器 方法

8) main方法必须被什么修饰?

答案

方法名必须是main 是被public static void 修饰 传入String数组

9) 如何理解面向对象

答案

世间万物皆对象,对象有具体的的实例化,任何方法或者属性都要写在对象(类)里面

10) 构造方法可否能被重写:

答案

构造方法不能被继承,因此不能重写,但能被重载。

11) 静态方法中能有静态的变量吗?

答案

不能 静态变量是类变量 不可以定义在方法里

12) String与StringBuffer的区别:

答案

String 是不可变的 可以直接使用它的方法 用来创建字符串
而 Stringbuffer无论怎么修改都是一个对象
如果在字符串改变,或者迭代改变的情况下Stringbuffer比String运行快

13) 重载(overloading)与重写(override)的区别:        

答案

1.重载发生在同一个类。 重写发生在父子类中。

2.重载参数签名不同,而重写相同且返回类型相同。

3.方法名相同,重写override是父类与子类之间多态性的一种表现,重载overload是一个类中多态性的一种表现。

 14) (= =)与equals()的区别:

答案

如果是基本类型比较,那么只能用==来比较,不能用 equals
对象间的比较使用equals ==比较的是对象中的地址 而equals比较的对象
的内容(更准确的说法是根据子类覆写的equals来比较)

16) StringBuilder和StringBuffer的区别:

答案

StringBuilder比StringBuffer更加快捷,但是StringBuilder线程不安全

17) JRE,JDK,JVM分别是什么,它们有什么联系:

答案

jre 运行时环境,jvm虚拟机 jdk java开发工具包 jvm是jre的一部分

18) 普通类继承抽象类为什么一定要重写其中的抽象方法?

答案

必须要实现的,也就是要重写,如果不实现,子类无法对象实例化。

19) 什么是拆箱和装箱?

答案

 装箱就是将基本类型转换为对象类型
拆箱就是将对象类型转换为基本类型。

20) 继承与实现的区别?

答案

继承针对类,实现针对接口。
单继承、多实现的
实现要重写接口里面的方法,而继承不需要。

21) abstract为什么不能与private,final同时使用?

答案

 抽象方法需要被子类重写 所以不能够用private final修饰

24) 继承最大好处?

答案

 可以对父类的方法进行重用,节省空间

25) 写出String类常见的5个方法,并详细解释?

答案

indexOf()返回指定字符串在该字符串出现的序列
startsWith()判断该字符串是否以指定字符开始
concat() 将指定字符串连接在该字符串的结尾
length()返回字符串的长度
substring返回该字符串从索引开始 结束于字符串末尾 或者指定索引的一个子字符串

27) 普通方法的方法名可以与类名一致吗?

答案

可以

28) 在什么情况下局部变量会覆盖全局变量?

答案

当局部变量名与全局变量名相同 类型相同

29) static 修饰的方法可否支持多态?

答案

不支持多态,如果父类声明一个对象,子类实现这边变量,那么调用static修饰的时候会调用父类的,而不是子类的.

30) 使用数组前应该注意的什么?

答案

 数组下标是否越界 对数组进行初始化


31) Java语言最大的特点?

答案

 跨平台性(一次编译,多次执行)

32) 请你说说byte short char之间可以互相转换吗?为什么?

答案

 可以通过强转,可以范围小的转范围大的,子类可以转父类,反之则不行,有可能抛类型转化异常

33) 请说说引用和对象?

答案

 对象和引用是分不开的,对象生成一个地址,引用则指向了这个地址
A a=new A();
a为引用 等号右边的是对象

34) 怎样将一个String添加到另一个String的后面?

答案

(StringBuffer ,StringBuilder)的append方法
concat

35) 有几种数据类型?

答案

 JAVA数据类型分基本数据类型和引用对象类型

36) 传参有几种类型?有几种特殊类型?

答案

 基本数据类型 引用对象类型

37) 什么是匿名类,有什么好处

答案

 匿名类没有名字的类 ,封装性好,比较安全,用了一次便可以丢弃

38) jar是什么格式的文件,有什么好处

答案

 它允许将许多class文件组合成一个压缩文件,方便管理class文件

39) java和javac,javaw各有什么作用

答案

java:运行程序
javac:编译java文件至class文件
javaw: 不需要打开dos窗口就可以运行

猜你喜欢

转载自blog.csdn.net/yilihuang/article/details/80768497