随笔分类 - jdk源码
摘要:一 概述 枚举类型是 JDK 5 之后引进的一种非常重要的引用类型,可以用来定义一系列枚举常量,使用 enum 来表示枚举可以更好地保证程序的类型安全和可读性 实际上在使用关键字enum创建枚举类型并编译后,编译器会为我们生成一个相关的类,这个类继承了Java API中的java.lang.Enum
阅读全文
摘要:一 Reference抽象类 概述 在JDK1.2之前,Java中的引用的定义是十分传统的:如果reference类型的数据中存储的数值代表的是另一块内存的起始地址,就称这块内存代表着一个引用。 在这种定义之下,一个对象只有被引用和没有被引用两种状态。 实际上,我们更希望存在这样的一类对象:当内存空
阅读全文
摘要:一 概述 参考博文: https://blog.csdn.net/m0_37914588/article/details/82287191 https://www.jianshu.com/p/8b6eb2fd15ab https://www.jianshu.com/p/4aa3bb16f36c ht
阅读全文
摘要:一 概述 jdk1.8之前 在JDK1.6中,ConcurrentHashMap将数据分成一段一段存储,给每一段数据配一把锁,当一个线程获得锁互斥访问一个段数据时,其他段的数据也可被其他线程访问; 每个Segment拥有一把可重入锁,因此ConcurrentHashMap的分段锁数目即为Segmen
阅读全文
摘要:一 概述 && Map接口 AbstractMap 是一个基础抽象实现类,实现了 Map接口 的主要方法. Map接口定义了双列集合的规范 Map<K,V>,一个元素包含两值(一个key,一个value),key,value都可以为null key和value的数据类型可以相同,也可以不同,key是
阅读全文
摘要:一 概述 ThreadLocal类提供了线程局部 (thread-local) 变量。这些变量与普通变量不同,每个线程都可以通过其 get 或 set方法来访问自己的独立初始化的变量副本 ThreadLocal 实例通常是类中的 private static 字段,它们希望将状态与某一个线程(例如,
阅读全文
摘要:一 概述 Thread类是java中的线程类,Java所有多线程的实现,均通过封装Thread类实现,Thread类实现了Runnable接口: public class Thread implements Runnable { 二 Runnable接口 Runnable是一个函数式接口,接口里面只
阅读全文
摘要:一 参考博文 java中无符号类型的解决方案 原码、反码、补码知识详细讲解(此作者是我找到的讲的最细最明白的一个) 0x80000000为什么等于-2147483648和负数如何在内存上储存 二 java中的无符号数和有符号数 在计算机中,可以区分正负的类型,称为有符号类型,无正负的类型,称为无符号
阅读全文
摘要:概述 转载自博文浅谈Unicode编码 参考博文,结合自己实际情况进行部分内容添加修改 一 需求 java源码中尤其是数字部分用到了很多Unicode方面知识,如果不懂,看源码的时候会很懵逼 java的class字节码文件用的是UTF-16编码方式,所以想要研究class字节码虚拟机之类的,也要搞清
阅读全文
摘要:一 简介 Short是short基本类型的包装类,同样继承了Number类,实现了Comparable接口: public final class Short extends Number implements Comparable<Short> { Number传送门 二 源码分析(Short类源
阅读全文
摘要:一 简介 Integer是int基本类型的包装类,同样继承了Number类,实现了Comparable接口,String类中的一些转化方法就使用了Integer类中的一些API,且fianl修饰不可继承: public final class Integer extends Number imple
阅读全文
摘要:一 概述 Double 类是基本类型double的包装类,fainl修饰,在对象中包装了一个基本类型double的值。Double继承了Number抽象类,具有了转化为基本double类型的功能。 此外,该类还提供了多个方法,可以将 double 类型与 String 类型相互转换,同时 还提供了处
阅读全文
摘要:一 目标 记录学习jdk源码的一些笔记和心得,jdk版本使用11.0.1,工具idea Class后面序号为优先级1-4,优先级递减 目录转载自博客: https://blog.csdn.net/qq_21033663/article/details/79571506 二 目录 1、java.lan
阅读全文
摘要:一 简介 byte,即字节,由8位的二进制组成。在Java中,byte类型的数据是8位带符号的二进制数,以二进制补码表示的整数 取值范围:默认值为0,最小值为-128(-27);最大值是127(27-1) Byte类是byte的包装类,被final修饰,不能被继承,继承了Number类,可以用于数字
阅读全文
摘要:一 简介 boolean类型的封装类,将基本类型为boolean的值包装在一个对象中,实现序列化接口,和Comparable接口 额外提供了许多便捷方法,比较简单,直接贴代码分析 二 源码分析 //true 和 false值的包装类实例 public static final Boolean TRU
阅读全文
摘要:一 概述 二 实现接口 AbstractStringBuilder实现了两个接口: Appendable 概述: Appendable的实现类的对象可以附加字符序列和值. 要追加的字符应该是Unicode字符表示中描述的有效Unicode字符。注意,补充字符可能由多个16位字符值组成。 对于多线程访
阅读全文