Java基础面试题(笔记整理)

理论题

1.什么是java虚拟机?为什么java被称作是“平台无关语言”?
Java虚拟机是执行字节码文件(.class)的虚拟机进程。java源程序(.java)被编译器编译成字节码文件(.class)。然后字节码文件,将由java虚拟机,解释成机器码(不同平台的机器码不同)。利用机器码操作硬件和操作系统。
因为不同的平台装有不同的JVM,它们能够将相同的.class文件,解释成不同平台所需要的机器码。正是因为有JVM的存在,java被称为平台无关的编程语言。

2.JAVA支持的数据类型有哪些?什么是自动拆装箱?
1)8种基本数据类型:byte short char boolean int long float double
2)引用类型,包括类、接口、数组
自动拆装箱,是指基本数据类型和引用数据类型之间的自动转换,如Integer 和 int 可以自动转换; Float和float可以自动转换

3.简述方法中的参数传递的原理?
值传递:(形式参数类型是基本数据类型):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。
引用传递:(形式参数类型是引用数据类型参数):也称为传地址。方法调用时,实际参数是对象(或数组),这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方法执行中形式参数的改变将会影响实际参数。

4.简述抽象类和接口的区别?
(1) 接口只能包含抽象方法,抽象类可以包含普通方法。
(2) 接口只能定义静态常量属性,抽象类既可以定义普通属性,也可以定义静态常量属性。
(3) 接口不包含构造方法,抽象类里可以包含构造方法。
(4) 抽象类不能被实例化,但不代表它不可以有构造函数,抽象类可以有构造函数,被继承类扩充
(5) 接口是核心,其定义了要做的事情,包含了许多的方法,但没有定义这些方法应该如何做。
(6) 如果许多类实现了某个接口,那么每个都要用代码实现那些方法
(7) 如果某一些类的实现有共通之处,则可以抽象出来一个抽象类,让抽象类实现接口的公用的代码,而那些个性化的方法可以由各个子类去实现。

5.Java集合类框架的基本接口有哪些?并阐述他们的基本特征。
Java集合类里面最基本的接口有:
Collection:代表一组对象,每一个对象都是它的子元素。
Set:不包含重复元素,。
List:有顺序的集合,并且可以包含重复元素,其中含有arraylist和linkedlist。
Map:可以把键(key)映射到值(value)的对象,键不能重复。

6.在异常处理时,finally代码块的重要性是什么?(提示:一般在finally块中定义哪些内容)
无论是否抛出异常,finally代码块总是会被执行。就算是没有catch语句同时又抛出异常的情况下,finally代码块仍然会被执行。最后要说的是,finally代码块主要用来释放资源,比如:I/O缓冲区,数据库连接。

7.什么是泛型,为什么要使用泛型?
泛型:本质是参数化类型。 泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。
①改用泛型可以增加可读性和稳定性,无需强转更便捷。
②改用泛型提高代码重用性,更具模块化。
③类型安全。只有指定类型才可以添加到集合中。

猜你喜欢

转载自blog.csdn.net/weixin_43935558/article/details/108609227
今日推荐