![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
读书笔记
qwe5669833
这个作者很懒,什么都没留下…
展开
-
线程私有
线程安全的策略 如果当多个线程访问同一个可变的状态变量时没有使用合适的同步,那么程序就会出现错误,有三种方式可以修复这个问题。 1.不在线程之间共享该状态变量(虚拟机栈和Threadlocal) 2.将状态变量修改为不可变的变量 3.在访问状态变量时使用同步 程序计数器 由于线程具有时分的特点,所以需要一个东西来记录当前线程被切换前运行到了哪里?这就是程序计数器,等待切换回来的...原创 2018-06-26 16:01:36 · 101 阅读 · 0 评论 -
线程公有
线程公有的区域主要包含Java堆内存,方法区,运行常量池 Java堆是被所有线程共享的一块内存区域,在虚拟机启动的时候创建。此内存区域的唯一目的就是存放对象实例。 Java虚拟机规范描述:所有的对象实力以及数组都要在堆上进行分配。 方法区与Java堆一样,是各个线程共享的内存区域,它用于储存已被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据。 运行时...原创 2018-06-26 17:26:58 · 69 阅读 · 0 评论 -
类和接口初始化
类的初始化和对象的初始化时不同的。 上面的图是类的初始化,接口的初始化没有静态代码块,而且在初始化时与类初始化有些差异。 类在初始化的时候要求其父类全部已经初始化过了,但是接口只有真正使用父接口的时候才会初始化。 参考《深入理解Java虚拟机》 ...原创 2018-07-06 10:19:11 · 178 阅读 · 0 评论 -
类的加载阶段
类的加载主要是把二进制文件转换为class对象 对于一个类来讲,加载主要根据双亲委派模型,保证了相等性. 数组加载直接在虚拟机中进行,不通过类记载其创建。 ...原创 2018-07-06 11:03:06 · 82 阅读 · 0 评论 -
验证阶段
类验证阶段思维导图原创 2018-07-06 11:57:35 · 161 阅读 · 0 评论 -
双亲委派模型
双亲委派模型的工作过程是:如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一层次的类加载器都是如此,因此所有的加载请求最终都应该传送到顶层的启动类加载器中,只有当父加载器反馈自己无法完成这个加载请求(它的搜索范围中没有找到所需的类)时,子类加载器才会尝试自己去加载。 protected Class<?> loadCla...原创 2018-07-06 14:05:58 · 70 阅读 · 0 评论