java

Java面试中最基础的问题,你还不知道吗

2019-10-16  本文已影响0人  553299dc1d46

这几天沉迷在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、Int和Integer有什么区别?

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

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

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

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

请输入图片描述

11、什么是自动拆装箱?

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

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

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

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

13、String和StringBuffer有什么区别?

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

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

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

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

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

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

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

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

16、Java容器有哪些?

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

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

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

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

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

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

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

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

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

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

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

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

List转数组:List.toArray方法

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

21、Array和ArrayList有什么区别?

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

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

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

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

ArrayList查询快,LinkedList增删快

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

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

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

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

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

给大家整理了如上的24道面试题,希望这些面试题可以在你的面试过程中帮助到你,也希望你在学习的过程中可以紧紧的抓住这些面试的点并进行深入的理解。

​这里,给大家准备了一份50G+的学习资料,纯干货,绝对不水,需要这份学习资料的小伙伴可以通过下面的方式来获取这份资料。

关注小编并进行转发

给小编私信“学习”来获取这套50G的资料

上一篇 下一篇

猜你喜欢

热点阅读