JVM
文章平均质量分 83
吴二喵
拒绝拖延,拒绝熬夜,提高效率!
展开
-
JVM性能监控与故障处理工具
总结自《深入理解Java虚拟机》第2版JDK的命令行工具一、jps:虚拟机进程状况工具它的命名和功能都和UNIX的ps命令类似,可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进程的本地虚拟机唯一ID(Local Virtual Machine Identifier,LVMID)。其他的JDK工具大多需要输入它查询到的LVMID来确定要原创 2016-05-21 16:14:22 · 402 阅读 · 0 评论 -
JVM--类文件结构
整理自《深入理解Java虚拟机》(第2版)类文件结构一、JVM的平台无关性和语言无关性Java虚拟机不和包括Java在内的任何语言绑定,它只与Class文件这种特定的二进制文件格式所关联,Class文件中包含了Java虚拟机指令集和符号表以及若干其他辅助信息。Java语言中的各种变量、关键字和运算符号的语义最终都是由多条字节码命令组合而成的,因此字节码命令所能提供的语义描述能力会比Java语言本身更原创 2016-05-23 19:57:28 · 325 阅读 · 0 评论 -
类加载器和双亲委派模型
虚拟机类加载机制虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,就是虚拟机的类加载机制。与那些编译时需要进行连接工作的语言不同,在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会为Java应用程序提供高度的灵活性,Java里天生可以动态扩展的语言原创 2016-05-16 13:41:50 · 352 阅读 · 0 评论 -
Java如何有效避免OOM:利用软引用和弱引用
一、进一步认识软引用和弱引用对于强引用,我们平时在编写代码时经常会用到。而对于其他三种类型的引用,使用得最多的就是软引用和弱引用,这2种既有相似之处又有区别。它们都是用来描述非必需对象的,但是被软引用关联的对象只有在内存不足时才会被回收,而被弱引用关联的对象在JVM进行垃圾回收时总会被回收。 在SoftReference类中,有三个方法,两个构造方法和一个get方法(WekReference类似)转载 2016-09-17 15:59:43 · 265 阅读 · 0 评论 -
JVM--运行时数据区域
运行时数据区域(基于JDK1.7)线程隔离的数据区:程序计数器、栈(虚拟机、本地方法栈) 所有线程共享的数据区:堆、方法区 栈对应每个方法都会创建一个栈帧,来存储局部变量表(编译器可知的基本数据类型、对象引用等)、操作数栈等信息,进入方法后分配,方法结束后回收。堆上分配所有的对象实例和数组,需要垃圾回收。方法区存储虚拟机加载的类信息、常量、静态变量等。一、程序计数器它是当前线程所执行的字节码原创 2016-05-15 16:06:52 · 312 阅读 · 0 评论 -
垃圾回收与内存分配
垃圾回收机制java的垃圾回收机制用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间。回收的是无任何引用的对象占据的内存空间而不是对象本身。GC只知道释放由new分配的内存。java允许在类中定义finalize的方法,它的工作原理是一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用该方法,并且下一次垃圾回收动作发生时才会真正回收对象占用的内存,C++中对象一定会被销毁,但是Ja原创 2016-05-15 22:27:37 · 1148 阅读 · 0 评论 -
虚拟机类加载过程
整理自《深入理解Java虚拟机》(第2版)一、虚拟机类加载机制虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,就是虚拟机的类加载机制。与那些编译时需要进行连接工作的语言不同,在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会为Java应用程序提供原创 2016-05-23 22:26:00 · 332 阅读 · 0 评论