自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java源码分析---Vector类(JDK14)

更多源码分析,请点击VectorVector 和 ArrayList 原理实现差不多,但是 Vector 是 线程安全 的,在效率上没有 ArrayList 高,因为为保证线程安全,使用 synchronized 关键字修饰方法。Vector 底层采用 Object 数组来保存数据,所以如果要保存基本类型需要使用他们的包装类。public class Vector<E> extends AbstractList<E> implements List<.

2020-08-27 15:37:13 215

原创 java源码分析---LinkedList类(JDK14)

更多源码分析,请点击LinkedListLinkedList 底层使用双向链表存储,对于频繁的插入、删除操作,效率较高。在get与set方面弱于ArrayList. 适用于 :没有大规模的随机读取,有大量的增加/删除操作.随机访问很慢,增删操作很快,不耗费多余资源 ,允许null元素,非线程安全。public class LinkedList<E> extends AbstractSequentialList<E> implements List<E&.

2020-08-16 12:32:55 205

原创 java源码分析---ArrayList类(JDK14)

更多源码分析,请点击ArrayListArrayList 执行效率高,但是线程不安全。相当于一个可变长度数组(顺序列表),可以通过下标索引直接对元素进行访问,但是插入和删除效率较低。ArrayList 底层采用 Object 数组来保存数据,所以如果要保存基本类型需要使用他们的包装类。public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAcces.

2020-08-14 16:37:37 370

原创 java源码分析---List类(JDK14)

更多源码分析,请点击ListList接口:存储有序的,可重复的数据。 --> “动态”数组ArrayList、LinkedList、Vector同:三个类都实现了List接口,存储数据的特点相同:存储有序的、可重复的数据;异:ArrayList线程不安全,效率高;Vector线程安全,效率低,底层使用Object[]存储LinkedList底层使用双向链表存储,对于频繁的插入、删除操作,效率较高;public interface List<E> extends .

2020-08-12 15:46:02 183

原创 java源码分析---Collection类

更多源码分析,请点击CollectionCollection接口:单列集合,用来存储一个一个的对象。主要实现了一下三个接口。List接口:存储有序的,可重复的数据。 --> “动态”数组ArrayList、LinkedList、Vector同:三个类都实现了List接口,存储数据的特点相同:存储有序的、可重复的数据;异:ArrayList线程不安全,效率高;Vector线程安全,效率低,底层使用Object[]存储LinkedList底层使用双向链表存储,对于频繁的插入、.

2020-08-11 11:26:28 162

原创 java源码分析---String类(JDK14)

更多源码分析,请点击StringString 类被 final 修饰,不可以被继承,实现了 Serializable 、 Comparable 、 CharSequence 、 Constable 、 ConstantDesc 接口。String 是不可变字符序列,创建后值不可以更改。支持字符串连接符 “ + ”。同时可以根据索引值访问其中的字符,索引值是指 char 代码单位。在阅读本文前,应先了解代码点和代码单元的相关内容,点此了解详情public final class String i.

2020-08-05 15:45:09 538

原创 java源码分析---Float类(JDK14)

更多源码分析,请点击FloatFloat 类将基本类型 float 的值包装在对象中。 Float 类型的对象包含一个类型为 float 的属性。另外,提供了几种将 float 转换为 String 和 String 转换为 float 的方法,以及其他在处理 float 类型时有用的方法。Float 类被 final 关键字修饰,不能被继承。Float 类继承自 Number 类,实现了 Comparable 、 Constable 、 ConstantDesc 接口。public fina.

2020-07-31 12:12:10 436

原创 正则表达式

正则表达式:​标准字符集合:注意区分大小写,大写是相反的意思\d:0-9中任意一个数字;\w:任意一个字母或数字或下划线,即A-Z,a-z,0-9,_中任意一个;\s:包含空格、制表符、换行符等空白字符的其中任意一个;. :小数点可以匹配任意一个字符(除了换行符);如果要匹配包括“\n”在内所有的字符,一般用[\s\S];自定义字符集合:[]方括号匹配方式,能够匹配方括号中任意一个字符。例:[ab5@]:匹配“a”或“b”或“5”或“@”;[^abc]:匹配“a”,“b”,

2020-07-30 20:36:35 179

原创 java源码分析---Double类(JDK14)

更多源码分析,请点击DoubleDouble 类将基本类型 double 的值包装在对象中。 Double 类型的对象包含一个类型为 double 的属性。另外,提供了几种将 double 转换为 String 和 String 转换为 double 的方法,以及其他在处理 double 类型时有用的方法。Double 类被 final 关键字修饰,不能被继承。Double 类继承自 Number 类,实现了 Comparable 、 Constable 、 ConstantDesc 接口。.

2020-07-30 19:59:50 448

原创 java源码分析---Short类(JDK14)

更多源码分析,请点击Short提醒: Short 类中的方法大都是调用 Integer 类中的方法实现的,在阅读 Short 源码前,应先阅读 Integer 类的源码。点击查看 Integer 类的源码分析。Short 类将基本类型 short 的值包装在对象中。 Short 类型的对象包含一个类型为 short 的属性。另外,提供了几种将 short 转换为 String 和 String 转换为 short 的方法,以及其他在处理 short 类型时有用的方法。Short 类被 fina.

2020-07-29 09:31:13 212

原创 java源码分析---Long类(JDK14)

更多源码分析,请点击LongLong 类将基本类型 long 的值包装在对象中。 Long 类型的对象包含一个类型为 long 的属性。另外,提供了几种将 long 转换为 String 和 String 转换为 long 的方法,以及其他在处理 long 类型时有用的方法。Long 类被 final 关键字修饰,不能被继承。Long 类继承自 Number 类,实现了 Comparable 、 Constable 、 ConstantDesc 接口。public final class L.

2020-07-28 19:18:30 771

原创 java源码分析---Integer类(JDK14)

更多源码分析,请点击IntegerInteger 类将基本类型 int 的值包装在对象中。 Integer 类型的对象包含一个类型为 int 的属性。另外,提供了几种将 int 转换为 String 和 String 转换为 int 的方法,以及其他在处理 int 类型时有用的方法。Integer 类被 final 关键字修饰,不能被继承。Integer 类继承自 Number 类,实现了 Comparable 、 Constable 、 ConstantDesc 接口。public fina.

2020-07-27 16:12:00 336

原创 JDK12新特性---Constable和ConstantDesc

更多JDK源码分析,请点击JDK12 在 java.base 模块新增了 java.lang.constant 包,包中定义了一系列基于值的符号引用类型,它们能够描述每种可加载常量。引入了 ConstantDesc 接口( ClassDesc、MethodTypeDesc、MethodHandleDesc 这几个接口直接继承了 ConstantDesc 接口)以及 Constable 接口;ConstantDesc 接口定义了***resolveConstantDesc*** 方法,Constab.

2020-07-25 12:00:59 1525

原创 java源码分析---Character类(JDK14)

更多源码分析,请点击CharacterCharacter 类将基本类型 char 的值包装在对象中。 Character 类的对象包含一个类型为 char 的字段。此外,此类提供了大量静态方法来确定字符的类别(小写字母,数字等),以及将字符从大写转换为小写等等。char 数据类型(以及 Character 对象封装的值)基于原始 Unicode 规范,该规范将字符定义为固定宽度的 16 位实体。此后,对 Unicode 标准进行了更改,以允许其表示需要超过 16 位的字符。合法代码点的范围现在.

2020-07-24 15:46:38 874

原创 java源码分析---Byte类(JDK14)

更多源码分析,请点击ByteByte 类将基本类型 byte 的值包装在对象中。 Byte 类型的对象包含一个类型为 byte 的属性。另外,提供了几种将 byte 转换为 String 和 String 转换为 byte 的方法,以及其他在处理 byte 类型时有用的方法。public final class Byte extends Number implements Comparable<Byte>Byte 继承自 Number 类,实现了 Comparable 、Seri.

2020-07-23 10:51:17 197

原创 java源码分析---Number类(JDK14)

更多源代码分析,请点击NumberByte 、Double 、Float 、Integer 、Long 、short 等包装类的父类。实现了 Serializable 接口。public abstract class Number implements java.io.SerializableNumber 类被 abstract 修饰,表示该类只能被继承,不能创建该类的对象。private static final long serialVersionUID = -8742448824652.

2020-07-22 15:58:49 216

原创 java源码分析---Boolean类

更多源代码分析,请点击BooleanBoolean 类将基本类型 boolean 的值包装在对象中, Boolean 类型的对象包含一个基本类型 boolean 的属性。一般多用于容器中,因为容器中需要保存的数据必须为对象。同时,提供了将布尔值转为 String ,将 String 转为布尔值的方法,还有一些在处理布尔值时有用的方法。现在对这些方法展开详细讲解与分析。public final class Boolean implements java.io.Serializable, .

2020-07-22 11:06:47 239

原创 Java源码分析---StringBuffer类(JDK14)

StringBuffer在阅读 StringBuffer 请先点此阅读其父类 AbstractStringBuilder 的源码,便于理解。因为 StringBuffer 的很多方法是直接调用父类方法实现的。更多JDK源码分析请点击,持续更新StringBuffer 继承自 AbstractStringBuilder ,实现了 Serializable、Comparable、CharSequence 接口。StringBuffer 被 final 修饰,表示不可以被继承。String

2020-07-21 20:15:20 262

原创 Java源码分析---Object类(JDK14)

更多JDK源码分析请点击,持续更新Object类Object 类是类层次结构的根,每个类都有 Object 类作为父类,所有对象,包括数组,都实现了 Object 类中的方法。Object 类是唯一一个没有父类的类。可以使用 Object 类型的变量引用任何类型的对象。概念:static:static关键字修饰的方法(变量)称为静态方法(静态成员变量),静态方法只能访问静态成员。native:native关键字修饰的方法为本地方法,通常由C、C++语言编写。final:被.

2020-07-21 16:52:56 321 1

原创 Java源码分析---StringBuilder类(JDK14)

StringBuilder在阅读 StringBuilder 请先点此阅读其父类 AbsractStringBuilder 的源码,便于理解。因为 StringBuilder 的很多方法是直接调用父类方法实现的。更多JDK源码分析请点击,持续更新StringBuilder 继承自 AbstractStringBuilder,实现了 Serializable、Comparable、CharSequence 接口。StringBuilder 被 final 修饰,表示不可以被继承。Str

2020-07-20 15:50:38 227

原创 Java源码分析--JDK14

目录java源码分析之—AbstractStringBuilder类持续更新中……

2020-07-20 15:25:19 521

原创 byte转char为什么要 & 0xff?

当byte要转化为int的时候,高的24位必然会补1,这样,其二进制补码其实已经不一致了,&0xff可以将高的24位置为0,低8位保持原样。这样做的目的就是为了保证二进制数据的一致性。

2020-07-19 19:39:39 349

原创 java中为什么MAX_ARRAY_SIZE的值为Integer.MAX_VALUE - 8

数组对象的形状和结构(如int值数组)与标准Java对象类似。主要区别在于数组对象有一个额外的元数据,用于表示数组的大小。数组的最大尺寸为2^31 = 2147483648,但是需要8bytes的存储大小表示数组的长度等元数据。所以数组的大小定义为Integer.MAX_VALUE - 8。数组对象的元数据:Class:只想描述对象类型的类信息的指针。Flag:描述对象状态的标志的集合,包括对象的散列码以及对象的形状(即对象是否为数组)。Lock:对象的同步信息(即对象当前是否同步)。Size

2020-07-19 19:33:03 2048 2

原创 java中代码点和代码单元的区别

代码点:代码点(code point)是指Unicode编码中的一个值,代表一个字符。有效范围从U+0000到U+10FFFF。其中U+0000到U+FFFF为基本字符,U+10000到U+10FFFF为增补字符。代码单元:代码单元(code unit):具体编码形式中的最小单元。对代码点进行编码得到的1或2个16位序列。其中基本字符的代码点直接用一个相同值的代码单元表示,增补字符的代码点用两个代码单元的进行编码,这个范围内没有数字用于表示字符,因此程序可以识别出当前字符是单单元的基本字符,还是双单元

2020-07-19 10:14:53 438

原创 Mysql8:Could not retrieve transation read-only status server

原因:数据库和mysql驱动版本不匹配导致需要:修改pom.xml文件中的mysql驱动版本修改配置文件中的驱动名称,改为com.mysql.cj.jdbc.Driver在数据库连接url后面加上参数serverTimezone=UTC

2020-07-18 18:37:06 387

原创 @HotSpotIntrinsicCandidate注释

@HotSpotIntrinsicCandidate@Target({ElementType.METHOD, ElementType.CONSTRUCTOR})@Retention(RetentionPolicy.RUNTIME)public @interface HotSpotIntrinsicCandidate {}简单来讲,如果方法被 @HotSpotIntrinsicCandidate 标注,表示该方法在HotSpot中有一套高效的实现,运行时可能会替换JDK的源码实现。@HotS

2020-07-18 18:30:06 1886

原创 java源码分析---AbstractStringBuilder类(JDK14)

AbstractStringBuilder***AbstractStringBuilder***为抽象类,实现了Appendable、CharSequence接口,是StringBuilder和StringBuffer的直接父类。**AbstractStringBuilder实现可变字符序列。在任何时候,它都包含一些特定的字符序列,但是序列的长度和内容可以通过某些方法调用来改变。abstract class AbstractStringBuilder implements Appendable, C

2020-07-18 17:40:58 2112

空空如也

空空如也

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

TA关注的人

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