jvm
LUK流
大数据/java web
展开
-
JVM(七):类加载器
类加载的机制的层次结构每个编写的”.java”拓展名类文件都存储着需要执行的程序逻辑,这些”.java”文件经过Java编译器编译成拓展名为”.class”的文件,”.class”文件中保存着Java代码经转换后的虚拟机指令,当需要使用某个类时,虚拟机将会加载它的”.class”文件,并创建对应的class对象,将class文件加载到虚拟机的内存,这个过程称为类加载,这里我们需要了解一下类加载的...原创 2020-02-09 19:44:15 · 325 阅读 · 0 评论 -
JVM(六):JVM参数可视化工具和字节码技术
1.jconsole可视化工具从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码。如果是从命令行启动,使 JDK 在 PATH 上,运行 jconsole 即可。...原创 2020-02-05 20:08:16 · 438 阅读 · 0 评论 -
JVM(五):Tomcat配置调优测试
用一个空的项目初始参数-XX:+PrintGCDetails -Xmx32M -Xms1M-XX:+HeapDumpOnOutOfMemoryError-XX:+UseSerialGC-XX:PermSize=32MGC 回收次数25次 吞吐量4662加大初始堆内存大小-Xms1M 修改为32mGC 回收次数7次 吞吐量5144扩大堆的最大内存为512M-XX:+Prin...原创 2020-02-05 17:42:50 · 156 阅读 · 0 评论 -
JVM(四):垃圾回收器
1.串行与并行收集器串行回收: JDK1.5前的默认算法 缺点是只有一个线程,执行垃圾回收时程序停止的时间比较长并行回收: 多个线程执行垃圾回收适合于吞吐量的系统,回收时系统会停止运行...原创 2020-02-04 20:16:03 · 225 阅读 · 0 评论 -
JVM(三):JVM参数配置和内存溢出
1.常见参数配置-XX:+PrintGC 每次触发GC的时候打印相关日志-XX:+UseSerialGC 串行回收-XX:+PrintGCDetails 更详细的GC日志-Xms 堆初始值-Xmx 堆最大可用值-Xmn 新生代堆最大可用值-XX:SurvivorRatio 用来...原创 2020-02-03 21:38:08 · 678 阅读 · 0 评论 -
JVM(二):垃圾回收机制
1.什么是垃圾回收机制不定时去堆内存中清理不可达对象。不可达的对象并不会马上就会直接回收, 垃圾收集器在一个Java程序中的执行是自动的,不能强制执行,即使程序员能明确地判断出有一块内存已经无用了,是应该回收的,程序员也不能强制垃圾收集器回收该内存块。程序员唯一能做的就是通过调用System.gc 方法来"建议"执行垃圾收集器,但其是否可以执行,什么时候执行却都是不可知的。这也是垃圾收集器的最主...原创 2020-02-02 19:31:39 · 235 阅读 · 0 评论 -
JVM(一):java内存结构
java内存结构如下:1. Java堆(Java Heap)java堆是java虚拟机所管理的内存中最大的一块,是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,这一点在Java虚拟机规范中的描述是:所有的对象实例以及数组都要在堆上分配。 java堆是垃圾收集器管理的主要区域,因此也被成为“GC堆”(Garbage Collected Heap)。...原创 2020-01-16 16:29:21 · 136 阅读 · 0 评论 -
java类初始化时机
1. 类的加载顺序类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Useing)、卸载(Unloading)7个阶段。其中验证、准备和解析3个部分统称为连接(Linking),这7个阶段的发生顺序如图所示。...转载 2019-10-13 22:31:11 · 159 阅读 · 0 评论 -
JVM(一):前端编译、JIT编译、AOT编译
1.前端编译:源代码到字节码把Java源码文件(.java)编译成Class文件(.class)的过程。我们知道在 JDK 的安装目录里有一个 javac 工具,就是它将 Java 代码翻译成字节码,这个工具我们叫做编译器。相对于后面要讲的其他编译器,其因为处于编译的前期,因此又被成为前端编译器。加入我们编译一个Demo.java文件> javac Demo.java> ls...原创 2019-07-14 21:54:00 · 785 阅读 · 0 评论