jvm
文章平均质量分 92
jvm
hanjq_code
风吹雨打知生活,苦尽甘来懂人生。——生活
展开
-
JVM图文详解让你近一步了解
什么是JVM?JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互。我们都知道 Java 源文件,通过编译器,能够生产相应的.Class 文件,也就是字节码文件,而字节码文件又通过 Java 虚拟机中的解释器,编译成特定机器上的机器码 。每一种平台的解释器是不同的,但是实现的虚拟机是相同的,这也就是 Java 为什么能够跨平台的原因了 ,当一个程序从开始运行,转载 2021-04-08 10:00:18 · 177 阅读 · 0 评论 -
java 热部署与热加载原理分析并实践
1. 热部署对于Java应用程序来说,热部署就是在运行时更新Java类文件。1.1 热部署的原理想要知道热部署的原理,必须要了解java类的加载过程。一个java类文件到虚拟机里的对象,要经过如下过程。 首先通过java编译器,将java文件编译成class字节码,类加载器读取class字节码,再将类转化为实例,对实例newInstance就可以生成对象。 类加载器ClassLoader功能,也就是将class字节码转换到类的实例。在java应用中,所有的实例都是由类加载器...原创 2020-12-10 13:26:47 · 628 阅读 · 0 评论 -
java加载机制、类加载器、双亲委派模式、加载器常用方法
1. 类加载机制的层次结构每个编写的”.java”拓展名类文件都存储着需要执行的程序逻辑,这些”.java”文件经过Java编译器编译成拓展名为”.class”的文件,”.class”文件中保存着Java代码经转换后的虚拟机指令,当需要使用某个类时,虚拟机将会加载它的”.class”文件,并创建对应的class对象,将class文件加载到虚拟机的内存,这个过程称为类加载,这里我们需要了解一下类加载的过程,如下:Jvm执行class文件1.1 类的加载机制将class文件字节码内容加.原创 2020-12-10 11:15:33 · 75 阅读 · 0 评论 -
java字节码技术包含类是如何通过字节码创建的
1. 字节码技术应用场景AOP技术、Lombok去除重复代码插件、动态修改class文件等2. 字节技术优势Java字节码增强指的是在Java字节码生成之后,对其进行修改,增强其功能,这种方式相当于对应用程序的二进制文件进行修改。Java字节码增强主要是为了减少冗余代码,提高性能等。实现字节码增强的主要步骤为: 1、修改字节码在内存中获取到原来的字节码,然后通过一些工具(如 ASM,Javaasist)来修改它的byte[]数组,得到一个新的byte数组。 2、使修改后的字节码生效有原创 2020-12-10 10:18:36 · 288 阅读 · 0 评论 -
如果解决java Out of Memory异常及原理是什么
1. JAVA堆溢出错误原因: java.lang.OutOfMemoryError: Java heap space 堆内存溢出解决办法:设置堆内存大小// -Xms1m -Xmx10m -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError// -Xms1m -Xmx10m -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryErrorList<Object>listObject = ne原创 2020-12-10 08:55:26 · 215 阅读 · 0 评论 -
java内存结构即运行时剖析
1.java堆java堆(JAVA HEAP)是java虚拟机所管理的内存中最大的一块,是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,这一点在Java虚拟机规范中的描述是:所有的对象实例以及数组都要在堆上分配。java堆是垃圾收集器管理的主要区域,因此也被成为“GC堆”(Garbage Collected Heap)。从内存回收角度来看java堆可分为:新生代和老生代(当然还有更细致的划分,在下一章会讲到)。从内存分配的角度看,线程共享的Java堆中可..原创 2020-12-09 15:54:36 · 67 阅读 · 0 评论 -
java垃圾回收原理跟内存分配原理
1. 什么是垃圾回收机制不定时去堆内存中清理不可达对象。不可达的对象并不会马上就会直接回收,垃圾收集器在一个Java程序中的执行是自动的,不能强制执行,即使程序员能明确地判断出有一块内存已经无用了,是应该回收的,程序员也不能强制垃圾收集器回收该内存块。程序员唯一能做的就是通过调用System.gc 方法来"建议"执行垃圾收集器,但其是否可以执行,什么时候执行却都是不可知的。这也是垃圾收集器的最主要的缺点。当然相对于它给程序员带来的巨大方便性而言,这个缺点是瑕不掩瑜的。public class原创 2020-12-09 16:46:35 · 202 阅读 · 0 评论