
JVM
一米多的李同学
快乐得像个孩子!
展开
-
二、JVM的生命周期
一、一个运行中的JVM有着一个很清晰的任务:那就是执行Java程序。 1、程序开始执行时JVM才运行,程序结束时它就结束。 2、当在同一台机器上运行X个程序,就会有X个运行中的JVM。 3、JVM总是始于一个main()方法,这个方法必须是共有的(public)、静态的(static)、返回void,并且接受一个字符串数组作为参数。 4、在程序执行时,你必须给JVM指明这个包含main()方法的...原创 2019-04-08 21:25:12 · 140 阅读 · 0 评论 -
一、JVM的体系结构
在Java虚拟机的规范中定义了一系列的子系统、内存区域、数据类型和使用指南。 这些组件构成了Java虚拟机的内部结构,它们不仅仅为Java虚拟机的实现提供了清晰的内部结构,更是严格规定了Java虚拟机实现的外部行为。 1、每一个虚拟机都由一个类加载子系统(class loader subsysteam),负责加载程序中的类型(类和接口),并赋予唯一的名字。每一个jvm都有一个执行引擎,负责执行被...原创 2019-04-08 20:57:25 · 244 阅读 · 0 评论 -
三、JVM中的数据类型
一、数据类型 1、jvm是通过某些数据类型来执行计算的,数据类型可以分为两种:基本类型和引用类型。基本类型的变量持有原始值,而引用类型持有应用值。 2、Java语言中的所有类型同样也都是jvm中的基本类型。但是boolean有点特别,虽然jvm也罢Boolean看作基本类型,但是指令集对Boolean只有很有限的支持,当编译器把Java源代码编译为字节码时,它用int或者byte来表示Boole...原创 2019-04-08 21:37:08 · 558 阅读 · 0 评论 -
四、JVM内存回收
一、内存回收:Sun的JVMGenerationalCollecting(垃圾回收)原理是这样的:把对象分为年青代(Young)、年老代(Tenured)、持久代(Perm),对不同生命周期的对象使用不同的算法。(基于对对象生命周期分析) 1、Young(年轻代) 年轻代分三个区。一个Eden区,两个Survivor区。大部分对象在Eden区中生成。当Eden区满时,还存活的对象将被复制到Sur...原创 2019-04-08 21:42:36 · 107 阅读 · 0 评论 -
五、内存溢出和内存泄漏
一、内存溢出 1、(out of memory):指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory,比如申请了10个字节的空间,但是你在这个空间写入11或以上字节的数据,出现溢出。 2、产生原因: a、jvm内存过小, b、程序不严谨,产生过多的垃圾。 3、程序体现: a、内存中加载的数据量过于庞大,如一次从数据库中取出过多数据。 b、集合类中有对对象的引用,使用完...原创 2019-04-08 21:46:54 · 147 阅读 · 0 评论