1. 请你讲讲数组(Array)和列表(ArrayList)的区别?什么时候应该使用Array而不是ArrayList?
数组是固定大小的,而列表的大小可以动态可变化,数组可以存放基本数据类型的变量也可以存放对象数据类型的变量,而列表只能存放对象数据类型的变量。
如果在程序中要存储的是数据量较小,而且是在程序运行过程中不会改变的数据的话可以使用数组。如果存储的数据量比较多,而且数量无法确定,并且数据经常变化的话可以使用列表。
2. 请你解释什么是值传递和引用传递?
值传递传递的是值的一份拷贝,也就是完整的复制了一份当前对象值,而引用传递只是传递了对象的引用堆内存地址,当通过应用传递改变的对象,其中一个发生变化,另一个也会发生变化。
3. 请你讲讲Java支持的数据类型有哪些?
Java中的基本数据类型有八个:
byte、char、short、int、long、double、float、boolean
Java中还有集合类、数组等数据类型。
4. 什么是自动拆装箱?
自动拆箱/装箱指的是一个类型转换成另一个数据类型的时候无需显式告诉编译器已经发生了类型的转换,也就是数据类型与它的包装类之间的转换。比如double转换成Double、int转换成Integer类型就属于自动装箱。
5. 你知道java8的新特性吗,请简单介绍一下
- Lambda匿名函数表达式
- Stream流式操作。
- 函数式接口。
- 时间操作API的更新。
- 加入了Operaion类,处理null问题。
- 加入Base64加密、解密器。