
jdk
猿气
码畜
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
1.9 JDK源码阅读之Integer
最大最小范围可以代表number的char[] toStringparseInt Integer把-128到127(可调)的整数都提前实例化了。 这就解释了上面那道面试题的答案,原来你不管创建多少个这个范围内的Integer用ValueOf出来的都是同一个对象。但是为什么JDK要这么多此一举呢? 我们仔细想想, 淘宝的商品大多数都是100以内...原创 2018-08-08 18:47:31 · 759 阅读 · 1 评论 -
1.1 JDK源码阅读之Object
Object类是所有类的父类 方法解析: 得到Classpublic final native Class<?> getClass(); 得到Object hashCodepublic native int hashCode(); 判断hashCode 决定是否equalspublic boolean equals(Object obj) {...原创 2018-08-07 18:37:50 · 617 阅读 · 0 评论 -
3.10 JDK源码阅读之LinkedHashMap
LinkedHashMap LinkedHashMap将HashMap和双向链表合二为一 HashMap和双向链表合二为一即是LinkedHashMap。所谓LinkedHashMap,其落脚点在HashMap,因此更准确地说,它是一个将所有Entry节点链入一个双向链表的HashMap。 概括的说,LinkedHashMap 是一个关联数组、哈...原创 2018-08-17 15:21:48 · 357 阅读 · 0 评论 -
3.9 JDK源码阅读之HashSet
HashSetHashSet的结构就是HashMap HashSet就是限制了功能的HashMap 与hashmap 容量与负载因子相同扩展:LinkedHashSet 与TreeSetLinkedHashSet 底层实现也是HashMap 。TreeSet 底层是TreeMap而TreeMap的底层实现借助了HashMap转载dalao的博客https...原创 2018-08-17 10:51:07 · 324 阅读 · 0 评论 -
3.8 JDK源码阅读之HashTable
HashTable Hash值的两个作用 :key值hash计算后快速定位table的index 然后依次比较table上的Entry链表在寻找key值的匹配值缩短寻找时间,对于怎么实现时间复杂度为O(1): 参考 :java中hashmap容器实现查找O(1)时间复杂度的思考https://blog.youkuaiyun.com/u014633283/article/deta...原创 2018-08-17 09:28:02 · 332 阅读 · 0 评论 -
5.3 JDK源码阅读之Constructor
Constructor类简介Constructor<T>类提供了访问构造器的信息,以及利用构造器创建对象的一系列方法。 当使用Constructor创建对象时,参数列表支持自动宽化(比如需要int而传入short),不支持自动窄化(比如需要int而传入long)。Constructor类Constructor类是描述一个具体类中所有构造方法的类。一个类中可以存在多个构造方...原创 2018-08-22 17:57:23 · 545 阅读 · 0 评论 -
5.2 JDK源码阅读之Method
https://blog.youkuaiyun.com/u010445297/article/details/60967146 在计算机科学中,内省是指计算机程序在运行时(Run time)检查对象(Object)类型的一种能力,通常也可以称作运行时类型检查。 不应该将内省和反射混淆。相对于内省,反射更进一步,是指计算机程序在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力...转载 2018-08-22 17:31:21 · 193 阅读 · 0 评论 -
5.1 JDK源码阅读之Field
成员变量 每个成员变量有类型和值。java.lang.reflect.Field 为我们提供了获取当前对象的成员变量的类型,和重新设值的方法。获取变量的类型类中的变量分为两种类型:基本类型和引用类型:基本类型( 8 种) 整数:byte, short, int, long 浮点数:float, double 字符:char 布尔值:...转载 2018-08-22 16:38:33 · 373 阅读 · 0 评论 -
3.18 JDK源码阅读之Collections
Collections Collections类主要是完成了两个主要功能 1.提供了若干简单而又有用的算法,比如排序,二分查找,求最大最小值等等。 2.提供对集合进行包装的静态方法。比如把指定的集合包装成线程安全的集合、包装成不可修改的集合、包装成类型安全的集合等。 public class Collections{ // Suppresses default cons...转载 2018-08-19 18:29:07 · 161 阅读 · 0 评论 -
3.17 JDK源码阅读之SortedSet
SortedSet是个接口,它里面的(只有TreeSet这一个实现可用)中的元素一定是有序的 public interface SortedSet<E> extends Set<E> {该SortedSet的接口扩展集Set并声明了一组按升序排序的行为。除了通过集定义的那些方法中,SortedSet接口声明总结于下表的方法:有几种方法没有任何条目包含...原创 2018-08-19 17:26:07 · 357 阅读 · 0 评论 -
3.16 JDK源码阅读之SortedMap
SortedMap SortedMap也是一个接口,继承与Map接口,Sorted表示它是一个有序的键值映射。SortedMap的排序方式有两种:自然排序和指定比较器排序。插入有序的SortedMap的所有元素都必须实现Comparable接口 SortedMap:继承Map。保证按照键的升序排列的映射,对entrySet、keySet和values方法返回的结果...转载 2018-08-19 17:20:51 · 316 阅读 · 0 评论 -
3.15 JDK源码阅读之Stack
Stack Stack简介Stack是栈。它的特性是:先进后出(FILO, First In Last Out)。java工具包中的Stack是继承于Vector(矢量队列)的,由于Vector是通过数组实现的,这就意味着,Stack也是通过数组实现的,而非链表。由于Stack和继承于Vector,因此它也包含Vector中的全部API package j...转载 2018-08-19 17:06:02 · 202 阅读 · 0 评论 -
1.2 JDK源码阅读之String
String 其实就是字符数组 CharSequence 这个接口是一个只读的字符序列。包括length(), charAt(int index), subSequence(int start, int end)这几个API接口implements java.io.Serializable, Comparable<String>, CharSequencevalue[]是...原创 2018-08-07 19:15:42 · 500 阅读 · 0 评论 -
1.5 JDK源码阅读之StringBuilder
1、执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > String2、String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的3、在线程安全上,StringBuilder是线程不安全的,而Strin...原创 2018-08-08 10:29:04 · 444 阅读 · 0 评论 -
jdk8 集合框架
原创 2019-05-04 11:30:14 · 654 阅读 · 0 评论 -
《实战Java高并发程序设计》 第四章 锁优化及注意事项
concurrentHashMap 同时16个线程插入 ThreadLocal容器 Thread中持有ThreadLocalMapThreadLocal中的对象只能被当前线程访问 ThreadLocal 内存泄漏问题: ...原创 2018-11-27 19:33:35 · 369 阅读 · 0 评论 -
2.0 JDK源码阅读之Long
java java.lang.Long详解之一:toString()引用:https://blog.youkuaiyun.com/songylwq/article/details/9014611 toString(long i, int radix)首先让我们目睹下Long中强大的toString方法。 public static String toString(long ...转载 2018-08-08 18:57:24 · 236 阅读 · 0 评论 -
4.2 JDK源码阅读之Executor
Executor Eexecutor作为灵活且强大的异步执行框架,其支持多种不同类型的任务执行策略,提供了一种标准的方法将任务的提交过程和执行过程解耦开发,基于生产者-消费者模式,其提交任务的线程相当于生产者,执行任务的线程相当于消费者,并用Runnable来表示任务,Executor的实现还提供了对生命周期的支持,以及统计信息收集,应用程序管理机制和性能监视等机制。 Execut...转载 2018-08-21 17:54:16 · 144 阅读 · 0 评论 -
4.1 JDK源码阅读之ConcurrentHashMap
https://www.xmind.net/m/tJy5/java.util.concurrent 包是专为 Java并发编程而设计的包。包下的所有类可以分为如下几大类:locks部分:显式锁(互斥锁和速写锁)相关; atomic部分:原子变量类相关,是构建非阻塞算法的基础; executor部分:线程池相关; collections部分:并发容器相关; tools部分:同步工具相...转载 2018-08-20 23:23:39 · 169 阅读 · 0 评论 -
3.22 JDK源码阅读之Date
类 Date 表示特定的瞬间,精确到毫秒。在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和分析日期字符串。不过,这些函数的 API 不易于实现国际化。从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串。Date 中的相应方法已废弃。...转载 2018-08-20 18:40:56 · 157 阅读 · 0 评论 -
3.21 JDK源码阅读之Base64
Base64是一种能将任意Binary资料用64种字元组合成字串的方法,而这个Binary资料和字串资料彼此之间是可以互相转换的,十分方便。在实际应用上,Base64除了能将Binary资料可视化之外,也常用来表示字串加密过后的内容。如果要使用Java 程式语言来实作Base64的编码与解码功能,可以参考本篇文章的作法。 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一...转载 2018-08-20 18:38:25 · 209 阅读 · 0 评论 -
3.20 JDK源码阅读之Iterator
Iterator接口 public interface Iterator<E> { boolean hasNext(); E next(); default void remove() { throw new UnsupportedOperationException("remove"); } ...原创 2018-08-20 15:41:21 · 301 阅读 · 0 评论 -
3.19 JDK源码阅读之Comparator
Comparator接口public interface Comparator<T> 在对数组以及集合的排序中,我们经常使用Arrays.sort(A);或者Collections.sort(A)对数组或集合进行排序。当我们需要自定义排序规则的时候,就要使用Comparable或者Comparator接口。Comparable是和具体的类进行绑定,也就是“静态绑定”。而...原创 2018-08-20 15:21:29 · 383 阅读 · 0 评论 -
3.19 JDK源码阅读之Arrays
Arrays工具类工具类Arraysjava.util.Arrays类能方便地操作数组,它提供的方法都是静态的1. asList定义: @SafeVarargs public static <T> List<T> asList(T... a) { return new ArrayList<>(a); ...转载 2018-08-20 15:04:56 · 160 阅读 · 0 评论 -
3.11 JDK源码阅读之LinkedHashSet
LinkedHashSet Set集合不包含重复的元素,这是使用Set的主要原因。有三种常见的Set实现——HashSet, TreeSet和LinkedHashSet。什么时候使用它们,使用哪个是个重要的问题。总体而言,如果你需要一个访问快速的Set,你应该使用HashSet;当你需要一个排序的Set,你应该使用TreeSet;当你需要记录下插入时的顺序时,你应该使用LinedHa...原创 2018-08-17 18:34:40 · 465 阅读 · 4 评论 -
4.3 JDK源码阅读之ExecutorService
ExecutorService ExecutorService:是一个比Executor使用更广泛的子类接口,其提供了生命周期管理的方法,以及可跟踪一个或多个异步任务执行状况返回Future的方法 ExecutorService提供了管理Eecutor生命周期的方法,ExecutorService的生命周期包括了:运行 关闭和终止三种状态。ExecutorServic...原创 2018-08-22 09:22:21 · 375 阅读 · 0 评论 -
3.7 JDK源码阅读之HashMap
Hashmap实际上是一个数组和链表的结合体(在数据结构中,一般称之为“链表散列“),请看下图(横排表示数组,纵排表示数组元素【实际上是一个链表】)属性static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // 默认容量16static final int MAXIMUM_CAPACI...原创 2018-08-16 16:22:02 · 392 阅读 · 0 评论 -
1.4 JDK源码阅读之StringBuffer
缓存 初始化 16个字符初始化指定字符 重写为同步方法 重写AbstractStringbuilder的方法为同步方法几乎全部重写成同步方法序列化对象...原创 2018-08-08 10:22:52 · 408 阅读 · 0 评论 -
1.3 JDK源码阅读之AbstractStringBuilder
char[] 用来存放string 字符使用量构造函数 返回当前长度 返回当前容量 如果容量不足 扩容如果需求的minCapacity大于value.length 则扩容 默认的扩容机制 扩容后设置新长度返回字符传入字符的index,返回字符串中对应字符的代码点获取字符数组索引前一个元素的代码点 ...原创 2018-08-08 09:23:08 · 403 阅读 · 0 评论 -
3.4 JDK源码阅读之AbstractSet
AbstractSet 此类提供 Set 接口的骨干实现,从而最大限度地减少了实现此接口所需的工作。并没有重写 AbstractCollection 类中的任何实现(包括add()方法)。它仅仅添加了 equals 和 hashCode 的实现。 public boolean equals(Object o) :比较指定对象与此 set 的相等性。 public int...原创 2018-08-15 10:49:11 · 313 阅读 · 0 评论 -
3.3 JDK源码阅读之AbstractMap
AbstractMap 提供了 Map 的基本实现,使得我们以后要实现一个 Map 不用从头开始,只需要继承 AbstractMap, 然后按需求实现/重写对应方法即可。 方法分类1.添加2.删除3.获取4.查询状态5.比较6.视图 添加: 默认是不支持添加操作的,实现类需要重写 put() 方法。 删除:获取: 查询状态 比...原创 2018-08-15 10:06:10 · 331 阅读 · 0 评论 -
3.2 JDK源码阅读之AbstractList
Java.util 系列源码 AbstractList //继承于AbstractCollection接口,实现了List接口public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> { protecte...原创 2018-08-14 23:10:15 · 321 阅读 · 0 评论 -
3.1 JDK源码阅读之Void
public final class Void Void类是一个不可实例化的占位符类,如果方法返回值是Void类型,那么该方法只能返回null类型。 java.lang.Void 与 void的比较及使用void关键字表示函数没有返回结果,是java中的一个关键字。java.lang.Void是一种类型。例如给Void引用赋值null。 ...原创 2018-08-14 18:11:56 · 605 阅读 · 0 评论 -
3.0 JDK源码阅读之Package
Packagejava.lang.Package.getPackages() 方法获取所有目前已知调用方的ClassLoader实例的软件包。这些包对应于通过加载或名称至ClassLoader实例访问的类。如果调用者的ClassLoader实例是引导类加载器的实例,这可能是null,在一些实现来表示,对应于由引导类加载器实例加载的类仅包将被返回。 ...原创 2018-08-14 18:03:24 · 566 阅读 · 0 评论 -
2.9 JDK源码阅读之System
System 类包含一些有用的类字段和方法。它不能被实例化。1、在 System 类提供的设施中,有标准输入、标准输出和错误输出流;2、对外部定义的属性和环境变量的访问;3、加载文件和库的方法;4、还有快速复制数组的一部分的实用方法。常用方法1.currentTimeMillis()2.nanoTime()3.arraycopy(Object src, in...原创 2018-08-14 09:43:38 · 567 阅读 · 0 评论 -
2.8 JDK源码阅读之Compiler
Compiler1、提供支持Java到本机代码编译器和相关服务。2、用来加载类库3、决定系统正确退出原创 2018-08-14 09:17:59 · 518 阅读 · 0 评论 -
2.3 JDK源码阅读之Throwable
转载:http://riddickbryant.iteye.com/blog/444185package java.lang; import java.io.*; /** * * Throwable是所有Error和Exceptiong的父类 * 注意它有四个构造函数: * Throwable() * Throwable(String message)...转载 2018-08-09 18:37:02 · 458 阅读 · 0 评论 -
2.2 JDK源码阅读之ThreadLocal
ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。 ThreadLocal 是线程的局部变量, 是每一个线程所单独持有的,其他线程不能对其进行访问, 通常是类中的 private static 字段,是对该字段初始值的一个拷贝,...转载 2018-08-09 18:23:06 · 237 阅读 · 2 评论 -
1.6 JDK源码阅读之Boolean
The Boolean class wraps a value of the primitive type in an objectBoolean 将原始boolean类型包装成类 实现序列化以及Comparable接口implements java.io.Serializable, Comparable<Boolean>初始化实例Boolean val...原创 2018-08-08 10:51:25 · 697 阅读 · 0 评论 -
1.6 JDK源码阅读之Byte
继承Number 实现Comparable为基础包装类的父类public final class Byte extends Number implements Comparable<Byte> { 初始化上下限 toString() 转为int 再toString内部类 ByteCahe 引用https://blog.youkuaiyun.com/li...原创 2018-08-08 11:19:39 · 488 阅读 · 0 评论