文章 2023-09-07 来自:开发者社区

阿里二面:JVM 的三色标记算法你了解吗?

一、前言不得不说阿里的面试还是挺有质量的,这个问题直接问到了 JVM 的底层算法实现。在说 JVM 的三色标记算法之前,我们先来说下 JVM 对于常见对象存活判定算法与垃圾收集算法。常见对象存活判定算法有引用计数算法和可达性分析算法。引用计数法会产生循环引用问题,JVM 默认是通过可达性分析算法来判断对象是否存活的。而那些垃圾收集算法:标记-清除、标记-复制、标记-整理算法以及在此基础上的分代收....

阿里二面:JVM 的三色标记算法你了解吗?
文章 2022-02-17 来自:开发者社区

面试阿里,这篇JVM垃圾回收算法就够了(下)

4 GC算法知道了如何判定:一个对象是无效对象一个类是无用类一个常量是废弃常量也就知道了垃圾收集器会清除哪些数据,那么它们是如何清除这些数据的呢?4.1 标记-清除算法(Mark-Sweep)最基础的收集算法,因为后续算法也都是基于该思路,对其不足之处进行优化而得。首先判断需要清除哪些数据,并给它们做上标记然后清除被标记的数据缺陷标记和清除过程效率都不高,且标记清除之后存在大量内存碎片,降低了空....

面试阿里,这篇JVM垃圾回收算法就够了(下)
文章 2022-02-17 来自:开发者社区

面试阿里,这篇JVM垃圾回收算法就够了(上)

程序计数器、虚拟机栈、本地方法栈都是线程私有的,会随着线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出有条不紊的执行着出栈和入栈操作.每个栈帧中的本地变量表都是在类被加载的时候就确定的,每一个栈帧中分配多少内存基本上是在类结构确定时就已知了,因此这几块区域内存分配和回收都具备确定性,就不需要过多考虑回收问题了.然而,Java堆和方法区中的内存清理工作就没那么容易了.堆和方法区所有线程共享,并....

面试阿里,这篇JVM垃圾回收算法就够了(上)
文章 2022-02-17 来自:开发者社区

70道阿里百度高频Java面试题(框架+JVM+多线程+算法+数据库)

基础与框架 1.String类能被继承吗,为什么2.String,Stringbuffer,StringBuilder的区别?3.ArrayList和LinkedList有什么区别4.类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,他们的执行顺序5.用过哪些Map,都有什么区别,HashMap是线程安全的吗,并发下使用的Map是什么,他们内部原理分别是什么,比如h....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

智能引擎技术

AI Online Serving,阿里巴巴集团搜推广算法与工程技术的大本营,大数据深度学习时代的创新主场。

+关注