系统学习路线
NullPointExceptionc
只有知道自己有多菜,才会努力进步!
展开
-
Java偏向锁、自旋锁、轻量级锁、重量级锁
一、自旋锁如果持有锁的线程能在很短时间内释放锁资源,那么那些等待竞争锁的线程就不需要做内核态和用户态之间的切换进入阻塞挂起状态,它们只需要等一等(自旋),等持有锁的线程释放锁后即可立即获取锁,这样就避免用户线程和内核的切换的消耗。但是线程自旋是需要消耗cup的,说白了就是让cup在做无用功,如果一直获取不到锁,那线程也不能一直占用cup自旋做无用功,所以需要设定一个自旋等待的最大时间。...转载 2019-08-01 20:30:44 · 140 阅读 · 0 评论 -
java内存的分配策略
1. 内存分配策略按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的。静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编译时就可以给他们分配固定的内存空间。这种分配策略要求程序代码中不允许有可变数据结构(比如可变数组)的存在,也不允许有嵌套或者递归的结构出现,因为它们都会导致编译程序无法计算准确的存储空间需求。栈式存储分配也可称...翻译 2019-08-13 17:22:11 · 196 阅读 · 0 评论 -
java AQS
java AQS,基类是AbstractOwnableSynchronizer,AbstractOwnableSynchronizer主要是设置锁当前拥有线程,AbstractQueuedSynchronizer,主要有Sync继承实现,不同的子类要实现对应的tryAcquire(int),tryRelease(int),tryAcquireShared(int),tryReleaseShared...翻译 2019-08-12 21:00:28 · 735 阅读 · 0 评论 -
Java对象模型
https://www.jianshu.com/p/e2a1cbc4ea13?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation翻译 2019-08-23 14:59:17 · 110 阅读 · 0 评论 -
java编译期优化
java编译期优化java语言的编译期其实是一段不确定的操作过程,因为它可以分为三类编译过程:1.前端编译:把.java文件转变为.class文件2.后端编译:把字节码转变为机器码3.静态提前编译:直接把*.java文件编译成本地机器代码从JDK1.3开始,虚拟机设计团队就把对性能的优化集中到了后端的即时编译中,这样可以让那些不是由Javac产生的Class文件(如JRuby、Groo...转载 2019-08-27 11:49:10 · 272 阅读 · 1 评论