JAVA 继承内存模型_Java内存模型

1. JVM三大调优参数 -Xms -Xmx -Xss的含义?

-Xss : 每个线程虚拟机栈以及堆栈的大小,常用配置256k,影响并发线程数大小;

-Xms : 初始堆大小;

-Xmx : 堆能达到的最大值;

2. Java内存模型中堆和栈的区别.

1. 首先讲明白的这个问题,就需要明白内存分配策略;通常内存分配策略有三种:①静态的,②栈式的,③堆式的;

静态类型 : 编译时确定每个数据目标在运行时的存储空间;

栈式类型 : 数据区需要在编译时未知,运行时且在进入程序模块前确认;

堆式类型 : 编译时或运行时都未知,然后通过动态分配;

2. 其次还需要明白堆和栈之间的联系,引用对象以及数组时,栈里定义变量来保存堆中的首地址;

3. 在明白了以上两点以后他们之间的区别就显而易见了:

管理方式不同 : 栈自动释放,堆需要等待GC;

空间大小 : 栈比堆小;

碎片相关 : 栈产生的碎片远小于堆;

分配方式 : 栈支持静态和动态分配,堆只支持动态分配;

效率不同 : 栈比堆效率高;

3. 元空间和堆以及线程独占部分之间的联系.

元空间 : 当类被加载进来的时候,元空间中存储类相关信息(方法以及属性等);

堆 : 当类被创建的时候,堆中主要存储的是类对象实例;

线程独占部分 : 当程序运行时,JVM会分配虚拟机栈以及程序计数器等并且存储地址引用;

4. 不同JDK版本之间intern()方法的区别?

JDK6 : 当调用intern方法时,如果字符串常量池先前已创建出该字符串对象,则返回池中的该字符串的引用.否则,将此字符串对象添加到字符串常量池中,并且返回该字符串对象的引用;

JDK6+ : 当调用intern方法时,如果字符串常量池先前已创建出该字符串对象,则返回池中的该字符串的引用.否则,如果该字符串对象已经存在于Java堆中,则将堆中对此对象的引用添加到字符串常量池中,并且返回该引用;如果堆中不存在,则在池中创建该字符串并返回其引用.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值