×
新网 > 虚拟主机 > 正文

Java虚拟机-JVM特性总结分享

  • 作者:新网
  • 来源:新网
  • 浏览:100
  • 2018-05-02 17:59:48

大家好!最近看这本书,颇有心得,自己也算深入的了解到了不少知识,从这本书里提取了自己认为比较重要的知识点分享给大家,还有自己的一些图例总结。

   大家好!最近看这本书,颇有心得,自己也算深入的了解到了不少知识,从这本书里提取了自己认为比较重要的知识点分享给大家,还有自己的一些图例总结。

t0168e141ebeb2a01ea.jpg

 

<div>  侧重于本书的以下几章内容:第2章-java内存区域与内存溢出异常、第3章-垃圾收集器与垃圾回收策略、第6章-类文件结构、第7章-虚拟机类加载机制、第8章-虚拟机字节码执行引擎。
  这几个主要章节是有一定的内在联系。虚拟机中内存占用最大的就是堆内存,而对象的实例就存在堆中,所以这部分内存的使用效率最高。java语言是面向对象的,而对象是怎样来占用堆中这部分内存的呢?下面内容或者下面几期我会为大家揭开迷雾!
  当然,java虚拟机中不仅仅只有堆占用内存还有:java虚拟机栈、程序计数器、本地方法栈、方法区这5类瓜分虚拟机内存。如上图所示,由java虚拟机管理的这五部分数据区域,可分为两大类:一类是线程共享的,一类是线程私有的。而线程私有的数据区,每一部分的内存和线程的生命周期相同,每个线程之间互不影响,独立存储。
  线程共享的区域可分为:java堆(占用的内存最大)、方法区
  java堆:在虚拟机启动时创建,几乎所有对象的实例都在堆上分配内存。是垃圾收集器管理的主要区域
  方法区:主要存储运行时常量池、常量、静态变量、已被虚拟机加载的类信息、即时编译器编译后的代码等数据
  线程私有的区域可分为:程序计数器、java虚拟机栈、本地方法栈
  程序计数器: 存储当前线程执行的字节码的行号指示器
  java虚拟机栈: 是描述java方法执行的内存模型,每个方法在执行时都会申请一段内存存放方法执行时的数据,称为栈帧;其包含局部变量、操作数栈、动态链接、方法出口等数据。JVM是基于栈的,所以每个方法从开始执行到结束,对应这一个栈帧在虚拟机中入栈到出栈的过程。

免责声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,也不承认相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,请发送邮件至:operations@xinnet.com进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

免费咨询获取折扣

Loading