
JVM
水墨之白
悟已往之不谏,知来者之可追!
展开
-
深入理解JVM(一)—Java与JVM
一、JVM简介英文:JAVA Virtual MachineJVM是一个虚拟出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的虚拟硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统JVM屏蔽了与具体操作系统平台相关的信息,使得JAVA程序只需生成在JAVA虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行三大主流虚拟机:SU...原创 2019-06-01 10:07:42 · 669 阅读 · 0 评论 -
深入理解JVM(二)—类加载机制
一、JVM类加载机制加载链接(验证 准备 解析)初始化使用卸载类加载器:启动类加载器(Bootstrap ClassLoader):负责加载JAVA_HOME\lib 目录中的,或通过-Xbootclasspath参数指定路径中的,且被虚拟机认可(按文件名识别,如rt.jar)的类。扩展类加载器(Extension ClassLoader):负责加载JAVA_HOME\l...原创 2019-06-01 15:29:08 · 292 阅读 · 0 评论 -
深入理解JVM(三)—JVM内存划分
一、JVM运行时数据区域二、程序计数器线程私有当前线程所执行字节码的行号指示器,控制程序执行顺序,分支,循环,跳转。三、虚拟机栈线程私有JVM栈是程序运行时单位,决定了程序如何执行,或者说数据如何处理。Java栈内存,以帧的形式存放本地方法的调用状态,包括方法调用的参数、局部变量、中间结果等(方法都是以方法帧的形式存放在方法区的),每调用一个方法就将对应该方法的方法帧压入Java ...原创 2019-06-04 14:15:20 · 275 阅读 · 0 评论 -
JVM调优—线程栈(JavaCore)和堆栈(HeapDump)分析
一、Java CoreJavaCore 也可以称为“threaddump”或是“javadump”Javacore文件通常以*.txt方式显示,名称格式主要是以Javacore为头,加上日期号、产生的时间号、当时的线程编号主要保存的是Java应用各线程在某一时刻的运行的位置,即JVM执行到哪一个类、哪一个方法、哪一个行上。它是一个文本文件,打开后可以看到每一个线程的执行栈和执行状态,以st...原创 2019-07-24 15:54:39 · 1396 阅读 · 0 评论 -
深入理解JVM(四)—垃圾回收
一、垃圾回收简介1.1 什么是垃圾回收JVM中自动检测并移除不再使用的数据对象的这种机制称为:垃圾回收(Garbage Collection ),简称GC1.2 为什么要垃圾回收由于不同JAVA对象存活时间是不一定的,因此,在程序运行一段时间以后,如果不进行垃圾回收,整个程序会因内存耗尽导致整个程序崩溃。垃圾回收还会整理那些零散的内存碎片,碎片过多最直接的问题就是会导致无法分配大块的内存空...原创 2019-08-22 15:56:23 · 212 阅读 · 0 评论