学习
实践
活动
专区
工具
TVP
写文章

JVMJVM初探

JVM初探 JVM 执行文件 类装入子系统 执行引擎 垃圾回收器 堆中的内存回收 方法区中的内存回收 关于回收的那些事 JVM 执行文件 JVM执行的文件为class文件,这个执行文件是什么意思呢,就是虚拟机能够识别的文件 ,类加载器加载链接初始化后将数据保存在JVM运行时数据区中的文件。 类装入子系统 JVM的类加载器为ClassLoader采用双亲委派模型机制进行加载类。 即解释器先运行一段时间才能够真正提升效率); 垃圾回收器,Java能够流行的一个原因还有这个特点:他不用管理内存,由JVM的垃圾回收器自动进行回收垃圾,达到管理内存的目的。 垃圾回收器 JVM运行时内存结构为:PC程序计数器、本地方法栈、虚拟机栈、堆、方法区。

14400
  • 广告
    关闭

    年末·限时回馈

    热卖云产品年终特惠,2核2G轻量应用服务器7.33元/月起,更多上云必备产品助力您轻松上云

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JVM初探 -JVM内存模型

    JVM花费过多时间来进行内存回收 3. 二、JVM内存空间管理 根据JVM规范,JVM把内存划分了如下几个区域: 1. 方法区 2. 堆区 3. 本地方法栈 4. 虚拟机栈 5. 对于堆区大小,可以通过参数-Xms和-Xmx来控制,-Xms为JVM启动时申请的最新heap内存,默认为物理内存的1/64但小于1GB;-Xmx为JVM可申请的最大Heap内存,默认为物理内存的1/4但小于 1GB,默认当剩余堆空间小于40%时,JVM会增大Heap到-Xmx大小,可通过-XX:MinHeapFreeRadio参数来控制这个比例;当空余堆内存大于70%时,JVM会减小Heap大小到-Xms指定大小 另一个通常采用串行GC的场景就是一台机器运行多个JVM虚拟机的情况(JVM虚拟机个数大于CPU核心数),在这种场景下,当一个JVM进行垃圾回收时只利用一个处理器,不会对其它JVM造成较大的影响。

    36920

    JVM初探 -JVM内存模型

    JVM是每个Java开发每天都会接触到的东西, 其相关知识也应该是每个人都要深入了解的. 但接触了很多人发现: 或了解片面或知识体系陈旧. 因此最近抽时间研读了几本评价较高的JVM入门书籍, 算是总结于此. JVM 内存区域 JVM会将Java进程所管理的内存划分为若干不同的数据区域. 这些区域有各自的用途、创建/销毁时间: ? 一. 不同于OS以进程为单位调度, JVM中的并发是通过线程切换并分配时间片执行来实现的. 在任何一个时刻, 一个处理器内核只会执行一条线程中的指令. Method Area(方法区) 即我们常说的永久代(Permanent Generation), 用于存储被JVM加载的类信息、常量、静态变量、即时编译器编译后的代码等数据.

    29140

    jvm(1):jvm内存模型

    身为一个职业的Java程序员,每天打交到最多的就是jvm,那么套用孙子的一句话“知己知彼方能百战不殆”,熟悉jvm也就意味着是我们进阶路上必过之槛,下面先来张图,大概说明下jvm的内存分布 ? 方法区与堆空间类似,是被JVM中所有的线程共享的区域。方法区中最为重要的是类的类型信息、常量池、域信息、方法信息。类型信息包括类的完整名称、父类的完整名称、类型修饰符和类型的直接接口。 Java堆:堆在JVM规范里是一种通用性的内存池,用于存放所有的Java对象。堆是一个运行时数据区,类的对象从中分配空间,堆的优势是可以动态地分配内存大小,生存周期也不需要事先告诉编译器。 methodPointerEscape().printClassName(this);//实例引用发生逃逸 } } 通过上面的例子我们可知,逃逸分析通常是全局变量赋值、方法返回值、实例引用传递(详见另一篇文章) 虚拟机栈:JVM

    33530

    JVM

    重学Java系列之深入理解JVM虚拟机开篇:JVM介绍与知识脉络梳理 重学Java系列之深入理解JVM虚拟机1:JVM内存的结构与永久代的消失 重学Java系列之深入理解JVM虚拟机2:垃圾回收器详解 重学Java系列之深入理解JVM虚拟机3:Java class介绍与解析实践 重学Java系列之深入理解JVM虚拟机4:虚拟机字节码执行引擎 重学Java系列之深入理解JVM虚拟机5:深入理解JVM类加载机制 重学Java系列之深入理解JVM虚拟机6:JNDI,OSGI,Tomcat类加载器实现 重学Java系列之深入理解JVM虚拟机7:Java的编译期优化与运行期优化 重学Java系列之深入理解JVM虚拟机 8:JVM监控工具与诊断实践 重学Java系列之深入理解JVM虚拟机9:JVM常用参数以及调优实践 重学Java系列之深入理解JVM虚拟机10:JVM性能管理神器VisualVM介绍与实战 重学Java 系列之深入理解JVM虚拟机11:再谈四种引用及GC实践 补充 对于 JVM 方面的知识的巩固与其在网上看一些零零碎碎的文章不如啃一下这本书。

    29900

    JVM

    Java 程序中的内存分配和回收都由 JVM 管理,不支持程序员直接对内存地址进行操作。不容易出现内存泄漏和内存溢出问题。----内存空间进程是分配资源的基本单位。 JDK 1.7 后 JVM 将常量池从方法区中移出,改为在堆中开辟空间存放。栈区(Stack) 存放线程执行 Java 方法调用的内存数据。 类加载检查JVM 接收到 new 指令,首先检查该类是否在常量池中,然后检查该类是否已被加载、解析和初始化。如果没有则先加载类,类加载器会将类的字节码文件放入 JVM 解析。 // trueSystem.out.println(str1 == str3); // falseCopy to clipboardErrorCopied包装类型JVM 如果 JVM 已无法分配足够的内存,将会抛出 OutOfMemoryError 导致程序崩溃。同时为了更合理地使用内存,Java 会由虚拟机对堆区内存空间自动进行垃圾回收。

    10530

    JVM初探(一):jvm内存结构

    一、概述 我们知道java代码先编译为.class文件,然后再将.class文件交由jvm执行。 在程序运行的这一过程中,jvm会将其管理的内存空间划分为不同的区域,这些区域各有各的用途,我们将其分为五类: 方法区 堆 虚拟机栈 本地方法栈 程序计数器 其中方法区和堆是线程共享的,随jvm启动和停止而创建和销毁 实际上,方法区是jvm的一个规范,永久代是这种规范的另一种实现,类似的还有元空间,这也是方法区的一种实现。 jvm虚拟机分为很多种,比如HotSpot ,JRockit(Oracle)、J9(IBM)等等,但是只有HotSpot才有永久代这个说法。 这里的 “运行时常量池”同上文提到的方法区和永久代的关系一样,也是jvm的规范而不是实现,运行时常量必然会有一个专门的储存空间,但是放在哪就得看虚拟机各自的实现了。

    8520

    JVM

    文章目录 Java脑图 谈谈对Java的理解 平台无关性 特点 类测试complie 编译运行 反编译 不同系统解析class文件成为不同机器码 为什么不直接编译成机器码 JVM如何加载.class文件 理解 内存模型 程序计数器 虚拟机栈 口语指令分析代码 递归为什么会引发异常1 异常2 本地方法栈 元空间与永久代区别 堆(Heap) JVM存储角度 三大性能调优参数-Xms -Xmx -Xss含义 上传本地文件 创建相同包目录 mkdir -p 目录 复制文件 cp 文件 指定目录 为什么不直接编译成机器码 准备工作:无需重复校验语法 可扩展:字节码可由不同语言生成 JVM ASM的目标是生成,转换和分析已编译的java class文件,可使用ASM工具读/写/转换JVM指令集。 存储对象实例 可以处在物理上不连续的空间,逻辑连续即可,可扩展的 JVM存储角度 三大性能调优参数-Xms -Xmx -Xss含义 调整JVM,堆、线程,所占内存的大小 Java内存模型中堆和栈的区别

    13621

    关注

    腾讯云开发者公众号
    10元无门槛代金券
    洞察腾讯核心技术
    剖析业界实践案例
    腾讯云开发者公众号二维码

    相关产品

    • 云数据仓库 for Apache Doris

      云数据仓库 for Apache Doris

      云数据仓库Doris(cdwdoris)为您提供基于 MPP(大规模并行处理)架构的云端Doris托管服务,拥有开箱即用,弹性易扩展等特性。云数据仓库 Doris支持标准SQL语言,兼容MySQL协议,支持对PB级的海量数据进行高并发查询,和亚秒级的快速分析,帮助您轻松应对多种ETL数据处理和业务探索场景。

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券