Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!

杭州-蚂蚁金服-Java高级 java并发编程、JVM等 PDF 下载


分享到:
时间:2024-03-31 15:44来源:http://www.java1234.com 作者:转载  侵权举报
杭州-蚂蚁金服-Java高级 java并发编程、JVM等
失效链接处理
杭州-蚂蚁金服-Java高级 java并发编程、JVM等 PDF 下载

 
 
 
相关截图:
 

主要内容:

1. jdk1.7 到 jdk1.8 Map 发生了什么变化(底层)?
1.8 之后 hashMap 的数据结构发生了变化,从之前的单纯的数组+链表结构变成数组+
+红黑树。也就是说在 JVM 存储 hashMap 的 K-V 时仅仅通过 key 来决定每一个 entry 的存
储槽位(Node[]中的 index)。并且 Value 以链表的形式挂在到对应槽位上(1.8 以后如果 value
长度大于 则转为红黑树)。
但是 hashmap1.7 跟 1.8 中都没有任何同步操作,容易出现并发问题,甚至出现死循环
导致系统不可用。解决方案是 jdk 的 ConcurrentHashMap,位于 java.util.concurrent 下,专门
解决并发问题。
 
2. ConcurrentHashMap
思路与 hashMap 差不多,但是支持并发操作,要复杂很多
 
3. 并行跟并发有什么区别?
并发:指应用交替执行不同的任务,多线程原理
并行:指应用同时执行不用的任务
区别:一个是交替执行,一个是同时执行。
 
4. jdk1.7 到 jdk1.8 java 虚拟机发生了什么变化?
JVM 中内存份为堆、栈内存,及方法区。
栈内存主要用途:执行线程方法,存放本地临时变量与线程方法执行是需要的引用对象
的地址。
堆内存主要用途:JVM 中所有对象信息都存放在堆内存中,相比栈内存,堆内存大很多
所以 JVM 一直通过对堆内存划分不同功能区块实现对堆内存中对象管理。
堆内存不够常见错误:OutOfMemoryError
栈内存溢出常见错误:StackOverFlowError
在 JDK7 以及其前期的 JDK 版本中,堆内存通常被分为三块区域 Nursery 内存(young
generation)、长时内存(old generation)、永久内存(Permanent Generation for VM Matedata)
 

 
 
------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐