摘要: 一:jps(JVM Process Status Tools)jps是参照Unix系统的取名规则命名的,而它的功能和ps的功能类似,可以列举正在运行的虚拟机进程并显示虚拟机执行的主类以及这些进程的唯一ID(LVMID,对于本机来说和PID相同);用法如下:jps [option] [hostid]h... 阅读全文
posted @ 2015-05-19 12:17 time-info 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 所有Java虚拟机的执行引擎都是一致的:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果;运行时栈帧结构栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,是虚拟机运行时数据区中虚拟机栈的栈元素。栈帧中存储了局部变量表、操作数栈、动态链接和方法返回地址等信息;每个方法从调用开始... 阅读全文
posted @ 2015-05-19 12:16 time-info 阅读(444) 评论(0) 推荐(0) 编辑
摘要: 虚拟机的类加载机制:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型;在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的;类加载的时机类从被加载到虚拟机内存开始,到卸载出内存为止,它的生命周期是:加载... 阅读全文
posted @ 2015-05-19 12:05 time-info 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 代码编译的结果从本地机器码转为字节码;无关性的基石:各个不同平台的虚拟机和所有平台统一使用的程序存储格式-字节码,是构成平台无关性的基石;实现语言无关性的基础仍然是虚拟机和字节码存储格式;Java虚拟机不和包括Java在内的任何语言绑定,它只和class文件这种特定的二进制文件所关联;Class文件... 阅读全文
posted @ 2015-05-19 12:03 time-info 阅读(192) 评论(0) 推荐(0) 编辑
摘要: Java技术体系中所提倡的自动内存管理策略最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存;几条普遍的分配规则:1、对象优先在Eden区分配年轻代分为三个区:1个Eden区+2个Survivor区。大部分对象在Eden区中生成(大对象可以直接被创建在年老代),还存活的对象... 阅读全文
posted @ 2015-05-19 11:53 time-info 阅读(467) 评论(0) 推荐(0) 编辑
摘要: 内存泄露与内存溢出内存泄露一般是代码设计存在缺陷导致的,指程序中动态分配内存给一些临时对象,但是对象不会被GC所回收,它始终占用内存。即被分配的对象可达但是已经无用;通过了解内存泄露的场景,可以避免不必要的内存溢出和提高自己的代码水平;内存泄露的几种场景:1、长生命周期的对象持有短生命周期对象的引用... 阅读全文
posted @ 2015-05-19 11:46 time-info 阅读(1029) 评论(0) 推荐(0) 编辑
摘要: 运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个大小不同的数据域;这些区域都有各自的用途,以及创建和销毁时间,有的区域会随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。程序计数器:程序计数器是一块较小的内存空间,可以看作当前线程所执行的... 阅读全文
posted @ 2015-05-19 11:43 time-info 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 垃圾收集器可以分为新生代收集器和老年代收集器;新生代收集器:1、 Serial收集器Serial收集器是单线程收集器,采用复制算法,并行收集器,执行的时候需要用户线程暂停。虚拟机运行在Client模式下的默认新生代收集器。2、 ParNew收集器ParNew收集器是多线程收集器,采用复制算法,并行收... 阅读全文
posted @ 2015-05-18 10:41 time-info 阅读(127) 评论(0) 推荐(0) 编辑