分享好友 最新动态首页 最新动态分类 切换频道
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区,直接进入年老代。

最新文章
aigcguide
开搜AI问答搜索是一款创新的AI搜索引擎,专为大众设计,能迅速提供直达答案,无广告打扰,覆盖全网信息,确保搜索结果既快又准。该产品通过AI技术深度分析信息源,智能甄别错误信息,优先调用权威数据,确保每次搜索结果都准确无误。开搜AI
21.<sql id="sqlId">与<include refid="sqlId">重用sql
com.github.pagehelper.PageHelper github上的一个基于mybatis的分页插件PageHelper原理: 1.1把计算好的分页放到线程变量中 1.2在mybatis查询,会进入到拦截器中,根据这个线程变量看是否要分页 PageHelper实现分页原理
2024新奥今晚开什么下载|词语释义解释落实 _0.053896834
【重磅资讯】揭秘2024新奥今晚开什么下载?关键词深度解读与落实细节解析导语:今晚,汽车界将迎来一场备受瞩目的盛事——新奥汽车发布会的召开,本文将为您带来关于“新奥今晚开什么下载”的全面解读,包括关键词释义解释及落实细节分析,
AI美女写真生成器评测:用简单AI工具轻松制作超逼真美女写真
注册账户并登录:如果还没有注册账户,可以选择快速注册后登录,简单几步就好。选择生成模式:进入后,可以看到多种生成模式,选择“美女写真”模式,确保你的需求。输入参数描述:根据你的想法输入一些关键词,比如“清新自然”“优雅”,
B2B门户如何获取高质量外链,提升谷歌SEO?
在数字化浪潮席卷全球的今天,B2B门户网站的竞争愈发激烈。如何在谷歌搜索引擎中脱颖而出,成为众多企业关注的焦点。基于我在SEO领域的实战经验,我深刻认识到,获取高质量外链是提升谷歌SEO排名的重要手段。接下来,我将详细分享如何通过
AI人工智能文案营销策略:研究、策划、案例全方位解析
随着科技的飞速发展人工智能()在各个行业中的应用日益广泛文案营销领域也不例外。人工智能文案营销策略以其高效、精准的特点逐渐成为企业争相尝试的新手。本文将从研究、策划和案例三个方面全方位解析人工智能文案营销策略。人工智能在文
AI绘画!普通人的变现新路子,一文全部讲清楚
一、AI绘画用途 当AI热潮来袭,别人还在迷茫担心时,他早已凭借AI,开拓了人生的新赛道。刚开始,我还有点不信。直到我看到了他用AI生成的绘画作品,我惊呆了! 他用AI生成的各种风格头像▼讲真࿰
AI生成美女写真:试试这些超强工具,让你轻松拥有完美头像!
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=030001_yljdaimn 在人们的社交生活中,照片总是占据着举足轻重的地位。而随着AI技术的飞速发展,越来越多的美
2024年P5336期[笑欲火]直选定位6*6*6*6*6预测
336期笑欲火P5直选定位6*6*6*6*6预测:123489*012345*012368*012678*015789 开:335期笑欲火P5直选定位6*6*6*6*6预测:034679*123456*135689*234569*012578 开:49906334期笑欲火P5直选定位6*6*6*6*6预测:023459*012379*014789*123789*123469
2017年最新说说大全撰写步骤指南
摘要:本文是关于撰写步骤指南的简短摘要,主要介绍了如何撰写关于2017年最新说说的内容。文章旨在帮助读者了解如何捕捉当下的流行趋势和热门话题,通过撰写吸引人的说说来吸引更多关注和互动。本文提供了关于撰写过程的简要指导,包括选题
相关文章
推荐文章
发表评论
0评