2021-09-12

JVM类加载学习第二天

一个常量的值并非编译期间可以确定的,那么其值就不会被放到调用类的常量池中,
这时在程序运行时,会导致主动使用这个常量所在的类,会导致这个类被初始化。

在这里插入图片描述

输出

在这里插入图片描述

对于数组实列来说,其类型是由JVM在运行期动态生成的,表示为[Lcom.Class
这种形式。动态生成的类型,其父类型就是Object.
对于数组来说,javaDoc经常将构成数组的元素为Component,实际上就是将数组
降低一个维度后的类型。

在这里插入图片描述

输出:

在这里插入图片描述

一个接口在初始化时,并不要求其父接口都完成了初始化。
只有在真正使用到父接口的时候(如引用接口中所定义的常量时),才会初始化。

初始化阶段类变量的从上到下开始执行

在这里插入图片描述


以上代码输出2,1,2,0
![

](https://www.icode9.com/i/ll/?i=f4336448661c46f1aac1006ee2a821f3.png?,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAcXFfNDAzNzg5NTk=,size_20,color_FFFFFF,t_70,g_se,x_16)

相关文章

jinfo 命令可以用来查看 Java 进程运行的 JVM 参数,命令如下...
原文链接:https://www.cnblogs.com/niejunlei/p/5987611.ht...
java 语言, 开发者不能直接控制程序运行内存, 对象的创建都是...
jvm
1.jvm的简单抽象模型:  2.类加载机制     双亲委派模...
堆外内存JVM启动时分配的内存,称为堆内存,与之相对的,在代...
1.springboot和tomcat2.springcloud的请求如何通过网关鉴权?...