助力金三银四面试JVM 高频面试题篇
废话不多说,我肝了大家篇尾见。1、Java的内存结构?方法区和堆是所有线程共享的内存区域;而java栈、本地方法栈和程序计数器是运行时线程私有的内存区域。1)Java堆(Heap),是Java虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。2)方法区(Method Area),....

JVM运行原理详解(个人面试总结)
一、什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机主要由字节码指令集、寄存器、栈、垃圾回收堆和存储方法域等构成。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代....

JVM面试题基础篇面试专栏
1.1JDK、JRE、JVM的关系是什么?Java Development Kit(JDK)是Java开发工具包,包含了Java编译器、Java虚拟机(JVM)、Java类库等工具。Java Runtime Environment(JRE)是Java运行时环境,包含了Java虚拟机(JVM)和Java类库。Java Virtual Machine(JVM)是Java程序的运行环境,它负责将Jav....

JVM面试高频问题(下)
我们对上面的一些名词做一些解释一、什么样的变量可以可以称为起点(GCRoot)呢?1、局部变量表中的对对象的引用(栈里面的局部变量,栈有多个,每个线程一个,每个栈里面又有很多的栈帧,每个栈帧里有一个自己的局部变量表。)意思就是:所有线程的所有栈的所有栈帧的所有的局部变量表中的全部的变量,都可视为GCRoot.2、常量池中对应的对象3、方法区中,静态引用类型的成员二、什么叫做”能够被访问到“?3、....

JVM面试高频问题(上)
一、进程与线程在谈JVM的这些问题前,我们先来复习一下有关线程和进程的关系进程可以看作是程序的执行过程。一个程序的运行需要CPU时间、内存空间、文件以及I/O等资源。操作系统就是以进程为单位来分配这些资源的,所以说进程是分配资源的基本单位。线程从属于进程,只能在进程的内部活动,多个线程共享进程所拥有的的资源。如果把进程看作是完成许多功能的任务的集合,那么线程就是集合中的一个任务元素,负责具体的功....

必知必会JVM三-面试必备,JVM堆内存详解
上一节我们了解到JVM的运行时数据区的5个模块,今天重点讲一下JVM的堆内存模型。这些都是大厂面试必备的哦,同学们请注意听讲一、堆的内存区域1.1 堆内存区域介绍在jvm的堆内存中有三个区域:年轻代:用于存放新产生的对象。老年代:用于存放被长期引用的对象。持久带:用于存放Class,method元信息(1.8之后改为元空间)。年轻代年轻代中包含两个区:Eden 和survivor,并且用于存储新....

JAVA面试——JVM(四)
1.8 JAVA IO/NIO1.8.1 阻塞 IO 模型最传统的一种 IO 模型,即在读写数据过程中会发生阻塞现象。当用户线程发出 IO 请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出 CPU。当数据就绪之后,内核会将数据拷贝到用户线程,并返回结果给用户线程,用户线程才解除 block 状态。典型的阻塞 IO 模型的例子为:data ....

JAVA面试——JVM(三)
1.5 JAVA 四中引用类型1.5.1 强引用在 Java 中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会被用到 JVM 也不会回收。因此强引用是造成 Java 内存泄漏的主要原因之一。1.5.2 软引用软引用需要用 SoftReference 类来实现,对于只....

JAVA面试——JVM(二)垃圾回收与算法
1.4 垃圾回收与算法1.4.1 如何确定垃圾1.4.1.1 引用计数法在 Java 中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以回收。简单说,即一个对象如果没有任何与之关联的引用,即他们的引用计数都不为 0,则说明对象不太可能再被用到,那么这个对象就是可回收对象。1.4.1.2 可达性分析为了解决引用计数法的循环引用问....

JAVA面试——JVM(一)线程与内存
1.JVM基本概念JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互。运行过程我们都知道 Java 源文件,通过编译器,能够生产相应的.Class 文件,也就是字节码文件,而字节码文件又通过 Java 虚拟机中的解释器,编译成特定机器上的机器码 。也就是如下:① J....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
面试更多jvm相关
Java面试那些事儿
手把手带您学习Java,开启编程之路。
+关注