JVM
xiao_meimao
这个作者很懒,什么都没留下…
展开
-
JVM类加载
JVM类加载过程与步骤的一些细节首先,你需要知道:在Java代码中,类型的加载、连接与初始化过程都是在程序运行期间所完成的。好处:提供了更大的灵活性,增加了更多的可能性。Java虚拟机与程序的生命周期如下几种情况,Java虚拟机将结束生命周期:执行了System.exit()方法程序正常...原创 2019-09-01 00:51:31 · 100 阅读 · 1 评论 -
JVM参数及常见助记符
JVM参数三种类型:-XX:+,表示开启option选项-XX:-,表示关闭option选项-XX:=,表示将option选项的值设置为value正如之前用过**-XX:+TraceClassLoading**便是开启这个选项(类加载信息)...原创 2019-09-01 12:51:29 · 216 阅读 · 2 评论 -
编译期常量与运行期常量
运行期常量:解释说明:当一个常量的值并非编译期间可以确定的,那么其值就不会被放到调用类的常量池中,这时程序在运行时会导致主动使用这个常量所在的类,显然会的 导致该类的初始化操作没啥可说的,创建了该类的实例属于七种主动使用情况中的一种,导致了该类的初始化,再不厌其烦的提下,第一次主动使用才会导致类的初始化,类的初始化只会执行一次!如下!我们继续再来看:结论:对于数组实例来说,其类型是...原创 2019-09-01 17:43:19 · 365 阅读 · 1 评论 -
接口的初始化规则
在JVM类加载这篇文章中,已经确定一个类在初始化时必须先行初始化其父类(如果有),我们接着来看接口的初始化,我们明白接口中的成员属性都是public static final修饰的,例子中省略不写!!!结论:当一个接口在初始化时,并不要求其父接口都完成了初始化操作,实际上上图中也可以将子接口的class文件删除掉,上面讲过接口默认就是被final修饰的,也就是说int b所确定的值2会在编译时...原创 2019-09-02 19:19:38 · 4481 阅读 · 2 评论 -
类加载器
自己定义一个类加载器首先,我们知道通常情况下我们的类是JVM虚拟机从本地文件系统中进行加载的,从classpath环境变量所定义的目录当中去加载类,当然也有通过网络或者应用本身所构建出来的(动态代理)类,这里分为两个步骤,第一步是将字节数组转换成class类对象,第二步是用Class.newInstance...原创 2019-09-04 18:21:40 · 102 阅读 · 1 评论