
JDK源码学习
对JDK源码的学习
xuxigifxfh
这个作者很懒,什么都没留下…
展开
-
ConcurrentHashMap源码学习
如果当前hash位置的节点是树类型的节点,调用putTreeVal方法来查找和插入节点(先判断节点是否存在,存在则返回节点,不存在则插入当前节点并返回null),返回值不为null则判断onlyIfAbsent是否为false。否:当前位置的hash值是否大于等于0(表示正常节点哈希的可用位),寻找key是否已存在,已存在则判断onlyIfAbsent是否为false,寻找过程中binCount(链表深度)会随着每一次循环加1。break跳出循环;否:给到当前位置节点加锁,判断当前位置节点是否改变。原创 2024-01-02 16:52:16 · 561 阅读 · 0 评论 -
String、StringBuffer、StringBuilder
2.value是一个由final修饰的字符数组,即字符串的长度不可修改;2.继承AbstractStringBuilder类(可变字符序列);2.继承AbstractStringBuilder类(可变字符序列);3.value由transient关键字修饰避免序列化;3.实现了Comparable接口,可进行比较;4.方法都有synchronized修饰,线程安全;1.类由final关键字修饰,不可被继承;1.类由final关键字修饰,不可被继承;1.类由final关键字修饰,不可被继承;原创 2023-12-07 15:23:09 · 431 阅读 · 0 评论 -
@Inherited注解类
指示批注类型是自动继承的。如果注释类型声明上存在Inherited元注释,并且用户在类声明上查询注释类型,并且该类声明没有该类型的注释,则将自动查询该类的超类的注释类型。将重复此过程,直到找到此类型的注释,或者到达类层次结构(Object)的顶部。如果没有超类具有此类型的注释,那么查询将指示有问题的类没有此类注释。请注意,如果注释类型用于注释类以外的任何内容,则此元注释类型无效。还要注意,这个元注释只会导致注释从超类继承;已实现接口上的注释没有任何作用。原创 2023-10-25 14:55:49 · 77 阅读 · 0 评论 -
@Documented注解类
默认情况下,带有类型的注释将由javadoc和类似工具进行文档记录。此类型应用于注释其注释影响已注释的使用的类型的声明元素。如果类型声明用注释文档化后,其注释成为公共API的一部分已注释元素的。原创 2023-10-25 14:46:07 · 91 阅读 · 0 评论 -
RetentionPolicy枚举类
此枚举类型的常量描述用于保留注释的各种策略。它们被使用与{ @Retention}元注释类型一起指定注释要保留多长时间。表明@EnableAutoConfiguration注解可以通过反射读取到的。原创 2023-10-25 12:01:02 · 250 阅读 · 0 评论 -
ElementType枚举类
可用于注解@Target指定作用位置,例如:在注释类上声明作用于注解。原创 2023-10-23 16:36:41 · 130 阅读 · 0 评论 -
AQS(AbstractQueuedSynchronizer)源码阅读
继承:AbstractOwnableSynchronizer(设置和获取拥有独占访问权限的线程)实现:java.io.Serializable(提供序列化接口)原创 2023-10-18 17:17:02 · 43 阅读 · 0 评论 -
HashMap
2.HashMap(int initialCapacity, float loadFactor)指定初始容量和加载因子,初始容量最大为2的30次方即1073741824,超出之后默认为1073741824,加载因子必须大于0,Float.isNaN判断指定的加载因子是否为数,tableSizeFor(initialCapacity)将容量转换成大于指定值的最小的2^n。转换方式通过位运算将值转换成二进制:111111...,最后判断是否大于最大值,不大于则加1成为2^n。3.HashMap.put调用链。原创 2023-08-24 13:17:13 · 83 阅读 · 0 评论 -
关键字及其作用
效果:当一个成员变量被声明为transient时,它将不会被默认的序列化机制自动处理。作用范围:修饰类的成员变量。原创 2023-08-24 10:57:21 · 57 阅读 · 0 评论