![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java虚拟机
文章平均质量分 57
Code攻城狮
致力于技术研究与学习,喜欢解决bug。
展开
-
3、java虚拟机-类的生命周期-初始化阶段(与程序员有关)
一个类被初始化和加载,其中的静态代码块只会执行一次,而对象可以创建多次所以构造方法也可以执行多次,而代码块,通过字节码文件完们可以看到,是放到构造方法的字节码指令中执行的,且先执行,所以有了上述的输出结果。2、ClassforName所调用的类会被初始化,不过ClassforName方法的重载方法中可以设置是否可以进行初始化。如果当前的类,中的静态变量被final所修饰,那么这个类是不会被初始化的。3、通过new创建一个该对象时候,会被初始化。4、执行Main方法的当前类会被初始化。原创 2024-03-19 23:45:39 · 337 阅读 · 1 评论 -
2、Java虚拟机之类的生命周期-连接(验证、准备、解析)
连接阶段的第一个环节是验证,验证的主要目的是检测Java字节码文件是否遵守了中的约束。这个阶段一般是不需要程序员进行处理。赋值为1的时候,会发生在初始化阶段,在准备阶段会赋值0;三、解析-把符号引用替换为直接引用。其中这些开头通常又称之为魔术值。直接引用相比符号引用效率要高。如果魔术值被篡改会校验失败。原创 2024-03-19 22:49:44 · 220 阅读 · 0 评论 -
1、Java虚拟机学习-类的生命周期-加载阶段-以及怎样查看方法区中的对象和堆中对象的关联以及静态变量存在什么地方
类的生命周期可以分为五个阶段-其中连接又可以分为3个小阶段。因为连接阶段比较复杂也可以分为7个阶段原创 2024-03-19 21:33:36 · 444 阅读 · 0 评论