前言
很多同学想进大厂,特别是刚毕业的,以及工作年限短的,不要有任何侥幸心理,踏踏实实的把基础弄扎实了,这是你通往高薪之路的唯一正确姿势。
首先从面试题做起~好了,不多说了,直接上正菜。
直击面试
反正我是带着这些问题往下读的
- 说一下 JVM 运行时数据区吧,都有哪些区?分别是干什么的?
- Java 8 的内存分代改进
- 举例栈溢出的情况?
- 调整栈大小,就能保存不出现溢出吗?
- 分配的栈内存越大越好吗?
- 垃圾回收是否会涉及到虚拟机栈?
- 方法中定义的局部变量是否线程安全?
运行时数据区
内存是非常重要的系统资源,是硬盘和 CPU 的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM 内存布局规定了 Java 在运行过程中内存申请、分配、管理的策略,保证了 JVM 的高效稳定运行。不同的 JVM 对于内存的划分方式和管理机制存在着部分差异。
下图是 JVM 整体架构,中间部分就是 Java 虚拟机定义的各种运行时数据区域。
jvm-framework
Java