- 博客(5)
- 收藏
- 关注
原创 AQS原理解析
AQS原理AQS = AbstractQueuedSynchronizer 抽象队列同步器JUC的大多数类,如ReentrantLock、ReentrantReadWriteLock、CountDownLatch、Semaphore等都是通过AQS实现的。是 JDK提供的一个框架,用于实现依赖先进先出(FIFO)等待队列的阻塞锁和相关同步器(信号量,事件等)。锁机制锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,
2020-06-19 04:38:12 236
原创 JVM学习(二)运行时数据区
文章目录JVM运行时数据区概述程序计数器(PC Register)作用特点示例问题虚拟机栈(JVM Stack)与线程关系特点溢出问题设置栈大小 -Xss栈桢局部变量表(Local Variables)操作数栈(Operand Stack)动态链接(Dynamic Linking)方法返回地址(Return Address)附加信息面试题本地方法栈(Native Method Stack)堆(Heap)内存细分设置堆大小 -Xms -Xmx溢出问题分代对象分配过程内存分配策略(或对象提升(Promotion
2020-06-16 10:34:08 567
原创 JVM学习(一)类加载子系统
类加载器子系统idea安装插件jclasslib Bytecode viewer,能方便查看字节码什么是类的加载?虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验转换解析和初始化最终形成可以被虚拟机直接使用的java类这就是虚拟机的类加载机制,这个过程通过类加载器子系统完成。与那些在编译时需要进行连接工作的语言不同在java语言中类型的加载连接和初始化过程都是在程序运行期间完成的这种策略虽然会令类加载时稍微增加一些性能开销,但是为java感用程序提供高度的灵活性java里天生可以动态
2020-06-16 10:26:05 286
原创 超详细!JDK1.7和JDK1.8 HashMap底层原理
HashMap底层原理本篇文章是阅读源码和网上多数博客总结出来的,如果有哪里不对的话,希望指出,共同进步~文章目录HashMap底层原理前置知识hashCode与equal的重写为什么需要重写equal和hashCode不重写hashCode,只重写equals会出现的问题只重写hashCode,不重写equals会出现的问题JDK1.7实现成员变量存储结构Entry构造方法hash重新计算与映射位置put方法(头插法)扩容机制transfer多线程下可能的循环链get方法JDK 1.8 实现成员变量存
2020-05-23 22:20:28 961 1
原创 ArrayList的底层机制
ArrayList底层机制构造函数从源码入手,先看属性值当我们List<String> list = new ArrayList<>();创建一个数组时,默认设置容量为10。 private static final int DEFAULT_CAPACITY = 10; /** * 用于传入参数为0,或传入Collection长度0的时候使用,让elementData指向该数组。 */ private static final Object
2020-05-21 17:13:57 330
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人