JVM[19]

JVM 高级面试题及答案整理,最新面试题

JVM中的垃圾收集器有哪些,它们的工作原理是什么? JVM中的垃圾收集器主要包括以下几种: 1、

【面试题107】熟悉JVM吗?为什么新生代内存需要有两个Survivor区?

1 为什么要有Survivor区 先不去想为什么有两个Survivor区,第一个问题是,设置Survivor区的意义在哪里? 如果没有Survivor,Eden区每进行一次Minor GC,存活的对象就会被送到老年代。老年代很快被填满,触发Major GC(因为Major GC一般伴随着Minor

【面试题99】你真的知道 Java 类是如何被加载的吗?

一:前言 最近给一个非Java方向的朋友讲了下双亲委派模型,朋友让我写篇文章深度研究下JVM的ClassLoader,我确实也好久没写JVM相关的文章了,有点手痒痒,涂了皮炎平也抑制不住。 我在向朋友解释的时候是这么说的:双亲委派模型中,ClassLoader在加载类的时候,会先交由它的父Class

【面试题98】谈谈面试必问的Java内存区域(运行时数据区域)和内存模型(JMM)

Java 内存区域和内存模型是不一样的东西,内存区域是指 Jvm 运行时将数据分区域存储,强调对内存空间的划分。 而内存模型(Java Memory Model,简称 JMM )是定义了线程和主内存之间的抽象关系,即 JMM 定义了 JVM 在计算机内存(RAM)中的工作方式,如果我们要想深入了解J

【面试题89】给我说说你对Java GC机制的理解?

写在前面 使用Java快一年时间了,从最早大学时候对Java的憎恶,到逐渐接受,到工作中体会到了Java开发的各种便捷与福利,这确实是一门不错的开发语言。不仅是 Intellij开发Java程序的爽快,还有无需手动管理内存的便捷、 Maven管理依赖的整洁、 SpringCloud大礼包的规整等等。

Java Z 垃圾收集器 (ZGC):彻底改变内存管理

Z 垃圾收集器 (ZGC) 是 Oracle 在 JDK 11 中引入的一种创新垃圾收集算法。其主要目的是最大限度地减少Java 虚拟机(JVM) 上的应用程序暂停时间,使其特别适合需要低延迟和高延迟的现代应用程序。 -吞吐量性能。 ZGC 采用分代方式进行垃圾收集,将堆分为两代:年轻代和老一代(也

JVM垃圾回收算法

标记-清除(Mark-Sweep) 概述:这是最基础的垃圾回收算法。它分为两个阶段:标记阶段和清除阶段。在标记阶段,从根对象开始,标记所有可达的对象;在清除阶段,清除所有未被标记的对象。这个算法的问题是会产生大量不连续的内存碎片,可能会导致“内存碎片化”。 优点:实现简单,容易理解。 缺点:会产生内

【面试题30】请你详细说说类加载流程,类加载机制及自定义类加载器

一、引言 当程序使用某个类时,如果该类还未被加载到内存中,则JVM会通过加载、链接、初始化三个步骤对该类进行类加载。 二、类的加载、链接、初始化 1、加载 类加载指的是将类的class文件读入内存,并为之创建一个java.lang.Class对象。类的加载过程是由类加载器来完成,类加载器由JVM提供

【面试题19】如何判断一个对象是否存活?(或者GC对象的判定方法)?

判断对象是否存活的算法包括: 引用计数算法 可达性分析算法 问题的回答就是通过引用计数算法或者可达性分析算法去判断一个对象是否存活,下面开始具体描述这两种算法。 引用计数算法(Reference Counting) 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器加1;**当引用失效时,计

JMM(Java 内存模型)详解

JMM(Java 内存模型)主要定义了对于一个共享变量,当另一个线程对这个共享变量执行写操作后,这个线程对这个共享变量的可见性。 要想理解透彻 JMM(Java 内存模型),我们先要从 CPU 缓存模型和指令重排序 说起! 从 CPU 缓存模型说起 为什么要弄一个 CPU 高速缓存呢? 类比我们开发

LinkedList源码分析

本文转载来自JavaGuide ,如有侵权及时联系。 LinkedList 简介 LinkedList 是一个基于双向链表实现的集合类,经常被拿来和 ArrayList 做比较。关于 LinkedList 和ArrayList的详细对比,我们 Java 集合常见面试题总结(上)有详细介绍

JVM虚拟机面试

类加载机制 1.什么是类加载机制 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,解析和初始化,最终形成可以被虚拟机直接使用的java类型。 2.简述下JVM加载Class文件的执行原理 虚拟机(jvm)把描述类的数据从Class文件加载到内存,并对数据进行校验,解析和初始化,最终