![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm虚拟机
征途尓
这个作者很懒,什么都没留下…
展开
-
jvm-常量池
Java中的常量池,实际上分为两种形态:静态常量池和运行时常量池。 所谓静态常量池,即*.class文件中的常量池,class文件中的常量池不仅仅包含字符串(数字)字面量,还包含类、方法的信息,占用class文件绝大部分空间。 而运行时常量池,则是jvm虚拟机在完成类装载操作后,将class文件中的常量池载入到内存中,并保存在方法区中,我们常说的常量池,就是指方法区转载 2017-11-13 16:47:10 · 308 阅读 · 0 评论 -
新生代和老年代
以下为我学习java新生代和老年代所整理的笔记。摘自《深入理解java虚拟机》一书。 java堆可以细分为新生代和老年代 新生代:生命周期比较短的对象。 老年代:生命周期比较长的对象。 1、新生代常采用的算法:复制算法 现在商业虚拟机都采用这种收集算法来回收新生代。 新生代的对象98%都是“朝生夕死”,将内存分为一块较大的Eden空间和from su原创 2017-11-23 22:12:10 · 206 阅读 · 0 评论 -
代理设计模式
定义:为其他对象提供一种代理以控制对这个对象的访问。 代理模式的结构如下图所示。 动态代理使用 java动态代理机制以巧妙的方式实现了代理模式的设计理念。 代理模式示例代码 public interface Subject { public void doSomething(); } public class RealSubject原创 2018-01-04 16:42:13 · 141 阅读 · 0 评论 -
Java类加载器总结
1.类的加载过程 JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)链接又分为三个步骤,如下图所示: 1) 装载:查找并加载类的二进制数据; 2)链接: 验证:确保被加载类的正确性; 准备:为类的静态变量分配内存,并将其初始化为默认值; 解析:把类中的符号引用转换为直接引用; 3)初始原创 2017-12-29 14:47:06 · 126 阅读 · 0 评论 -
【深入理解JVM】:Java类继承关系中的初始化顺序
Java类初始化的顺序经常让人犯迷糊,现在本文尝试着从JVM的角度,对Java非继承和继承关系中类的初始化顺序进行试验,尝试给出JVM角度的解释。非继承关系中的初始化顺序对于非继承关系,主类InitialOrderWithoutExtend中包含了静态成员变量(类变量)SampleClass 类的一个实例,普通成员变量SampleClass 类的2个实例(在程序中的顺序不一样)以及一个静态代码块,...转载 2018-05-13 16:02:47 · 143 阅读 · 0 评论