阿里巴巴面试题- - -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虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。

相关文章
|
缓存 NoSQL Java
阿里Java三面凉凉:微服务,Redis,JVM一个都搞不懂
前言: 金九银十刚刚过去了,不知道很多小伙伴都拿到自己心仪的offer没有,我这边也收到了一个粉丝投来的消息,说看到阿里的面试真题之后人都是懵的,发现自己一窍不通,下面给大家分享我这个粉丝的经历,以及我在这方面学习的经验。 阿里微服务面试真题 1.单片,SOA 和微服务架构有什么区别? 单片 SOA 和微服务之间的比较 – 微服务访谈问题 单片架构类似于大容器,其中应用程序的所有软件组件组装在一起并紧密封装。 一个面向服务的架构是一种相互通信服务的集合。通信可以涉及简单的数据传递,也可以涉及两个或多个协调某些活动的服务。 微服务架构是一种架构风格,它将应用程序构建为以业务域为模型
111 0
|
缓存 Oracle 前端开发
JVM合集之开篇点题
JVM合集之开篇点题
139 0
|
前端开发 Java 程序员
阿里p8 面试官狂推的java面试神器!jvm与多线程面试80问!
说在前面的话 网上各种关于Java太卷的说法很对,Java目前是越来越卷了,但“卷”对个人来说也不一定是坏事,我们得搞清楚Java越来越卷的底层逻辑,才能客观看待这个事。
|
算法 Java 程序员
阿里P8大牛精心整理JVM性能优化知识点+最新JVM面试题(附答案)
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。它不仅是一种跨平台的软件,而且是一种新的网络计算平台。该平台包括许多相关的技术,如符合开放接口标准的各种API、优化技术等。
|
存储 算法 Java
阿里巴巴面试题- - -JVM篇(十二)
阿里巴巴面试题- - -JVM篇(十二)
|
存储 前端开发 算法
阿里巴巴面试题- - -JVM篇(十五)
阿里巴巴面试题- - -JVM篇(十五)
|
安全 Java 编译器
阿里巴巴面试题- - -JVM篇(十九)
阿里巴巴面试题- - -JVM篇(十九)
|
存储 算法 Oracle
阿里巴巴面试题- - -JVM篇(十三)
阿里巴巴面试题- - -JVM篇(十三)
|
存储 算法 Java
阿里巴巴面试题- - -JVM篇(十八)
阿里巴巴面试题- - -JVM篇(十八)
|
存储 Java
阿里巴巴面试题- - -JVM篇(十六)
阿里巴巴面试题- - -JVM篇(十六)

相关实验场景

更多