自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 专题:设计模式详解与选用规则

设计模式选用

2022-06-03 22:02:38 466

原创 ReentrantLock(Lock)锁的底层实现与源码解析

ReentrantLock(Lock)锁的底层实现与源码解析目录ReentrantLock(Lock)锁的底层实现与源码解析1.内置静态内部类及其对象:1.1代表公平锁的静态内部类1.2代表非公平锁的静态内部类2.ReentrantLock的构造方法3.lock加锁过程4.lock加锁阻塞5.释放锁6.Lock 和 Synchronized区别参考资料参考资料1.内置静态内部类及其对象:经过观察ReentrantLock把所有Lock接口的操作都委派到一个Sync类上,该类继承了AbstractQue

2021-10-08 20:47:34 267

原创 AQS(AbstractQueuedSynchronizer)抽象类源码解析

AQS(AbstractQueuedSynchronizer)抽象类源码解析目录AQS(AbstractQueuedSynchronizer)抽象类源码解析1.概述2.实现的父类和接口3.AQS的两个内部类3.1Node节点3.2条件对象ConditionObject4.AQS的内部变量参考资料:1.概述AQS(AbstractQueuedSynchronizer)即 队列同步器,是用来构建锁或者其他同步组件的基础框架,它使用了一个int成员变量表示同步状态,通过内置的FIFO队列来完成资源获取线程的

2021-10-08 17:39:39 143

原创 synchronized锁的底层实现原理、源码分析

synchronized锁和Lock锁的底层实现原理与区别目录synchronized锁和Lock锁的底层实现原理与区别一、synchronized锁1.synchronized的作用2.synchronized实现原理1.synchronized修饰代码块2.synchronized修饰方法3.synchronized可重入的原理3.synchronized锁优化1.优化需要的数据结构:对象头MarkWord2.偏向锁、轻量级锁、重量级锁之间的切换4.对象头的MarkWord和线程之间的关系5.监视器(

2021-10-08 15:57:14 315

原创 对象的实例化(对象创建的方式和对象的创建步骤)

JVM虚拟机中对象的实例化(对象创建的方式和步骤)下面从对象的创建方式和对象的创建步骤两个角度说起:1. 对象的创建方式2. 对象的创建步骤2.1判断对象对应的类是否加载、链接、初始化:虚拟机遇到一条new指令,首先去检查这个指令的参数能否在Metaspace的常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化。(即判断类元信息是否存在)。如果没有,那么在双亲委派模式下,使用当前类加载器以ClassLoader+包名+类名为Key进行查找对应的.class

2021-05-18 11:54:00 537

原创 静态常量池和运行时常量池的区别

静态常量池和运行时常量池的区别:静态常量池是针对每个被加载进入内存的class文件解析后,存放各个字面量值,符号引用的数据。简而言之,静态常量池属于某个类的字节码文件,属于单个类的自己的常量池。运行时常量区就是当前运行类加载所有相关类(如父类、实现类、一些系统类、输出流等)的字节码文件后,把他们所有的静态常量池的数据汇总到一起,存放在该进程的运行时常量池中,再加上该类运行期解析后才能够获得的方法或者字段引用,就组成了运行时常量池。...

2021-05-18 09:47:56 548

原创 java8基本类型流的getAsInt()方法

java8基本类型流的getAsInt()方法​ 为了避免不必要的拆箱和装箱,Java8引入了三个原始类型特化流接口:Intstream, LongStream和Doublestream,将流中的元素特化为int, long和double,避免暗含的装箱成本。并且,在这三个特化接口中,提供了常用的数值规约方法,可以方便地进行数值相关的操作,如min,max, sum等。如果需要将基本类型特化流再转换引用类型流,也有相应的方法支持。​ 其中,对于Intstream流的**getAsInt()**方法

2021-05-13 17:10:33 3525

空空如也

空空如也

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

TA关注的人

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