小红书小准备
1.进程和线程的区别:
2.hashmap不安全原因:put的addEntry和扩容,都不同步。
3.hashtable线程安全实现:synchronized来保证线程安全
4.concurrenthashmap线程安全实现:Segment数组结构和HashEntry数组结构组成,Segment是一种可重入锁ReentrantLock,ashEntry则用于存储键值对数据。一个ConcurrentHashMap里包含一个Segment数组,Segment的结构和HashMap类似,是一种数组和链表结构,一个Segment里包含一个HashEntry数组,每个HashEntry是一个链表结构的元素,每个Segment守护着一个HashEntry数组里的元素,当对HashEntry数组的数据进行修改时,必须首先获得它对应的Segment锁。
5.final和fianlly区别:
final修饰不能被继承的类、锁定方法、修饰变量使它称为常量。finally作为异常处理的一部分,它只能用在try/catch语句中,并且附带一个语句块。
6.JVM的存储方式:
方法区:存储的是类的定义,静态数据,常量池,由jvm来控制管理
堆区:数组申请的空间,对象申请的空间,总之new出来的空间,堆空间中存储的是数组数据,对象的数据,可以通过程序操作的
栈区:堆中的对象空间中存储的是属性数据,没有方法,判断对象是否相等,主要判断的是对象中的属性的值是否相等,所以对象就是数据的载体,对象中没有方法,只有数据,通过对象打点调用方法,实际上使用的方法区中的类定义里方法,方法中使用哪个对象的数据,取决于方法是被哪个对象调用的