前言
- JVM 内存模型一共包括三个部分:
- 堆 ( Java代码可及的 Java堆 和 JVM自身使用的方法区)、
- 栈 ( 服务Java方法的虚拟机栈 和 服务Native方法的本地方法栈 )
- 保证程序在多线程环境下能够连续执行的程序计数器
特别地,我们当时就提到Java堆是进行垃圾回收的主要区域,故其也被称为GC堆;而方法区也有一个不太严谨的表述,就是永久代。总的来说,堆 (包括Java堆 和 方法区)是 垃圾回收的主要对象,特别是Java堆。
实际上,Java技术体系中所提倡的 自动内存管理 最终可以归结为自动化地解决了两个问题:给对象分配内存 以及回收分配给对象的内存,而且这两个问题针对的内存区域就是Java内存模型中的堆区。关于对象分配内存问题,笔者的博文《JVM 内存模型概述》已经阐述了 如何划分可用空间及其涉及到的线程安全问题,本文将结合垃圾回收策略进一步给出 内存分配规则。另外,我们知道垃圾回收机制是Java语言一个显著的特点,其可以有效的防止内存泄露、保证内存的有效使用,从而使得Java程序员在编写程序的时候不再需要考虑内存管理问题。Java 垃圾回收机制要考虑的问题很复杂,本文阐述了其三个核心问题
京东Java研发岗一面(基础面,约1小时)
-
自我介绍,主要讲讲做了什么和擅长什么
-
springmvc和spring-boot区别
-
@Autowired的实现原理
-
Bean的默认作用范围是什么?其他的作用范围?
-
索引是什么概念有什么作用?MySQL里主要有哪些索引结构?哈希索引和B+树索引比较?
-
Java线程池的原理?线程池有哪些?线程池工厂有哪些线程池类型,及其线程池参数是什么?
-
hashmap原理,处理哈希冲突用的哪种方法?
-
还知道什么处理哈希冲突的方法?
-
Java GC机制?GC Roots有哪些?
-
Java怎么进行垃圾回收的?什么对象会进老年代?垃圾回收算法有哪些?为什么新生代使用复制算法?
-
HashMap的时间复杂度?HashMap中Hash冲突是怎么解决的?链表的上一级结构是什么?Java8中的
-
HashMap有什么变化?红黑树需要比较大小才能进行插入,是依据什么进行比较的?其他Hash冲突解决方式?
-
hash和B+树的区别?分别应用于什么场景?哪个比较好?
-
项目里有个数据安全的,aes和md5的区别?详细点
京东Java研发岗二面(问数据库较多)
-
自我介绍
-
为什么MyISAM查询性能好?
-
事务特性(acid)
-
隔离级别
-
SQL慢查询的常见优化步骤?
-
说下乐观锁,悲观锁(select for update),并写出sql实现
-
TCP协议的三次握手和四次挥手过程?
-
用到过哪些rpc框架
-
数据库连接池怎么实现
-
Java web过滤器的生命周期
京东Java研发岗三面(综合面,约一个小时)
-
自我介绍。
-
ConcurrentHashMap 在Java7和Java8中的区别?为什么Java8并发效率更好?什么情况下用HashMap,什么情况用 ConcurrentHashMap?
-
加锁有什么机制?
-
ThreadLocal?应用场景?
-
数据库水平切分,垂直切分的设计思路和切分顺序
-
Redis如何解决key冲突
-
soa和微服务的区别?
-
单机系统演变为分布式系统,会涉及到哪些技术的调整?请从前面负载到后端详细描述。
-
设计一个秒杀系统?
京东Java研发岗四面(HR面)
-
你自己最大优势和劣势是什么
-
平时遇见过什么样的挑战,怎么去克服的
-
工作中遇见了技术解决不了的问题,你的应对思路?
-
你的兴趣爱好?
-
未来的职业规划是什么?
最后
经过日积月累, 以下是小编归纳整理的深入了解Java虚拟机文档,希望可以帮助大家过关斩将顺利通过面试。
由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。如有需要获取资料文档的朋友,可以点击这里免费获取
BtOKiKce-1620832734378)]
[外链图片转存中…(img-iuwaQG0T-1620832734379)]
[外链图片转存中…(img-sfGxXc82-1620832734380)]
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!