page contents
Nen
Nen - 程序员

性别: 天津 - 天津市 注册于 2021-06-23

向TA求助
2850金币数
43180 经验值
1个粉丝
主页被访问 6252 次

3096 个回答

0 赞同

说下你对垃圾回收策略的理解/垃圾回收时机?

1. Minor / Scavenge GC 所有对象创建在新生代的 Eden 区,当 Eden 区满后触发新生代的 Minor GC,将 Eden 区和非空闲 Survivor 区存活的对象复制到另外一个空闲的Survivor 区中。保证一个 Survivor 区是空的,新生代 Minor GC 就是在两个 Survivor 区之间相互复制存活对象,直到 Survivor 区满为止。 Minor/Scavenge 这...

回答于 2022-02-09 14:09

0 赞同

谈谈你对内存分配的理解?大对象怎么分配?空间分配担保?

1. 对象优先在 Eden 区分配:大多数情况下,对象在新生代 Eden 区分配,当 Eden 区空间不够时,发起 Minor GC。 2. 大对象直接进入老年代:大对象是指需要连续内存空间的对象,最典型的大对象是那种很长的字符串以及数组。经常出现大对象会提前触发垃圾收集以获取足够的连续空间分配给大对象。-XX:PretenureSizeThreshold...

回答于 2022-02-09 14:07

0 赞同

说下你用过的 JVM 监控工具?

1. jvisualvm:虚拟机监视和故障处理平台 2. jps :查看当前 Java 进程 3. jstat:显示虚拟机运行数据 4. jmap:内存监控 5. jhat:分析 heapdump 文件 6. jstack:线程快照 7. jinfo:虚拟机配置信息

回答于 2022-02-09 14:06

0 赞同

如何利用监控工具调优?

1、堆信息查看 1. 可查看堆空间大小分配(年轻代、年老代、持久代分配) 2. 提供即时的垃圾回收功能 3. 垃圾监控(长时间监控回收情况) 4. 查看堆内类、对象信息查看:数量、类型等 5. 对象引用情况查看 有了堆信息查看方面的功能,我们一般可以顺利解决以下问题: 1. 年老代年轻代大小划分是否合理 2. 内存泄漏...

回答于 2022-02-09 14:03

0 赞同

JVM 的一些参数?

1. 堆设置 -Xms:初始堆大小 -Xmx:最大堆大小 -XX:NewSize=n:设置年轻代大小 -XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为 1:3,年轻代占整个年轻代年老代和的 1/4 -XX:SurvivorRatio=n:年轻代中 Eden 区与两个 Survivor 区的比值。注意 Survivor 区有两个。如:3,表示 Eden:Su...

回答于 2022-02-09 14:03

0 赞同

谈谈你对类文件结构的理解?有哪些部分组成?

Class 文件没有任何分隔符,严格按照上面结构表中的顺序排列。无论是顺序还是数量,甚至于数据存储的字节序这样的细节,都是被严格限定的,哪个字节代表什么含义,长度是多少,先后顺序如何,都不允许改变。 1、魔数(magic):每个 Class 文件的头 4 个字节称为魔数(Magic Number),它的唯一作用是确定这个文件是否为一...

回答于 2022-02-09 14:02

0 赞同

谈谈你对类加载机制的了解?

虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的 Java 类型,这就是虚拟机的类加载机制。 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用、卸载 7 个阶段。其中验证、准备、解析 3...

回答于 2022-02-09 13:56

0 赞同

类加载各阶段的作用分别是什么?

1. 加载 在加载阶段,虚拟机需要完成以下三件事情: 1、通过一个类的全限定名来获取定义此类的二进制字节流; 2、 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构; 3、在内存中生成一个代表这个类的 java.lang.Class 对象,作为方法区这个类的各种数据的访问接口。 2. 验证 主要是为了确保 Class 文...

回答于 2022-02-09 13:54

0 赞同

谈对 Java 中引用的了解?

无论是通过引用计数算法判断对象的引用数量,还是通过可达性分析算法判断对象的引用链是否可达,判定对象是否存活都与“引用”有关。在Java语言中,将引用又分为强引用、软引用、弱引用、虚引用 4 种,这四种引用强度依次逐渐减弱。 1. 强引用   在程序代码中普遍存在的,类似 Object obj = new Object() 这类引用,只要强...

回答于 2022-02-08 14:02

0 赞同

谈对内存泄漏的理解?

内存泄露的基本概念 在 Java 中,内存泄漏就是存在一些不会再被使用确没有被回收的对象,这些对象有下面两个特点: 1、这些对象是可达的,即在有向图中,存在通路可以与其相连; 2、这些对象是无用的,即程序以后不会再使用这些对象。 如果对象满足这两个条件,这些对象就可以判定为 Java 中的内存泄漏,这些对象不会被...

回答于 2022-02-08 14:00