阿里巴巴面试题- - -JVM篇(十四)

简介: 阿里巴巴面试题- - -JVM篇(十四)

目录


JVM篇


5、说说堆和栈的区别


6、 什么时候会触发FullGC


7、什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?


JVM篇


5、说说堆和栈的区别

栈是运行时单位,代表着逻辑,内含基本数据类型和堆中对象引用,所在区域连续,没有碎片;堆是存储单位,代表着数据,可被多个栈共享(包括成员中基本数据类型、引用和引用对象),所在区域不连续,会有碎片。


1、功能不同


栈内存用来存储局部变量和方法调用,而堆内存用来存储Java中的对象。无论是成员变量,局部变量,还是类变量,它们指向的对象都存储在堆内存中。


2、共享性不同


栈内存是线程私有的。 堆内存是所有线程共有的。


3、异常错误不同


如果栈内存或者堆内存不足都会抛出异常。 栈空间不足:java.lang.StackOverFlowError。 堆空间不足:java.lang.OutOfMemoryError。


4、空间大小


栈的空间大小远远小于堆的。


6、 什么时候会触发FullGC

除直接调用System.gc外,触发Full GC执行的情况有如下四种。 1. 旧生代空间不足 旧生代空间只有在新生代对象转入及创建为大对象、大数组时才会出现不足的现象,当执行Full GC后空间仍然不


足,则抛出如下错误: java.lang.OutOfMemoryError: Java heap space 为避免以上两种状况引起的FullGC,调优时应尽量做到让对象在Minor GC阶段被回收、让对象在新生代多存活一段时间及不要创建过大的对象及数组。


2. Permanet Generation空间满 PermanetGeneration中存放的为一些class的信息等,当系统中要加载的类、反射的类和调用的方法较多时,Permanet Generation可能会被占满,在未配置为采用CMS GC的情况下会执行Full GC。如果经过Full GC仍然回收不了,那么JVM会抛出如下错误信


息: java.lang.OutOfMemoryError: PermGen space 为避免Perm Gen占满造成Full GC现象,可采用的方法为增大Perm Gen空间或转为使用CMS GC。


7、什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?

Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。

相关文章
|
5月前
|
存储 监控 算法
JVM 高级面试题及答案整理,最新面试题
JVM 高级面试题及答案整理,最新面试题
109 0
|
5月前
|
Arthas 架构师 Java
阿里P9级架构师马士兵花四小时让你搞懂JVM底层原理(附JVMpdf)
JVM面试难题 当面试官向你提问JVM的实战问题时,你是否感觉到无所适从? 想解决生产环境中的GC问题,你是否感觉到狗咬刺猬,无处下嘴? 面对JVM的海量参数,你是否感觉到迷茫无助? 看过很多的JVM文章,但当遇到了生产环境中真实问题的时候,你是否依然不知道如何进行分析排查?
|
算法 Java 程序员
阿里P8大牛精心整理JVM性能优化知识点+最新JVM面试题(附答案)
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。它不仅是一种跨平台的软件,而且是一种新的网络计算平台。该平台包括许多相关的技术,如符合开放接口标准的各种API、优化技术等。
|
缓存 Oracle 前端开发
JVM合集之开篇点题
JVM合集之开篇点题
130 0
JVM合集之开篇点题
|
存储 算法 Java
阿里巴巴面试题- - -JVM篇(十二)
阿里巴巴面试题- - -JVM篇(十二)
|
前端开发 Java 应用服务中间件
秋招面试题- - -JVM篇(二十二)
秋招面试题- - -JVM篇(二十二)
76 1
秋招面试题- - -JVM篇(二十二)
|
存储 前端开发 算法
阿里巴巴面试题- - -JVM篇(十五)
阿里巴巴面试题- - -JVM篇(十五)
|
存储 Java
阿里巴巴面试题- - -JVM篇(十六)
阿里巴巴面试题- - -JVM篇(十六)
|
前端开发 Java 应用服务中间件
阿里巴巴面试题- - -JVM篇(二十二)
阿里巴巴面试题- - -JVM篇(二十二)
|
安全 Java 编译器
阿里巴巴面试题- - -JVM篇(十九)
阿里巴巴面试题- - -JVM篇(十九)

相关实验场景

更多