自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 AQS原理解析

AQS原理AQS = AbstractQueuedSynchronizer 抽象队列同步器JUC的大多数类,如ReentrantLock、ReentrantReadWriteLock、CountDownLatch、Semaphore等都是通过AQS实现的。是 JDK提供的一个框架,用于实现依赖先进先出(FIFO)等待队列的阻塞锁和相关同步器(信号量,事件等)。锁机制锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,

2020-06-19 04:38:12 206

原创 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 526

原创 JVM学习(一)类加载子系统

类加载器子系统idea安装插件jclasslib Bytecode viewer,能方便查看字节码什么是类的加载?虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验转换解析和初始化最终形成可以被虚拟机直接使用的java类这就是虚拟机的类加载机制,这个过程通过类加载器子系统完成。与那些在编译时需要进行连接工作的语言不同在java语言中类型的加载连接和初始化过程都是在程序运行期间完成的这种策略虽然会令类加载时稍微增加一些性能开销,但是为java感用程序提供高度的灵活性java里天生可以动态

2020-06-16 10:26:05 268

原创 超详细!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 893 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 278

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除