![](https://img-blog.csdnimg.cn/141fe44f065c41248110dca5aab16e47.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
JVM
文章平均质量分 76
分享关于JVM的一点点小知识
菜鸟一枚在这
这个作者很懒,什么都没留下…
展开
-
对象的创建
对象的创建这期我们主要讲解虚拟机内对象的详细情况,我们通过之前的学习,知道了一些对象的内存布局,但是对于对象的详细情况我们还不是很清楚,所以我们接下来开始深入去了解它。前言对象的实例化创建对象的方式:newa.new关键字创建b.单例模式(实际上还是new关键字创建)2.clone3.class对象的newInstance4.Class.forname(全类名)5.反序列化6.第三方类库的Objenesis创建对象的步骤:1.判断对象对应的类是否加载、链接初始化2原创 2021-11-19 13:29:47 · 1155 阅读 · 0 评论 -
JVM方法区(最详细)
系列文章目录上述的文章我们了解了除了方法区外的运行时数据区,本文我们着重来讲解方法区。方法区系列文章目录一、方法区的含义二、栈、方法区、堆之间的联系三、方法区详情1.方法区的演进1.1、永久代(PermGen)1.2、元空间(MetaSpace)2.方法区大小参数设置3.方法区的内部结构1.类型信息2.域信息3.方法信息总结一、方法区的含义方法区(Method Area)与Java堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类型信息、常量、静态变量、即时编译器编译后的代码缓存等原创 2021-11-08 10:30:40 · 2057 阅读 · 0 评论 -
编译器优化技术
编译器优化技术对于前面的即时编译、提前编译的讲解,我们对代码的编译技术有了一定的了解。编译器的目标虽然是做由程序代码翻译为本地机器码的工作,但其实难点并不在于能不能成功翻译出机器码,输出代码优化质量的高低才是决定编译器优秀与否的关键。本节将介绍几种HotSpot虚拟机的即时编译器在生成代码时采用的代码优化技术编译器优化技术编译器优化技术一、优化技术概览二、方法内联三、逃逸分析四、公共子表达式消除五、数组边界消除总结一、优化技术概览不同的虚拟机有自己的优化技术,一个虚拟机的优化技术的好坏决定了原创 2021-11-07 22:07:15 · 1469 阅读 · 0 评论 -
JVM第四期(内存区域)
不同的内存区域操作系统的内存分区栈Stack堆Heap未初始化数据段Bss数据段DataSegment文本段LiteralSegment代码段CodeSegmentJVM的内存分区程序计数器PC虚拟机栈JVM Stack本地方发栈Native Stack堆Heap方法区Method AreaJVM的内存分区方法区和堆是线程共享的。这些是独占的。程序计数器:用于存储指令地址,交给虚拟机执行相关指令。public clas原创 2021-10-14 11:26:29 · 47 阅读 · 0 评论 -
JVM第三期(内存模型)
内存模型:1、硬件内存模型:在多个CPU同时访问和修改同一数据时,会遵循CPU的缓存一致性原则。从一开始的硬件内存模型,再到后面的程序语言的发展,一只发展到语言层面的内存模型。让程序语言有自己的专属内存模型。2、Java内存模型:线程通过计算机指令对内存数据进行读写等操作!基本的指令: 1.主内存:lock(锁定)、unlock(解锁)、write(写入)、read(读取) 2.工作内存:load(加载)、use(使用)、assign(赋值)、store(存储)具体步骤: 在线原创 2021-10-08 11:01:04 · 72 阅读 · 0 评论 -
JVM第二期(双亲委派机制)
对于Java的双亲委派机制,这里不得不提起Java的类加载机制,对于类加载器,具体分为以下的类加载器:BootStrapClassLoader:只加载一些jdk核心依赖库中的包,是由c/c++底层实现的,不能作为对象给我们自己使用。ExtensionClassLoader:扩展类加载器。ApplicationClassLoader:程序加载器,加载一些Java calsspath和自定义path路径下的类,他和ExtensionClassLoader加载器都可以作为对象给我们使用。UserClas原创 2021-10-07 22:08:21 · 50 阅读 · 0 评论 -
JVM速通计划(简直不要太简单)
我们都知道,一个Java程序执行流程(底层运行机制)类加载过程:1.含义读取编译产生的class文件,将其转化为某种静态数据结构存储在方法区,并在堆中生成可以供用户调用的对象2.类加载的详细过程:验证:随着版本的发展。验证的策略会越来越完善1.文件格式验证2.元数据、字节码验证3.符号引用验证准备:public class Test { private int a=1; static int b; static { b=1; }}原创 2021-10-07 21:09:31 · 64 阅读 · 0 评论