自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (1)
  • 收藏
  • 关注

原创 JDK源码(二十五):HashSet

java.util.HashSet实现了Set接口,由一个哈希表(实际上是一个HashMap实例)支持。它不保证集合的迭代顺序;特别是,它不保证顺序随时间保持不变。这个类允许null元素。HashSet实现Set接口,而Set接口继承Collection,而HashMap实现Map接口,不继承Collection。HashSet 集合不允许存储相同的元素, 它底层实际上使用 HashMap 来存储元素的, 不过关注的只是key元素, 所有 value元素默认为 Object类对象。类名p

2020-05-29 08:20:43 162

原创 JDK源码(二十四):HashMap

java.util.HashMap实现Map接口。此实现提供所有可选的映射操作,并允许null值和null键。(HashMap类大致等同于Hashtable,只是它不同步并且允许空值。)这个类不保证映射的顺序;特别是,它不保证顺序随时间保持不变。HashMap为基本操作(get和put)提供恒定的时间性能,假设哈希函数在存储桶之间正确地分散元素。集合视图上的迭代需要与HashMap实例的“容量”(bucket的数量)加上其大小(键值映射的数量)成比例的时间。因此,如果迭代性能很重要的话,不要设置太高的初

2020-05-28 08:21:30 132

原创 JDK源码(二十三):Calendar

java.util.Calendar类是一个抽象类,它提供了在特定的时间戳和一组Calendar字段之间进行转换的方法,例如年,月,日,小时等等,以及用于操作日历字段的方法,比如下星期的日期。时间的戳可以用毫秒值表示,该值是从1970年1月1日格林尼治标准时间00:00:00.000(公历)开始的偏移量。该类还提供了用于在包外实现具体日历系统的其他字段和方法。这些字段和方法被定义为protected。Calendar对象可以生成实现特定语言和日历样式的日期时间格式所需的所有日历字段值。Calendar定

2020-05-27 08:27:29 444

原创 JDK源码(二十二):ArrayList

java.util.ArrayList是实现List接口的可调整大小的数组实现。实现所有可选的列表操作,可以存储所有类型元素,包括null。除了实现List接口之外,这个类还提供了一些方法来操作内部用于存储列表的数组的大小。(这个类大致相当于Vector,只是它是非同步的)。类名public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess,

2020-05-26 08:25:10 183

原创 JDK源码(二十一):ThreadLocal

ThreadLocal类并不是用来解决多线程环境下的共享变量问题,而是用来提供线程局部变量。这些变量与普通的变量不同,因为每个访问一个变量的线程(通过其get或set方法)都有自己的、独立初始化的变量副本。ThreadLocal实例通常是类中的私有静态字段,希望将状态与线程关联(例如,用户ID或事务ID)。每个线程都保持对线程本地变量的副本的隐式引用,只要线程是活的并且ThreadLocal实例是可访问的;在线程离开之后,线程本地实例的所有副本都受到垃圾回收(除非存在对这些副本的其他引用)。实现原理

2020-05-25 08:17:19 217

原创 JDK源码(二十):Thread

进程进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。线程线程是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。线程由CPU独立调度执行,在多CPU环境下就允许多个线程同时运行。同样多线程也可以实现并发操作,每个请求分配一个

2020-05-22 08:27:42 228

原创 JDK源码(十九):StringBuilder和StringBuffer

将StringBuilder和StringBuffer放在一起是因为这2个类的代码差不多,只是StringBuilder是线程不安全的,而StringBuffer是线程安全的。当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间

2020-05-20 08:22:25 125

原创 JDK源码(十八):String

字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。字符串常量池作为最基础的引用数据类型,Java 为 String 提供了字符串常量池以提高其性能。字符串常量池存在于方法区中。 字符串的分配,和其他的对象分配一样,耗费高昂的时间与空间代价,作为最基础的数据类型,大量频繁的创建字符串,极大程度地影响程序的性能 JVM为了提高性能和减少内存开销,在实例化字符串常量的时候进行了一些优化 为字符串开辟一个字符

2020-05-19 08:24:06 216

原创 JDK源码(十七):ClassLoader

顾名思义,类加载器(ClassLoader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class类的一个实例。每个这样的实例用来表示一个 Java 类。通过此实例的 newInstance()方法就可以创建出该类的一个对象。实际的情况可能更加复杂,比如 Java

2020-05-14 08:04:39 668

原创 JDK源码(十六):Field

java.lang.reflect.Field提供类或接口的单个字段的信息和动态访问。反射字段可以是类(静态)字段或实例字段。Field类提供了获取和设置某个类的字段的属性值。在java.lang.Class获取Field对象的方法总共有四个:1. getDeclaredField(String name);返回一个 Field 对象,name参数表示字段的名称(包括私有的)。2. getDeclaredFields();返回 Field 对象的一个数组,表示的类或接口所声明的所有字段(

2020-05-13 08:23:54 437

原创 JDK源码(十五):Method

java.lang.reflect.Method类描述的是类的方法信息(包括:方法修饰符、方法名称、参数列表等等)。在java.lang.Class获取Method对象的方法总共有四个:我们可以根据方法名称得到该方法的Method对象,然后调用Method对象的invoke方法实现方法的调用,这也是Method最重要的用法。invoke(Object obj, Object... args) @CallerSensitive public Object invoke(O.

2020-05-12 08:17:42 296

原创 JDK源码(十四):Class

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。在日常开发过程中,会遇到某个类的某个成员变量、方法或是属性是私有的或是只对系统应用开放,这时候就可以利用Java的反射机制通过反射来获取所需的私有成员或是方法。比如JDBC链接:Class.forName("com.mysql.cj.jdbc.Driver");反射机制的相关类Class代

2020-05-11 08:37:54 472

原创 JDK源码(十三):ObjectInputStream

java.io.ObjectInputStream是实现反序列化的关键类,ObjectInputStream反序列化流,将之前使用ObjectOutputStream序列化的原始数据恢复为对象,以流的方式读取对象。其它的用途包括主机之间使用socket流传递对象、远程系统调用。ObjectInputStream确保从流创建的所有对象的类型与Java虚拟机中的类匹配。类根据需要使用标准机制加载。只能从流中读取实现java.io.Serializable或java.io.Externalizable接口..

2020-05-09 08:29:24 643

原创 JDK源码(十二):ObjectOutputStream

java.io.ObjectOutputStream是实现序列化的关键类,它可以将一个对象转换成二进制流。ObjectOutputStream将Java对象的原始数据类型写入OutputStream。可以使用ObjectInputStream读取(重新组合)对象。对象的持久存储可以通过使用流的文件来实现。如果流是网络套接字流,则可以在另一台主机上或在另一个进程中重建对象。只有实现java....

2020-05-08 08:23:29 366

原创 JDK源码(十一):FileOutputStream

FileOutputStream用于写入原始字节流,如图像数据。要编写字符流,请考虑使用FileWriter。文件输出流是将数据写入文件或文件描述符的输出流。文件是否可用或是否可以创建取决于底层平台。特别是某些平台,一次只允许一个FileOutputStream(或其他文件写入对象)打开一个文件进行写入。在这种情况下,如果所涉及的文件已打开,则此类中的构造函数将失败。public cla...

2020-05-07 08:00:57 319

原创 JDK源码(十):FileInputStream

FileInputStream从文件系统中的文件获取输入字节。哪些文件可用取决于主机环境,FileInputStream用于读取原始字节流,如图像数据。要读取字符流,请考虑使用FileReader。public class FileInputStreamDemo { public static void main(String[] args) throws IOExcepti...

2020-05-06 08:14:37 278

java获取word中doc、docx中的图片

java使用Apache POI获取doc、docx中的图片。

2022-11-05

javastring类的源码

java jdk中string类的源码 ,了解string类的书写,定义和声明

2015-11-28

空空如也

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

TA关注的人

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