java学习

1.内存划分

新生代(eden、survivor1,survivor2)98%的对象朝生夕死,在eden、surviror1分配,如果仍然存活会转移到s2,每一次MinorGC年龄加1,到达阈值后转移到老年代

老年代 分配大对象和长期存活对象;

 

永久代,-方法区;

 

CMS收集器,有停顿,标记-清除算法;

 

2.线程

volatile 原理:缓存一致性协议;

作用:保持多线程之间可见性;保证顺序性;适用单线程写多线程读;

 

java实现原子操作

循环 CAS(处理器CMPXCHG指令); 有ABA问题,采用版本号解决;

锁机制;

 

java对象头

hashcode,分代年龄;锁标志;

偏向锁,同一线程多次获取,判断对象头里面的偏向锁线程ID;

synchronized用的锁存在java对象头里面;

 

Lock

同步器 AQS 内置一个队列,将等待的线程作为结点加入同步队列;通过CAS设置同步状态;获取了同步状态就是获取了锁;

condition,同object的wait,notfiy方法;支持多个等待队列,

 

读写锁用一个二进制变量记录多个状态;

重入锁,同synchronized隐式重入;

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值