深入理解Java虚拟机1 走进Java2 Java内存区域与内存溢出异常3 垃圾收集器与内存分配策略4 虚拟机性能监控与故障处理工具5 调优案例分析和实战6 类文件结构7 虚拟机类加载机制8 虚拟机字节码执行引擎9 类加载及执行子系统的案例与实战10 早期编译期优化11 晚期运行期优化12 Java ...
分类:
移动开发 时间:
2017-08-10 22:21:44
阅读次数:
140
1.什么是类加载把描述类的数据从class(这里的class不仅仅只class文件,任何方式都可以,比如说jar包,反射等)文件加载到内存,并对数据进行校验,转换解析和初始换,最终形成可以被虚拟机直接说使用的java类型。2.java虚拟机中类加载的全过程加载(这个加载指的是类加载的一..
分类:
其他好文 时间:
2017-08-10 18:10:36
阅读次数:
133
一 程序、进程、线程的区别? 打个比方:你从中国到美国坐飞机,飞机这个静态事物就是程序,从中国到美国做飞机这个过程就是进程,诸如登机、带安全面罩等等就是线程。 进程与程序的区别:进程是处于运行过程中的程序。程序是一个静态的指令集合,进程是一个动态的指令集合 二 类的初始化 程序主动使用某个类时。如果 ...
分类:
其他好文 时间:
2017-08-09 15:33:29
阅读次数:
102
准备阶段是给变量赋系统的初始值。而初始化阶段就是给变量赋程序员自己设的值 初始化阶段是<clinit>()方法的执行过程。过程如下 1.编辑器收集所有的赋值动作和静态块合并形成<clinit>方法。收集是按照代码出现的顺序决定的。并且静态初始化块只能访问定义在之前的变量,对于在之后的变量可以赋值,但 ...
分类:
编程语言 时间:
2017-08-08 23:03:14
阅读次数:
222
加载是类加载的一个阶段。不要弄混淆了 这一阶段主要做了下面三件事。1.通过一个类的全限定名获取此类的二进制流 2.将这个二进制流代表的静态存储结构转化为方法区的运行时数据结构 3.在内存中生成java.lang.Class对象,作为访问入口 .通过一个类的全限定名获取此类的二进制流:这一步说的不明确 ...
分类:
编程语言 时间:
2017-08-06 23:00:33
阅读次数:
200
1、什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向 ...
分类:
编程语言 时间:
2017-08-06 19:43:07
阅读次数:
146
当类被编译为.class文件后,如何在jvm中被加载的呢 总共七个步骤:加载,验证,准备,解析,初始化,使用,卸载。其中加载,验证,准备,初始化,卸载都必须按照顺序来。解析可以在初始化后再开始。使用就可有可无了 先看初始化阶段。有且只有5种情况必须对类进行初始化 (1) 遇到new、getstati ...
分类:
编程语言 时间:
2017-08-05 23:34:22
阅读次数:
235
一、什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向 ...
分类:
编程语言 时间:
2017-07-31 16:27:54
阅读次数:
185
准备阶段的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到了Java虚拟机外部去实现,以便让应用程序自己决定如何如获取所需要的类。实现这个动作的代码模块称为“类加载器” 1.类与类加载器 每一个类加载器都有一个独立的类名称空间,由类加载器和类一起合作才能确定一个类在虚拟机中的唯一性。 ...
分类:
其他好文 时间:
2017-07-30 16:57:14
阅读次数:
138
1.加载 虚拟机需要干三件事: ①、通过一个类的的全限定名来获取定义此类的二进制字节流(没有规定二进制字节流从那里获取,怎样获取,许多java技术也都建立在这基础上) ②将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构(将常量池转变成运行时常量池) ③在内存中生成一个代表这个类的java ...
分类:
其他好文 时间:
2017-07-29 12:57:36
阅读次数:
110