JVM
E_N_T_J
这个作者很懒,什么都没留下…
展开
-
【线程安全】由单例模式双重检查加锁DCL引出的synchronized与volatile关键字
1. 什么是DCLDCL是double check lock的单例实现方式,延迟加载。public class Singleton{ private static volatile Singleton instance; private Singleton(){} public static Singleton getInstance(){ if(instance == null){ synchronized(Singleton.cl原创 2020-08-05 10:50:15 · 439 阅读 · 0 评论 -
JVM锁与锁优化
编码中进行锁优化:锁细化,减少锁持有的时间,在一个线程的代码之中,尽量不要对一个方法进行加锁,而是抽离出一个方法中的共享数据,只对方法中的这部分数据代码加锁,这样能减少加锁范围。防止在出现多线程竞争的时候,多个线程对同一个锁进行竞争,而持有锁的代码过长导致执行时间很长,处于阻塞状态的线程等待时间过长,阻塞状态的线程所处理的业务响应速度下降。 锁分离,根据代码同步操作的性质,分离锁,比如说,在...原创 2019-03-04 11:13:51 · 420 阅读 · 0 评论 -
类文件结构
类文件结构一 概述在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为.class的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点(也就解决了传统编译型语言无法跨平台的问题)。所以 Java 程序运行时比较高效,而且,由于字节码并不针对一种特定的机器,因此,...转载 2019-06-12 22:36:12 · 130 阅读 · 0 评论 -
类加载过程
类加载过程Class 文件需要加载到虚拟机中之后才能运行和使用,那么虚拟机是如何加载这些 Class 文件呢?系统加载 Class 类型的文件主要三步:加载->连接->初始化。连接过程又可分为三步:验证->准备->解析。加载类加载过程的第一步,主要完成下面3件事情:通过全类名获取定义此类的二进制字节流 将字节流所代表的静态存储结构转换为方法区的运行...转载 2019-06-12 22:37:55 · 712 阅读 · 0 评论