1.值传递与引用传递的区别:
方法里面可以修改基础数据类型和boolean对象的值,
但是不可以修改对象的引用地址,
不过可以修改对象的引用的值,
例如user.name='张三',
2.hashmap的底层原理:
hashap是由数组加链表实现的,每当添加一个元素的时候,
会根据key计算hash值存放到对应的数组下表的链表元素上,
不过,jdk1.8之后,链表的元素超过8个会扩展成红黑树的数据结构,
这是为了减少遍历链表所需的时间
3.set集合和list集合的区别:
set是继承了collection对象的无重复元素的集合;
list是继承了collection对象的有序集合;可以按照下标获取元素的。
4.synchronized 写在方法上和代码块上的区别:
大致上看是锁粒度的区别
不过细致的区分如果写在代码块上的是synchronized(this):那么两个锁都是当前对象的锁,
如果写在代码块上的是synchronized(Test.class),那么一个是当前对象的锁,一个是当前类的锁