本篇内容很全,基本覆盖了各大公司,可以为面试做好准备. 因篇幅问题,这里只展示了问题,可以看看自己掌握的怎么样,需要完整面试题答案可以文末获取: 【目录】 1. 阿里篇 2. 华为篇 3. 百度篇 4. 腾讯篇 5. 美团篇 6. 头条篇 7. 滴滴篇 8. 京东篇 9. MySQL篇 10. Re ...
分类:
编程语言 时间:
2020-04-22 13:00:05
阅读次数:
69
不同的垃圾收集器代表不同的回收算法Serial收集器是针对新生代的收集器,采用的是Copying算法 Serial Old收集器是针对老年代的收集器,采用的是Mark-Compact算法,标记-压缩算法Parallel 并行收集器 Copying算法Parallel Old收集器 并行收集器 Mar ...
分类:
其他好文 时间:
2020-04-19 17:34:10
阅读次数:
77
参考:GC垃圾收集器分类 一、垃圾回收算法 1.标记-清除算法 2.复制算法 3.标记-整理算法 二、按垃圾收集器所处区域分类 1.新生代收集器:Serial(复制算法)、ParNew、Parallel Scavenge; 2.老年代收集器:Serial Old(标记-整理)、Parallel Ol ...
分类:
其他好文 时间:
2020-04-15 21:50:53
阅读次数:
107
JVM虚拟机 03、JVM内存分配机制与垃圾回收算法 1 JVM内存分配与回收 1.1 对象优先在Eden区分配 大多数情况下,对象在新生代中?Eden?区分配。当?Eden?区没有足够空间进行分配时,虚拟机将发起一次Minor?GC。我们来进行实际测试一下。在测试之前我们先来看看 Minor?GC ...
分类:
编程语言 时间:
2020-04-14 17:13:56
阅读次数:
74
导致Full GC一般由于以下几种情况: 1)老年代空间不足 调优时尽量让对象在新生代(细分为Eden和幸存区)GC时被回收、让对象在新生代多存活一段时间(增大新生代内存或者调高晋升老年代的门槛)和不要创建过大的对象及数组避免直接在老年代创建对象 2)新生代设置过小 一是新生代GC次数非常频繁,增大 ...
分类:
其他好文 时间:
2020-04-06 22:14:33
阅读次数:
105
1对象的分配 CLR要求所有的对象都是从托管堆分配。 CLR划出一个地址空间区域作为托管堆。 CLR还要维护一个指针,NextObjPtr。 用来指向下一个对象在堆中分配的位置。 一个区域被非垃圾对象填满,CLR会分配更多的区域。一直重复,直到整个进程的地址空间被填满。所以你的应用程序受进程的虚拟地 ...
分类:
Web程序 时间:
2020-04-06 20:13:35
阅读次数:
88
Young GC的触发时机:Young GC其实一般就是在新生代的Eden区域满了之后就会触发,采用复制算法来回收新生代的垃圾。 Full GC的触发时机如下: (1)发生Young GC之前进行检查,如果“老年代可用的连续内存空间” < “新生代历次Young GC后升入老年代的对象总和的平均大小 ...
分类:
其他好文 时间:
2020-04-04 11:21:05
阅读次数:
746
Young GC的触发时机:Young GC其实一般就是在新生代的Eden区域满了之后就会触发,采用复制算法来回收新生代的垃圾。 Full GC的触发时机如下: (1)发生Young GC之前进行检查,如果“老年代可用的连续内存空间” < “新生代历次Young GC后升入老年代的对象总和的平均大小 ...
分类:
其他好文 时间:
2020-04-03 18:13:00
阅读次数:
441
一.Java堆从GC的角度去看,可以分为三个区域,分为是新生代,老年代,永久代(是方法区的实现,但是物理逻辑是和堆在一起的) 其中新生代占1/3的堆空间,老年代占2/3的堆空间,永久代占得很少,就不进行划分了,他也占了,但是很少很少,新生代占的1/3又分为Eden区(占比8/10),Servivor ...
分类:
其他好文 时间:
2020-04-02 15:54:22
阅读次数:
86
JDK的命令行工具(jps:虚拟机进程状况工具,jstat:虚拟机统计信息监视工具,jinfo:Java配置信息工具,jmap:Java内存映像工具,jhat:虚拟机堆转储快照分析工具,jstack:Java堆栈跟踪工具);可视化工具(JConsole,VisualVM) 一. JDK的命令行工具 ...
分类:
编程语言 时间:
2020-03-31 01:16:50
阅读次数:
99