分享好友 最新动态首页 最新动态分类 切换频道
JVM
2024-12-26 15:09

引用计数:每个对象有一个引用计数属性,新增一个引用时计数加1,引用释放时计数减1,计数为0时可以回收。此方法简单,无法解决对象相互循环引用的问题。

JVM

可达性分析(Reachability Analysis):从GC Roots开始向下搜索,搜索所走过的路径称为引用链。当一个对象到GC Roots没有任何引用链相连时,则证明此对象是不可用的。不可达对象。

 

10.Java中创建一个对象的过程

1.检测类是否被加载2.为对象分配内存3.为分配的内存空间初始化零值4.对对象进行其他设置5.执行init方法

 

11.对象的内存布局

对象的内存布局包括三个部分:对象头,实例数据和对齐填充。

对象头:对象头包括两部分信息,第一部分是存储对象自身的运行时数据,如哈希码,GC分代年龄,锁状态标志,线程持有的锁等等。第二部分是类型指针,即对象指向类元数据的指针。

实例数据:就是数据啦

对齐填充:不是必然的存在,就是为了对齐的嘛

面试官:对象是如何定位访问的?

答:对象的访问定位有两种:句柄定位和直接指针

句柄定位:Java 堆会画出一块内存来作为句柄池,reference中存储的就是对象的句柄地址,而句柄中包含了对象实例数据与类型数据各自的具体地址信息

直接指针访问:java堆对象的不居中就必须考虑如何放置访问类型数据的相关信息,而reference中存储的直接就是对象地址

比较:使用直接指针就是速度快,使用句柄reference指向稳定的句柄,对象被移动改变的也只是句柄中实例数据的指针,而reference本身并不需要修改。

 

12.内存屏障

内存屏障,又称内存栅栏,是一组处理器指令,用于实现对内存操作的顺序限制。

内存屏障的重要性:对主存的一次访问一般花费硬件的数百次时钟周期。处理器通过缓存(caching)能够从数量级上降低内存延迟的成本这些缓存为了性能重新排列待定内存操 作的顺序。也就是说,程序的读写操作不一定会按照它要求处理器的顺序执行。当数据是不可变的,同时/或者数据限制在线程范围内,这些优化是无害的。如果把 这些优化与对称多处理(symmetric multi-processing)和共享可变状态(shared mutable state)结合,那么就是一场噩梦。当基于共享可变状态的内存操作被重新排序时,程序可能行为不定。一个线程写入的数据可能被其他线程可见,原因是数据 写入的顺序不一致。适当的放置内存屏障通过强制处理器顺序执行待定的内存操作来避免这个问题。

 

13.jdk自带工具、jvm命令行、调试工具

1)jps unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。

2)jmap 查看堆内存空间,可以查看堆空间的数据分布情况,新生代和老年代。

3)javac 编译java文件

4)jstack  查看栈内存空间,可以查看多线程死锁的问题,查看各个进程的状态快照。

5)jstat:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。 

6)jinfo:用来查看JVM参数和动态修改部分JVM参数的命令

7)jconsole:一个java GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM

 

14.JVM启动参数

 

在哪设置JVM的启动参数:

 

1)eclipse需要修改根目录文件eclipse.ini

 

2)tomcat bin catalina.sh 文件内添加

 

常用的设置参数;

 

-Xmx  指定JVM最大 堆内存  例:-Xmx3550m:设置JVM最大堆内存为3550M

 

-Xms  指定JVM初始 堆内存  例:-Xms3550m:设置JVM初始堆内存为3550M

 

-Xmn  (默认等效 -Xmn=-XX:NewSize=-XX:MaxNewSize=?) 用于设置新生代大小

 

-XX:NewSize=1024m:设置年轻代初始值为1024M

 

-XX:MaxNewSize=1024m:设置年轻代最大值为1024M

 

-XX:SurvivorRatio=4:设置年轻代中Eden区与Survivor区的比值。表示2Survivor区(JVM堆内存年轻代中默认有2个大小相等的Survivor区)与1Eden区的比值为2:4,即1Survivor区占整个年轻代大小的1/6

 

-Xss128k:设置每个线程的栈大小。JDK5.0以后每个线程栈大小为1M

 

-Xmx3550m: 最大堆大小为3550m

 

-Xms3550m: 设置初始堆大小为3550m

 

-Xmn2g: 设置年轻代大小为2g

 

-Xss128k: 每个线程的堆栈大小为128k

 

-XX:MaxPermSize: 设置持久代大小为16m

 

-XX:NewRatio=4: 设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)。

 

-XX:SurvivorRatio=4: 设置年轻代中Eden区与Survivor区的大小比值。设置为4,则两个Survivor区与一个Eden区的比值为2:4,一个Survivor区占整个年轻代的1/6

 

-XX:MaxTenuringThreshold=0: 设置垃圾最大年龄。如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代。

最新文章
黄金签证退场倒计时,移民欧洲还有哪些可能?
​​欧洲,这片古老而充满活力的大陆,凭借丰富的文化底蕴、多元化的经济结构、宜人的居住环境和优越的社会福利体系,一直以来吸引着众多中国人的目光。 尤其是在2008年全球金融危机之后,部分欧洲国家为提振经济,推出了备受瞩目的“黄金
规则引擎原理与实战:入门篇 了解规则引擎的基础
规则引擎是一种用于处理规则和事实的软件系统,它可以根据一组规则来处理和操作数据。规则引擎广泛应用于各个领域,如知识管理、数据清洗、自然语言处理、推荐系统等。在本文中,我们将深入了解规则引擎的基础知识࿰
百度SEO优化5个步骤(百度SEO关键词优化全攻略)
百度SEO意义介绍: SEO(SearchEngineOptimization)搜索引擎优化是指通过优化网站结构、内容、外部链接等方式来提高网站在搜索引擎中的排名,从而吸引更多的访问者并提升流量,提高网站的曝光率和知名度。百度SEO是针对百度搜索引擎进行的
快三大小
快三大小裏對彩票結果趨勢有準確的了解,具有強大的功能和豐富的玩法,超級體驗買彩票生活真是不錯,可以查詢聯賽信息,隨時隨地在線分析,感興趣的朋友們不妨試試吧!1、可以輕松自由的在平台上下注,注冊發送紅包,還有很多意想不到的功
百年牛栏山50度500毫升(6)
牛栏山经销商手机号码固定电话联系人QQ经销商地址龙威酒行134****90090373****5103高总河南新乡 中博食府183****7187183****7187李双陡沟街道中博凤华岳府5-2101福建酒一杯烟酒茶批发商行137****5565137****5565张总南屿镇酒一杯吉喆名烟
美股二十大半导体公司中国大陆营收占比最低13.4%,高通最高67.1%;高端产品仍被进口垄断,国内半导体测试探针产业加速突围
1.高端产品仍被进口垄断,国内半导体测试探针产业加速突围2.东南大学举行芯朋创新基金捐赠签约仪式,芯朋微董事长张立新获至善教育贡献奖3.【芯观点】功率半导体超级周期“下半场”到来,本土企业面临考验4.Yole:目前有超过50家中国大陆半
阿里云盘资源搜索的网址
为啥阿里云盘,还不就是因为百度网盘。。。 懂得都懂 下边是几个阿里云盘资源搜索的地址: 小纸条:https://u.gitcafe.net/ 优聚搜:https://v3.ujuso.com/ 找资源:https://zhaoziyuan.me/ 奈斯搜索:
沈阳惠天热电股份有限公司 第十届董事会2024年第七次临时会议决议公告
登录新浪财经APP 搜索【信披】查看更多考评等级  证券代码:000692          证券简称:     公告编号:2024-69  沈阳惠天热电股份有限公司  第十届董事会2024年第七次临时会议决议公告  本公司及董事会全体成员保
掌握SEO精髓,五大步骤助你从入门到精通
学习SEO五大步骤详解,包括了解基础概念、选定目标关键词、优化网站结构和内容、建立外部链接以及持续监控和分析。从入门到精通,掌握这些步骤,提升网站在搜索引擎中的排名。随着互联网的快速发展,搜索引擎优化(SEO)已经成为企业提升网
相关文章
推荐文章
发表评论
0评