Future Code
个人博客
Toggle navigation
Future Code
Home
About
Archives
Tags
Jvm的内存布局和垃圾回收机制
内存布局 运行时数据区 程序计数器:用来控制代码运行行数。 Java 虚拟机栈:每个线程运行方法(A调用B)时,先把A方法放入到栈底,然后加载B方法,B方法放在A方法栈帧上,执行完B方法,弹出栈,随后A弹出栈。对应着一个栈帧出栈入栈的过程。 Java堆:是Java虚拟机管理的最大的内存区,是所有线程可共享的,对象实例在这里被分配内存,是垃圾收集器(GC)管理的主要区域。 方法区:保存......
Posted by 杨一 on 2020-03-26
Jvm
Hashtable和ConcurrentHashMap的线程安全问题
ConcurrentHashMap的线程安全问题 分段锁思想:每个线程获得的是每个存储单元的锁,每个存储单元下又有很多table,但是每个单元下的table共用同一把锁(Jdk1.8改进了)!当A线程操作0号单元时,获得的0号锁与2号存储单元无关,因此B线程可以操作2号存储单元,提高了代码效率。 在Jdk1.8中,采用更加细化分配锁的方式,性能更能提升。 123456789101......
Posted by 杨一 on 2020-03-26
Hashtable ConcurrentHashMap Thread
HashMap原理
HashMap
HashMap底层原理 特点 快速存储 快速查找 时间复杂度O(1) 可伸缩 数据结构 HashMap 默认是16长度。 hash冲突:不同的对象算出来的数组下标相同。 存储结构为:数组、链表、红黑树(Jdk1.8),当解决hash冲突的单向列表长度到达8时,采用红黑树存储。 hash算法:任何对象都有hashcode,hash值=hashCode^(hashCode>>&......
Posted by 杨一 on 2020-03-26
Java HashMap
← Newer Posts
FEATURED TAGS
docker
dubbo
git
Hashtable ConcurrentHashMap Thread
Java HashMap
JVM
I/O
内存
动态代理 Java
Jedis 线程安全 Redis
Java Lambda
Stream Java
Jvm
Spring Boot
Spring-Cloud-Alibaba
cloud
MVC
Linux
Node
Spring 事务 Transactional
zookeeper
Java 内存屏障
锁 并发 分布式 MySql Redis Zookeeper
MySQL
docker redis-cluster
TCP 网络
计算机 原码 反码 补码 Java
ABOUT ME
Stay hungry,Stay foolish
RECENT POSTS
Spring-Cloud-Alibaba
Java之内存泄露与内存溢出
JVM调优
Shell
Tomcat的线程池
FRIENDS
undefined
undefined
undefined
ARCHIVES
September 2020
2
August 2020
1
July 2020
12
June 2020
7
May 2020
2
March 2020
9