Java--面试题(基础篇)

1、JDK和JRE有什么区别?

JDK:Java 的开发工具包,提供了 Java 的开发环境和运行环境

JRE:Java 的运行环境,为 Java 的运行提供了所需环境

具体来说:JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 ,还包含了很多 Java 程序调试和分析的工具。

简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 Java 程序,需要安装 JDK

2、==和equals的区别?

== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否为相同的一个对象;

equals用来比较的是两个对象的内容是否相等。

3、两个对象的hashCode()相同,则equals()也一定为true吗?

不一定

4、Final在Java中有什么作用?

final关键字可以用于三个地方。用于修饰类、类属性和类方法。

被final关键字修饰的类不能被继承,被final关键字修饰的类属性和类方法不能被重写

5、String能被继承吗?为什么?

不能被继承,因为String类有final修饰符,而final修饰的类是不能被继承的

6、父类的静态方法能否被子类重写?

不能,父类的静态方法能够被子类继承,但是不能被子类重写,即使子类中的静态方法与父类中的静态方法完全一样,也是两个完全不同的方法。

7、Java中的方法覆盖和方法重载的区别?

Java中的方法覆盖是说子类重新定义了父类的方法。方法覆盖必须有相同的方法名、参数列表和返回类型。方法重载发生在同一个类里面,两个或者多个方法的方法名相同但是参数不同的情况。

8、Java支持多继承吗?Java中什么支持多继承?

不支持,只支持单继承,即一个类只有一个父类;Java中的接口支持多继承,即一个接口可以有多个父接口。

9、接口和抽象类的区别是什么?

(1) 抽象类可以有构造方法,接口中不能有构造方法

(2) 抽象类中可以有普通成员变量,接口中没有普通成员变量

(3) 抽象类中可以包含非抽象普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的方法

(4) 抽象类中的抽象方法的访问权限可以是 public、protected ,接口中的抽象方法只能是 public 类型的

(5) 一个类可以实现多个接口但只能继承一个抽象类,接口不可以实现接口,但可以继承接口并且可以继承多个接口

10、Java中的Math.round(-1.5)等于多少?

Math.round(-1.5)=-1

11、Int和Integer有什么区别?

(1)Integer是int的包装类,int则是java的一种基本数据类型

(2)Integer变量必须实例化后才能使用,而int变量不需要

(3)Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象,而int则是直接存储数据值

(4)Integer的默认值是null,int的默认值是0

12、什么是自动拆装箱?

自动装箱: 就是将基本数据类型自动转换成对应的包装类

自动拆箱:就是将包装类自动转换成对应的基本数据类型

13、String属于基础的数据类型吗?

String不是基本的数据类型,是final修饰的java类,是引用类型

14、String和StringBuffer有什么区别?

String:是对象不是原始类型,为不可变对象,一旦被创建,就不能修改它的值。对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去。String 是final类,即不能被继承。

StringBuffer:是一个可变对象,当对它进行修改的时候不会像String那样重新建立对象,它只能通过构造函数来建立。

15、普通类和抽象类有哪些区别?

(1)抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法)

(2)抽象类不能用来创建对象

(3)如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。

16、抽象类必须有抽象方法吗?

不一定,抽象类可以不包含抽象方法,但包含抽象方法的类一定是抽象类

17、Java容器有哪些?

数组,String,java.util下的集合容器

18、什么是泛型?有什么优点?

泛型:即通过参数化类型来实现在同一份代码上操作多种数据类型

优点:使用泛型类型可以最大限度地重用代码、保护类型的安全以及提高性能。

19、什么是迭代器?有什么优点?

迭代器(iterator)是一种对象,它能够用来遍历容器中的部分或全部元素。

优点:iterator是一个接口类型,它不关心集合或者数组的类型,而且它还能随时修改和删除集合的元素。

20、List、Set、Map之间的区别?

List中的元素,有序、可重复、可为空;

Set中的元素,无序、不重复、只有一个空元素;

Map中的元素,无序、键不重,值可重、可一个空键、多可空值;

21、如何实现数组和List之间的转换?

List转数组:List.toArray方法

数组转List:Arrays.asList和Collections.addAll两种方法

22、Array和ArrayList有什么区别?

区别:(1)Array可以包含基本类型和对象类型,ArrayList只能包含对象类型

(2)Array大小是固定的,ArrayList的大小是动态变化的

(3)ArrayList提供了更多的方法和特性,比如:addAll(),removeAll(),iterator()等等

23、ArrayList和LinkedList各有什么优缺点?

ArrayList查询快,LinkedList增删快

24、什么是Exception?分为几种?

Exception是JAVA异常类;Exception分为两类:非运行时异常和运行时异常。

25、异常和错误有什么区别?

Exception 是程序正常运行中,可以预料的意外情况,可以被捕获,进行相应处理。

Error 是指在正常情况下,不大可能出现的情况,绝大部分的 Error 都会导致程序处于非正常的、不可恢复状态。

发布了88 篇原创文章 · 获赞 23 · 访问量 7461

猜你喜欢

转载自blog.csdn.net/S0001100/article/details/102648972