码迷,mamicode.com
首页 > 其他好文 > 详细

JVM

时间:2018-07-27 23:15:06      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:计数器   mem   溢出   实例   无法   基本数据类型   信息   over   深度   

在运行时数据区 哪些是线程和线程私有的

01 线程共享

方法区

02 线程私有

虚拟机栈 本地方法栈  程序计数器

下面我来具体的介绍一下这几个名词

 

 程序计数器 :

 

  • 当前线程执行字节码文件的行号指示器能够在线程切换后找到自己正确的位置
  • 唯一一个不会导致内存溢出 outofmeorm

 

虚拟机栈:

 

  • 基本数据类型和对象的引用变量都存在此区域

 

  • 先进后出,后进先出

 

本地方法栈

 

  • 主要服务的是native修饰的方法 在HotSport中虚拟机栈和本地方法栈合为一体

 

 堆                                    

 

  • 所有对象的实例和数组开辟的空间都在此区域保存

 

  • 所有线程共享

 

  • GC主要回收对象的区域

 

方法区: (静态区)

 

  • 所有线程共享;

 

  • 方法(包含构造),接口,定义在此区域

 

  • 所有方法的信息;

 

  • 静态常量类信息+方法信息+常量池

 

 

可能出现异常  在这里我介绍两个异常

  1. StackOverFlowerror  线程请求的栈的深度大于虚拟机栈规定的深度
  • OutofMemoryError   虚拟机在扩展栈时,无法申请到足够的内存空间

 

JVM

标签:计数器   mem   溢出   实例   无法   基本数据类型   信息   over   深度   

原文地址:https://www.cnblogs.com/wh1520577322/p/9379924.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!