文章 2021-12-14 来自:开发者社区

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

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

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

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

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

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

jvm面试题

heap 和stack 有什么区别?(1)申请方式stack:由系统自动分配。例如,声明在函数中一个局部变量 int b; 系统自动在栈中为 b 开辟空间heap:需要程序员自己申请,并指明大小,在 c 中 malloc 函数,对于Java 需要手动 new Object()的形式开辟(2)申请后系统的响应stack:只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出。....

jvm面试题
文章 2020-06-21 来自:开发者社区

2020年最全面的78道JVM面试题总结(含答案解析和思维导图)

前言 关于JVM系列面试知识点总结了一个思维导图,分享给大家 1、java中会存在内存泄漏吗,请简单描述。 会。自己实现堆载的数据结构时有可能会出现内存泄露。 2、64 位 JVM 中,int 的长度是多数? Java 中,int 类型变量的长度是一个固定值,与平台无关,都是 32 位。意思就是说,在 32 位 和 64 位 的 Java 虚拟机中,int 类型的长度是相同的。 3、Seria.....

2020年最全面的78道JVM面试题总结(含答案解析和思维导图)
文章 2020-03-19 来自:开发者社区

五分钟学Java:如何学习Java面试必考的JVM虚拟机

原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者。 本文思维导图 为什么要学习JVM虚拟机 最近的你有没有参加Java面试呢?你有没有发现,Java面试中总是爱考一类问题,那就是JVM虚拟机,为什么面试官这么爱考察JVM的问题呢,这是因为,所有的Java程序本质上都是运行在JVM之上的,没有JVM虚拟机,也就没有Java语言的执行环境,只有掌握了JVM虚拟机的相关知识,你才能说你.....

五分钟学Java:如何学习Java面试必考的JVM虚拟机
文章 2019-12-25 来自:开发者社区

JVM 垃圾回收揭秘附常见面试题解析

JVM 垃圾回收常见面试题 问题答案在文中都有提到 如何判断对象是否死亡(两种方法)。 简单的介绍一下强引用、软引用、弱引用、虚引用(虚引用与软引用和弱引用的区别、使用软引用能带来的好处)。 如何判断一个常量是废弃常量 如何判断一个类是无用的类 垃圾收集有哪些算法,各自的特点? HotSpot 为什么要分为新生代和老年代? 常见的垃圾回收器有那些? 介绍一下 CMS,G1 收集器。 Minor ....

文章 2019-11-21 来自:开发者社区

Java虚拟机堆和栈详细解析,以后面试再也不怕问jvm了!

堆 Java堆是和Java应用程序关系最密切的内存空间,几乎所有的对象都放在其中,并且Java堆完全是自动化管理,通过垃圾收集机制,垃圾对象会自动清理,不需自己去释放。根据垃圾回收机制的不同,Java堆有可能拥有不同的结构,最为常见的就是将整个Java堆分为新生代(Young Gen)和老年代(Tenured Gen)。其中新生代存放新生的对象或者年龄不大的对象,老年代则存放老年对象。新生代分为....

文章 2019-10-10 来自:开发者社区

面试必问:JVM类加载机制详细解析

前言 在Java面试中,简历上有写JVM(Java虚拟机)相关的东西,JVM的类加载机制基本是面试必问的知识点。 类的加载和卸载 JVM是虚拟机的一种,它的指令集语言是字节码,字节码构成的文件是class文件。平常我们写的Java文件,需要编译为class文件才能交给JVM运行。可以这么说:C语言代码——>二进制文件——>计算机硬件,就相当于Java代码——>字节码文件——&am...

文章 2019-08-19 来自:开发者社区

Java面试之Jvm内存泄漏

今天我们讲解一下Jvm内存泄漏 内存泄漏和内存溢出的关系 内存泄露:指程序中动态分配内存给一些临时对象,但是对象不会被GC所回收,它始终占用内存。即被分配的对象可达但已无用。内存溢出:指程序运行过程中无法申请到足够的内存而导致的一种错误。内存溢出通常发生于OLD段或Perm段垃圾回收后,仍然无内存空间容纳新的Java对象的情况。 从定义上可以看出内存泄露是内存溢出的一种诱因,但是不是唯一因素。 ....

文章 2019-08-13 来自:开发者社区

这道面试必问的JVM面试题70%的Java程序员会做错

前言聊聊JVM,一个熟悉又陌生的名词,从认识Java的第一天起,我们就会听到这个名字,在参加工作的前一两年,面试的时候还会经常被问到JDK,JRE,JVM这三者的区别。JVM可以说和我们是老朋友了,但是在工作中的应用场景也许不如那些框架,但是在关键时候还是得靠它去搞定问题,俗话说得好,知己知彼,方能百战不殆,JVM作为前往高级工程师的一道坎,从这篇文章开始,我们会去逐步的分析,讲解,攻克这座大山....

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

产品推荐

Java开发者

Java开发者成长课堂,课程资料学习,实战案例解析,Java工程师必备词汇等你来~

+关注