Java高阶

面试问到职业规划 说是初中高级到架构,觉得2年应该达到中级

然后就被问到好多Java高级的知识点 这块不光会用 其实主要还是底层熟悉度

参考:https://www.cnblogs.com/ws1313123/p/6427920.html

拿HashMap结构来说,底层就是一个数组,存储了Entry对象,包含四个属性 key value hash值 Entry引用

HashMap/HashTable内部用Entry数组实现哈希表,而对于映射到同一个哈希桶(数组的同一个位置)的键值对,使用Entry链表来存储(解决hash冲突)。

包装类的作用:参考:https://blog.csdn.net/beixiaozhang/article/details/53262187

https://blog.csdn.net/he90227/article/details/47252793

1.互斥同步:同步是指在多个线程并发访问共享数据时,保证共享数据在同一个时刻只被一条线程使用。互斥方式:临界区、互斥量和信号量。
Synchronized关键字:编译后会在同步块前后分别形成monitorenter和monitorexit这两个字节码指令。这两个指令都需要一个引用类型的参数来指明要锁定和解锁的对象。如果没有明确指定对象参数,那就根据synchronized修饰的是实例方法还是类方法,去取对应的对象实例或Class对象来作为锁对象。
在执行monitorenter指令时,首先尝试获取对象的锁,如果没有被锁定或者当前线程已经拥有了该对象的锁,则将锁计数器加1,相应的执行moniterexit时,将锁计数器减1,当计数器为0时,锁就被释放了。如果获取对象锁失败,则当前线程就要阻塞等待。

猜你喜欢

转载自blog.csdn.net/u013045102/article/details/80541518