![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
(次第花开)
记录为梦想而前行的过程。
展开
-
JVM中类的加载
JVM中类的加载1、类的加载过程1.1、加载 加载是指类加载器将类的class文件读入到内存中,并为之创建一个Class对象。1.2、链接 类被加载之后,系统生成一个对应的Class对象,接着将会进入链接阶段,链接阶段负责把类的二进制数据合并到JRE中。链接阶段可以细分为下面三个阶段:验证: 检验被加载的类是否有正确的内部结构,确保class文件的字节流中包含的信息符合当前虚拟机的要求,不会危害虚拟机的自身安全,主要包含四种验证:文件格式验证、元数据验证、字节码验证、符号引用验证,并和其他原创 2020-05-18 13:41:35 · 172 阅读 · 0 评论 -
浅谈对JVM的认识
浅谈对JVM的认识JVM简介JVM(Java Virtual Machine),俗称Java虚拟机。是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算功能来实现的,Java语言跨平台就是依赖于JVM实现。内部结构JVM内部主要由三部分构成:类装载器系统每一个Java虚拟机都有一个类加载器系统,负责加载程序中类和接口,并赋予唯一名称。运行时数据区主要包含:方法区:当JVM的类装载器加载.class文件,并进行解析,把解析的类型信息放入方法区。堆:虚拟机中只有一个原创 2020-05-17 10:39:03 · 179 阅读 · 0 评论 -
Synchronized实现原理及锁升级
Synchronized实现原理及锁升级Synchronized是Java内置的机制,是JVM层面的,而Lock则是接口,JDK层面的。最初的Synchronized的性能效率比较差,但是随着版本的升级,Synchronized已经越来越强大。修饰普通方法,使用类的实例加锁,进入方法前需要获取当前类的实例锁;注意反编译后的内容,flags那一行多了ACC_SYNCHRONIZED标识,表...原创 2020-04-21 20:27:08 · 152 阅读 · 0 评论 -
JAVA运行时内存模型
JAVA运行时内存模型对于部分Java程序员来说,Java内存分为堆和栈,这其实是非常粗略的一种划分,这里的堆对应内存模型中Java堆,栈对应内存模型中虚拟机栈,这是不全面的认识。实际上,运行时内存模型有五大区域,分为线程私有和线程共享两大类。其中线程私有的数据区包含程序计数器、虚拟机栈、本地方法栈,线程共享的数据区包含堆、方法区,注意在方法区中有一个常量池。线程私有程序计数器:记录...原创 2020-04-17 22:54:12 · 307 阅读 · 0 评论 -
JVM的垃圾回收算法及垃圾收集器
JVM的垃圾回收算法及垃圾收集器1、垃圾回收程序的运行必然需要申请内存资源,无效的对象资源如果不及时处理,就会一直占用内存资源,最终将导致内存溢出。所以对内存资源的管理是很重要的。Java垃圾回收让程序员更加专注代码的实现,而不用过多考虑内存释放的问题,所以Java有自动的垃圾回收机制,也就是我们通常说的GC。除了Java语言,C#、Python等语言也有自动的垃圾回收机制。2、常见的垃...原创 2019-11-04 21:56:18 · 156 阅读 · 0 评论 -
JVM之1.7于1.8内存区别
JVM之1.7于1.8内存区别jvm的内存模型在1.7和1.8有较大区别。1、jdk1.7的堆内存Young 年轻代Young区被划分为三个部分,Eden区和两个大小严格相同的Survivor区,其中,Survivor区间中,某一时刻只有其中一个是被使用的,另一个留做垃圾收集时复制对象用,在Eden区间变满的时候,GC就会将存活得的对象移到空闲的Survivor区间中,根据JVM的策...原创 2019-11-03 13:20:20 · 1975 阅读 · 0 评论 -
JVM参数及命令
JVM参数1、jvm三种参数类型标准参数-help:输出此帮助消息。-cp:目录和 zip/jar 文件的类搜索路径。-version:输出产品版本并退出。-D<名称>=<值>:设置系统属性。-showversion:输出产品版本并继续。-X参数(非标准参数)-Xint:解释模式,编译快 运行慢。-Xcomp:编译模式,编译慢 运行快(一次编译...原创 2019-11-02 22:07:52 · 721 阅读 · 0 评论