2019年4月25日

synchronized原理

摘要: 首先要介绍对象头,对象头包含两个部分,一个是指向类信息,一个保存对象运行时相关数据,称之为mark word。 偏向锁:线程申请获取偏向锁时,首先检测锁对象ThreadID是否为当前线程id,如果是,则直接进入临界区,否则用cas操作尝试修改ThreadID为当前线程id,如果成功则进入临界区,如果 阅读全文

posted @ 2019-04-25 12:38 楼兰剑客 阅读(103) 评论(0) 推荐(0) 编辑

concurrentHashMap求size

摘要: 在 JDK1.7 中,首先会使用不加锁的模式去尝试多次计算 ConcurrentHashMap 的 size,最多三次,比较前后计算的结果,结果一致就认为当前没有元素加入,计算的结果是准确的。如果不符合,就会给每个 Segment 加上锁,然后计算 ConcurrentHashMap 的 size 阅读全文

posted @ 2019-04-25 12:37 楼兰剑客 阅读(624) 评论(0) 推荐(0) 编辑

Java类加载机制

摘要: 1、加载 1)通过类的全限定名,获取类的字节码文件的二进制流 2)将二进制流所代表的静态存储结构转化为方法区的运行时数据结构 3)在内存中生成一个class对象 2、验证 1)文件格式验证 2)元数据验证 3)安全验证 3、准备 为类变量分配内存并设置初始值 4、解析 将符号引用转化为直接引用 5、 阅读全文

posted @ 2019-04-25 12:36 楼兰剑客 阅读(119) 评论(0) 推荐(0) 编辑

导航