本文主要是介绍2021年网易Java岗面试必问,终于搞明白了,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
# 三、堆空间
**基本描述**
JVM启动时创建堆区,是内存管理的核心区,通常情况下也是最大的内存空间,是被所有线程共享的,几乎所有的对象实例都要在堆中分配内存,所以这里也是垃圾回收的重点空间。
**堆栈关系**
![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210630/1625032123155785.jpg)
栈是JVM运行时的单位,堆是存储单位,当栈中方法结束,相关对象失去所有引用后,不会马上被移除堆空间,要等到垃圾收集器运行的时候。
# 四、虚拟机栈
虚拟机栈(Java栈)在每个线程创建时都会生成一个虚拟机栈,栈的内部是一个个栈帧单元,对应Java方法的调用,其生命周期和线程周期保持一致。用来存储方法的局部遍历,部分执行结果,方法的调用和返回。
![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210630/1625032124688734.jpg)
栈帧是方法执行的数据集,维持执行过程中的各种数据信息,执行的方法依次入栈,栈顶存放当前要执行的方法,执行结束后出栈,对于栈没有垃圾回收问题。
# 五、程序计数器
**基本描述**
JVM中程序计数寄存器用来存储下一条将要执行指令的地址,执行引擎获取到指令后进行执行,是线程私有的。它可以看作是当前线程所执行的字节码的行号指示器。
![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210630/1625032124142666.jpg)
**前后关系**
线程在获取CPU的时间段内执行代码,但是线程随时可能没有执行完就被挂起,等到线程A再次获取CPU执行时,CPU 得知道执行到线程A的哪一个指令,程序计数器会存储该动作。
# 六、本地方法栈
本地方法栈与虚拟机栈所起到的作用是类似的,虚拟机栈为虚拟机执行Java方法,本地方法栈管理虚拟机使用到的 本地方法,在虚拟机规范中对本地方法栈中方法使用的语言、使用方式与数据结构并没有强制规定,因此具体的虚拟机可以自由实现它。HotSpot虚拟机直接就把本地方法栈和虚拟机栈合二为一。
# 独家面经总结,超级精彩
本人面试腾讯,阿里,百度等企业总结下来的面试经历,都是真实的,分享给大家!
![image](http://www.www.zyiz.net/i/li/?n=2&i=images/20210630/1625032124688046.jpg)
![image](http://www.www.zyiz.net/i/li/?n=2&i=images/20210630/1625032125435265.jpg)
![image](http://www.www.zyiz.net/i/li/?n=2&i=images/20210630/1625032126698375.jpg)
![image](http://www.www.zyiz.net/i/li/?n=2&i=images/20210630/1625032127349162.jpg)
# Java面试准备
准确的说这里又分为两部分:
1. Java刷题
2. 算法刷题
Java刷题:此份文档详细记录了千道面试题与详解;
![image](http://www.www.zyiz.net/i/li/?n=2&i=images/20210630/1625032127569539.jpg)
![image](http://www.www.zyiz.net/i/li/?n=2&i=images/20210630/1625032128848313.jpg)
**以上所有文档已经打包好,只需要动动手指点击【转发+关注】,然后[点击即可免费获取](https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB)!**
这篇关于2021年网易Java岗面试必问,终于搞明白了的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!