package com.leon.java;public class ClassInitTest {private static int num = 1;static{num = 2;number = 20;System.out.println(num);//System.out.println(number);//报错:非法的前向引用。}private static int number = 10;  //linking之prepare: number = 0 --> initial: 20 --> 10public static void main(String[] args) {System.out.println(ClassInitTest.num);//2System.out.println(ClassInitTest.number);//10}
}
package com.leon.java;public class ClinitTest {//任何一个类声明以后,内部至少存在一个类的构造器private int a = 1;private static int c = 3;public static void main(String[] args) {int b = 2;}public ClinitTest(){a = 10;int d = 20;}}
package com.leon.java;public class ClinitTest1 {static class Father{public static int A = 1;static{A = 2;}}static class Son extends Father{public static int B = A;}public static void main(String[] args) {//加载Father类,其次加载Son类。System.out.println(Son.B);//2}
}
package com.leon.java;public class DeadThreadTest {public static void main(String[] args) {Runnable r = () -> {System.out.println(Thread.currentThread().getName() + "开始");DeadThread dead = new DeadThread();System.out.println(Thread.currentThread().getName() + "结束");};Thread t1 = new Thread(r,"线程1");Thread t2 = new Thread(r,"线程2");t1.start();t2.start();}
}class DeadThread{static{if(true){System.out.println(Thread.currentThread().getName() + "初始化当前类");while(true){}}}
}

类的加载过程三:Initialization相关推荐

  1. 从JVM看类的加载过程与对象实例化过程

    一. 类的加载过程 1. 类的加载过程大致是个什么过程? 我们编写产生.java文件,这些.java文件经过Java编译器编译成拓展名为.class的文件,.class文件中保存着Java代码经转换后 ...

  2. Java类的加载过程详解 面试高频!!!值得收藏!!!

    受多种情况的影响,又开始看JVM 方面的知识. 1.Java 实在过于内卷,没法不往深了学. 2.面试题问的多,被迫学习. 3.纯粹的好奇. 很喜欢一句话: 八小时内谋生活,八小时外谋发展. 望别日与 ...

  3. JVM学习笔记之-类加载子系统,类的加载与类的加载过程,双亲委派机制

    一 类加载器与类加载过程 类加载子系统作用 类加载器子系统负责从文件系统或者网络中加载class文件,class文件在文件开头有特定的文件标识. ClassLoader只负责class文件的加载,至于 ...

  4. 中yeti不能加载_第二十章_类的加载过程详解

    类的加载过程详解 概述 在 Java 中数据类型分为基本数据类型和引用数据类型.基本数据类型由虚拟机预先定义,引用数据类型则需要进行类的加载 按照 Java 虚拟机规范,从 Class 文件到加载到内 ...

  5. java类加载过程_面试官:java类的加载过程

    Java 类加载机制 类从被加载到JVM中开始,到卸载为止,整个生命周期包括:加载.验证.准备.解析.初始化.使用和卸载七个阶段. 其中类加载过程包括加载.验证.准备.解析和初始化五个阶段. 类的加载 ...

  6. Java类的加载过程,类加载器,双亲委派原则

    Java一个类的加载过程: 1.加载 a.jvm会根据类名找到对应的类文件 b.进行文件内容读取 2.链接 链接主要是验证类中数据是否合法,然后把刚加载进来的类和其他类的关系建立清楚,主要有以下几个步 ...

  7. 卸载java_Java面试必备——类的加载过程

    类的加载过程,类加载过程主要包含加载.验证.准备.解析.初始化.使用.卸载七个方面,下面一一阐述. 一.加载 在加载阶段,虚拟机主要完成三件事: 1.通过一个类的全限定名来获取定义此类的二进制字节流. ...

  8. JVM——类的加载过程

    附一张图方便理解,一个类的执行过程 类的加载过程,简明的来说 类装饰器就是寻找类的字节码文件并构造出类在JVM内部表示的对象组件.在Java中,类装载器把一个类装入JVM中,要经过以下步骤: 装载:查 ...

  9. 类的加载过程详解:加载、验证、准备、解析、初始化

    想要弄明白的知识点: 类加载的过程,加载.验证.准备.解析.初始化.每个部分详细描述. 加载阶段读入.class文件,class文件时二进制吗,为什么需要使用二进制的方式? 验证过程是防止什么问题?验 ...

最新文章

  1. OC指示符assign、atomic、nonatomic、copy、retain、strong、week的解释
  2. Leetcode 129. 求根到叶子节点数字之和 解题思路及C++实现
  3. 博科b8网络版定位服务器位置,如何在企业服务器中采集奥维GPS定位设备的位置...
  4. 人脸识别(二)——训练分类器
  5. vector 不初始化时什么状态_练车时,教练为什么不给你开空调?
  6. linux运维生产场景常用软件工具一览
  7. Java:集合,Array、Collection(List/Set/Queue)、Map的遍历,比如:ArrayList,LinkedList,HashSet,HashMap...
  8. 3. DICOM图像层级分类-DCMTK-数据字典避坑
  9. 一种用于决策(decision-making)的系统架构
  10. linux下双机热备份系统,基于Linux的双机热备份系统的研究与设计
  11. opencv cvtcolor函数中断异常
  12. Ubuntu16.040如何解决安装网易云音乐后第二次开机打不开问题
  13. hdu5773 The All-purpose Zero(DP)
  14. 恶意注册商标的情形有哪些?恶意抢注商标的认定标准是什么?
  15. RISCV学习笔记7.8(开源虚拟机篇)--AlmaLinux虚拟机安装modelsim
  16. 图片列表页面的加载优化
  17. C#零基础运动控制教程--运动控制卡低速高速运动实验
  18. 美国服务器网络黑客的常用手段
  19. 微电子专业是做芯片的吗?芯片和什么专业有关?
  20. 有照片换发型的软件吗?看完这篇文章就知道了

热门文章

  1. Python解释器有哪些?Python解释器种类
  2. go语言学习(基本数据类型)
  3. redis数据库各种数据类型的增删改查命令
  4. PHP 5.3-5.5 新特性
  5. 《论语》读后颜渊第十二主要大意
  6. Liunx 常用命令 (几乎包含所有了)
  7. MySQL 5.7 LOGICAL_CLOCK 并行复制原理及实现分析
  8. Centos升级Python 2.7并安装pip、ipython
  9. 【撸码师的备忘录】java对redis的基本操作
  10. 解决canvas画图模糊的问题