面试刷题23-3-8

2023-3-8面经

1.请你说明一下int 和 Integer有什么区别?

​ int 是基本数据类型,integer是包装数据类型,他们可以通过装箱拆箱互相转换,integer是对象必须实例化之后才能使用,具有对象的基本方法。Integer的默认值是null,而int的默认值是0。

2.请你说明String和StringBuffer 和StringBulder的区别?

​ Sting是个常量不能被改变,其他可以,每次声明都要重新开辟一个空间,StringBuffer是线程安全的使用synchronized关键字,但是效率是相对较低的,后两默认初始容量是16

3.Array和ArrayList的区别?什么时候使用Array更好?

​ Array是普通数组,ArrayList是可变数组集合,前者必须指定大小,后者不需要,可以自动扩容,前者可以存储基本数据类型,后者只能存对象,ArrayList有更多的操作方法。在大小确定的情况下,用Array更好

4.什么是值传递,什么是引用传递?

​ 值传递:将参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。

​ 引用传递:将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数

5.java支持的数据类型有哪些?什么是自动拆装箱?

​ 1.基本数据类型,2.引用数据类型:类,接口,数组

Integer i =10; //自动装箱int b= i; //自动拆箱

Integer i=10 可以替代 Integer i = new Integer(10);

6.java8的新特性,简单介绍一下?

1.lambda表达式 可以简化代码

2.函数式编程 @FunctionalInterface 接口上面

只要一个对象是函数式接口的实例,那么该对象就可以用Lambda表达式来表示

3.Stream流 创建 Stream 中间操作 终止操作(终端操作)

4.Optional类 原来用 null 表示一个值不
存在,现在 Optional 可以更好的表达这个概念。并且可以避免空指针异常。

7.为什么重写equals还需要重写code?

为了保证同一个对象,保证在equals相同的情况下hashcode值必定相同,如果重写了equals而未重写hashcode方法,可能就会出现两个没有关系的对象equals相同的(因为equal都是根据对象的特征进行重写的),保证相同的对象返回相同的hash值,不同的对象返回不同的hash值。
如果不重写hashCode方法,调用的是Object中的hashCode方法。ps :两个对象相等,hashcode一定相等
两个对象不等,hashcode不一定不等
hashcode相等,两个对象不一定相等
hashcode不等,两个对象一定不等

8.Object的equals和hashcode方法怎么对比的

​ 在Object类中,==运算符和equals方法是等价的,String是引用类型,比较时不能比较引用是否相等,而是比较字符串的内容是否相等。

由于在Object中,因此每个对象都有一个默认的哈希值,只对比哈希值是否相等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值