浩鲸科技 一面 什么筋
Java开发 看别人帖子都会大大小小按流程逐个问问,到我这边最先是中途换人,来了个小青年,问的问题也太敷衍了
1 Java方法调用值传递引用传递
2 Java常用集合类
3 HashMap + ConcurrentHashMap
4 Mysql索引
5 Redis分布式锁如何上锁
6 消息队列保证有序消费
2 Java常用集合类
3 HashMap + ConcurrentHashMap
4 Mysql索引
5 Redis分布式锁如何上锁
6 消息队列保证有序消费
第一个问题,我说方法调用传递需要根据传递的变量是primitive type 原始类型还是类(包括包装类)的实例来区别看待,
如果是原始类型的话相当于传递一份原来变量的副本,声明周期只在调用的方法体内,会随方法结束而结束,由于分配在栈空间,不用gc;
如果是传递实例,由于不同句柄会指向堆上开辟的同一块内存空间,对该实例进行成员属性变动(修改值或者list对象做add元素操作),那么
方法体外的原本实例也会受到影响,可以理解为引用传递。
面试官轻描淡写地问我,确定吗?我建议你回去试试。
我自己试了一下
输出结果
可以看到A类的实例对象a的值经过方法调用后,其内部成员属性的值发生了改变。
但是原始类intNum和包装类IntegerNum的结果并未受到任何影响。
==||| 。。。