当前位置 > 主页 > 万和大讲堂 >


南京Java培训分享Java核心知识点-JVM结构和工作方式

2016-05-20 09:39

  本文南京万和Java培训分享了Java核心知识点-JVM结构和工作方式,希望对正在学习的小伙伴有帮助。


  一、JVM体系结构


  1.1 JVM中主要包括(PC寄存器,栈,)(堆,方法区,)本地方法区



  一个Java线程中,包括PC寄存器(保存当前执行的指令位置),和栈帧(一个方法对应一个栈帧),本地变量(保存计算中的临时数据),当一个线程结束后,线程内所有数据就自动销毁,不需要垃圾回收。



  PC寄存器和栈



  将1压入栈中,将2压入栈中,将1,2弹出计算1+2,将3压入栈顶,OVER。


  方法区:


  方法区是堆的一部分,就是java的永久区PermGen。



  本地方法区


  本地方法区是为了JVM运行native方法(c/c++等语言写的方法)准备的区。


  1.2 内存分配方式:


  静态内存分配:


  在编译时确定需要的内存空间,当程序加载时系统把内存一次性分配给它。静态内存分配是在java栈上分配的,当方法结束时对应的栈帧也就撤销,所以分配的内存空间就被回收。



  上面一段代码会占用内存空间4+4+8+4+4=24。


  动态内存分配:


  程序执行的时候才知道要分配的内存大小,当对象创建的时候,在堆上给对象分配一块空间,空间回收时间不定,由JVM垃圾回收器管理。


  1.3 垃圾回收算法



  ◎新创建的对象会分配到Young的Eden上,如果Eden满了就触发MinorGC,将Eden区中存活的对象保存到Survivor的一个区中,同时将Survivor另一个区存活的对象也保存到Survivor这个区中,Survivor区始终有一个区是空的。


  ◎survivor的一个区满了之后,会将对象直接放到Old区,Old区满了会触发FullGC,将回收整个堆空间。


  ◎perm区主要保存class对象,垃圾回收也是FullGC触发


  以上就是南京万和Java培训关于Java核心知识点-JVM结构和工作方式的详解。想和兴趣相投的朋友们一起交流吗?那就来江苏万和计算机培训中心吧。而江苏万和作为南京专业的Java培训中心,欢迎广大有志于此行业发展的学员们加入。

最近开班 more>
  • Python基础班
  • Java全栈开发
  • 前端基础班
  • 软件测试
  • 云原生精英班
  • 云网预科班
  • CISP
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • OCM 12C
  • OCP 19C
  • RHCE 9.0
  • 随时开课
  • 12月26日
  • 随时开课
  • 12月4日
  • 12月16日
  • 12月9日
  • 12月21日
  • 1月6日
  • 12月30日
  • 12月16日
  • 12月21日
  • 12月7日
  • 12月7日
  • ——
  • 随时开课
  • 12月16日
    • 姓 名 :
    • 电 话 :
    • 课 程 :

技术交流群

  • Java大数据交流群560819979加入
  • Python技术交流群595083299加入
  • Oracle技术交流群595119011加入
  • Web前端技术交流群604697610加入
  • Huawei技术交流群482919361加入
  • Redhat技术交流群587875348加入
  • UI设计技术交流群511649801加入
  • Cisco技术交流群596886705加入
  • IT运维技术交流群605888381加入