
jdk
天明少侠
这个作者很懒,什么都没留下…
展开
-
Java 8 函数式接口
我们常用的一些接口Callable、Runnable、Comparator等在JDK8中都添加了@FunctionalInterface注解。(JDK8新加的注解)函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。函数式接口可以被隐式转换为 lambda 表达式。Lambda 表达式和方法引用(实际上也可认为是Lambd...原创 2020-05-01 13:15:11 · 222 阅读 · 0 评论 -
JDK5可变参数(Varargs)
源码package sto.pdd.util;public class VariableParameter { /* 求若干个整型数中的最大值 * 可变参数items * */ public static int getMax(int... items){ int max = Integer.MIN_VALUE; ...原创 2019-01-31 10:18:09 · 304 阅读 · 0 评论 -
Java集合-Collection源码
介绍Collection接口是 (java.util.Collection)是Java集合类的顶级接口之一。所以不能直接实例化一个Collection,但是可以实例化它的一个子类,Collection接口派生了两个子接口Set和List,分别定义了两种不同的存储方式Java集合是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。Java集合工具包位置是ja...原创 2018-11-07 22:39:46 · 268 阅读 · 0 评论 -
Java之java.lang.Enum
介绍每个枚举都是java.lang.Enum的子类,都可以访问Enum类提供的方法。源码public static <T extends Enum<T>> T valueOf(Class<T> enumType, Stri原创 2018-10-17 22:53:07 · 822 阅读 · 0 评论 -
JDK之Calendar
功能实现对日期的处理源码成员属性public final static int ERA = 0;public final static int YEAR = 1;public final static int MONTH = 2;构造函数 protected Calendar() { this(TimeZone.getDefaultRef(), Locale.g...原创 2018-09-21 20:48:48 · 701 阅读 · 0 评论 -
JDK之java.nio.file.Files
源码public static List<String> readAllLines(Path path, Charset cs) throws IOException { try (BufferedReader reader = newBufferedReader(path, cs)) { List<String&a原创 2018-09-26 22:00:47 · 1348 阅读 · 0 评论 -
Java集合-ArrayList源码
简介ArrayList是List接口的大小可变数组的实现,ArrayList底层是用一个Object数组来存储元素,ArrayList允许存储所有不同类型元素,包括null,允许插入重复元素(底层是一个Object数组)在用迭代器遍历ArrayList集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删除、修改),则会抛出ConcurrentModificationExcepti...原创 2018-09-13 20:39:38 · 181 阅读 · 0 评论 -
JDK之UUID
运用public static void main(String[] args) { System.out.println("格式前的UUID : " + UUID.randomUUID().toString()); System.out.println("格式化后的UUID :" +原创 2018-09-19 11:02:52 · 727 阅读 · 0 评论 -
Java集合-HashMap源码
介绍 HashMap是一个散列表(也叫哈希表),存储的内容是键值对(key-value)映射。HashMap继承于AbstractMap并实现了Map、Cloneable、Serializable接口。HashMap不是线程安全的,同时key-value都可以为null,并且是无序的。 HashMap的初始大小为16,最大大小为2的30次方,默认的加载因子是0.75。初始容量只...原创 2018-09-01 19:35:33 · 288 阅读 · 0 评论 -
JDK中常用JAR的介绍
JAR dt.jar和tools.jar位于{JAVA_HOME}/lib/下,而rt.jar位于{JAVA_HOME}/jre/lib/下rt.jar是JAVA基础类库,也就是你在java doc里面看到的所有的类的class文件dt.jar是关于运行环境的类库,主要是swing的包tools.jar是关于一些工具的类库,tools.jar中主要是jdk工具,包括javac,...原创 2018-07-28 12:32:56 · 2528 阅读 · 0 评论 -
HashMap与Hashtable的比较
HashMap不是线程安全的,效率高HashMap是Map接口的子类,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而Hashtable不允许。Hashtable是线程安全HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap...原创 2018-07-27 14:53:42 · 314 阅读 · 0 评论 -
Java集合-Hashtable
介绍和HashMap一样,Hashtable 也是一个散列表,它存储的内容是键值对(key-value)映射。Hashtable 继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口。Hashtable 的函数都是同步的,这意味着它是线程安全的。它的key、value都不可以为null。此外,Hashtable中的映射不是有序的。源...原创 2018-10-07 12:57:26 · 217 阅读 · 0 评论 -
集合总结
Vector和ArrayListVector是线程同步的,@since JDK1.0,所以它也是线程安全的,而ArrayList是线程异步的,是不安全的。如果不考虑到线程的安全因素,一般用ArrayList效率比较高如果集合中的元素的数目大于目前集合数组的长度时,Vector增长率为目前数组长度的100%,而ArrayList增长率为目前数组长度的50%。如果在集合中使用数据量比较...原创 2018-10-28 16:03:00 · 130 阅读 · 0 评论 -
Java集合-TreeMap源码
数据结构红黑树源码成员变量/** * The comparator used to maintain order in this tree map, or * null if it uses the natural ordering of its keys. * @serial */private final Comparator<? super K> compa...原创 2018-11-09 15:22:09 · 179 阅读 · 0 评论 -
Java集合-List源码
介绍List继承自Collection的接口,是一个有序集合,我们可以精确控制在何处插入元素;可以根据下标获取和查找指定元素;List允许插入重复元素,允许插入多个null元素。List继承自Collection的接口,List也是集合的一种。List是有序队列,List中的每一个元素都会有一个索引,第一个元素的索引是0,往后的元素的索引值依次+1,List中允许有重复的元素。应用...原创 2019-09-21 16:35:29 · 147 阅读 · 0 评论 -
JAVA队列
非阻塞队列PriorityQueue 类实质上维护了一个有序列表ConcurrentLinkedQueue 是基于链接节点的、线程安全的队列阻塞队列DelayQueue :一个由优先级堆支持的、基于时间的调度队列SynchronousQueue :一个利用 BlockingQueue 接口的简单聚集(rendezvous)机制PriorityBlockingQueue :一个由优...原创 2019-03-23 09:49:47 · 340 阅读 · 0 评论 -
JDK之Enumeration
源码package java.util;public interface Enumeration<E> { /** * Tests if this enumeration contains more elements. * * @return <code>true</code> if and only if this.原创 2019-02-01 09:55:43 · 230 阅读 · 0 评论 -
Java集合-ConcurrentHashMap
ConcurrentHashMap继承关系public class ConcurrentHashMap<K,V> extends AbstractMap<K,V> implements ConcurrentMap<K原创 2018-04-10 22:18:41 · 190 阅读 · 0 评论 -
JDK之java.io.ExpiringCache
源码class ExpiringCache { private long millisUntilExpiration; private Map map; // Clear out old entries every few queries private int queryCount; private int queryOverflow = 300; ...原创 2018-12-22 21:35:18 · 1060 阅读 · 0 评论 -
Java集合-BlockingQueue【阻塞队列】
介绍阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。源码public interface Blockin...原创 2018-12-16 17:55:39 · 265 阅读 · 0 评论 -
JDK之System
介绍System是一个final类,使用频率非常高的工具类JDK之java.lang.System源码构造函数/** Don't let anyone instantiate this class */private System() {}静态代码块private static native void registerNatives();static { reg...原创 2018-12-19 21:54:40 · 377 阅读 · 0 评论 -
Collections工具类
源码JDK1.8 API中文API构造函数private Collections() {}成员方法 @SuppressWarnings("unchecked") public static <T extends Comparable<? super T>原创 2018-12-01 16:31:36 · 202 阅读 · 0 评论 -
Java集合-Set源码
简介 Set集合不包含重复的元素,相同的元素只保存一个,不包含相等的两个元素,Set至多只能包含一个NULL元素。Set的实现类都是基于Map来实现的,其中HashSet是通过HashMap来实现的,TreeSet是通过TreeMap实现的。类图源码 参照JDK1.8版本Query Operations//返回集合的大小int size();//集合为空...原创 2018-07-26 17:44:29 · 299 阅读 · 0 评论 -
Java集合-Map源码
介绍 Map是一个key到value的映射接口,即map集合存储的是键值对,一个map不能包含重复的key,每个key至多只能映射一个值。Map接口中键和值一一映射. 可以通过键来获取值和设定值。类图源码 参照JDK1.8版本成员方法//返回map的大小int size();//map为空,返回trueboolean isEmpty();...原创 2018-07-19 22:00:30 · 280 阅读 · 0 评论 -
Java集合-LinkedList
LinkedList是一个双向链表的集合,LinkedList实现了List和Deque接口,LinkedList允许存储所有不同类型的元素,包括null,允许插入重复元素(底层是一个双向链表,是一个个Node结点);LinkedList含有一个first头指针和last尾指针,涉及index的操作,LinkedList会根据就近原则从first或last指针开始进行查找;LinkedList的实原创 2018-03-02 11:36:58 · 350 阅读 · 0 评论 -
Comparator<T>实现自定义排序
源码public interface Comparator&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;T&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; { /** * Compares its two arguments for order. * Returns a negative integer,zero, or a posi原创 2018-07-13 23:15:54 · 1816 阅读 · 0 评论 -
CyclicBarrier源码解析
CyclicBarrier源码解析原创 2018-06-20 19:01:55 · 158 阅读 · 0 评论 -
Java集合-Stack【栈实现】
概述 栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。出栈顺序: last in first out,...原创 2018-05-07 22:24:44 · 616 阅读 · 0 评论 -
Java集合-Queue【队列实现】
概述队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。出队顺序: 先进先出(FIFO—first in first out)队列又可分为: 顺序队列 循环队列Queue实现 java....原创 2018-04-20 19:16:45 · 776 阅读 · 0 评论 -
Java集合-HashSet
HashSet实现了Set接口,HashSet是由HashMap实现的,不保证元素的顺序,HashSet存储的是HashMap的keyHashSet之类的集合不可以按索引号去检索其中的元素,也不允许有重复的元素,第二次添加重复元素会失败HashSet允许添加null元素,HashSet的实现是非线程同步的,不安全的在用迭代器遍历HashSet集合对象时,如果遍历过程中对集合对象的内容进行了修改(增...原创 2018-03-14 09:28:32 · 211 阅读 · 0 评论 -
Java集合-TreeSet
TreeSet介绍 TreeSet实现了NavigableSet接口,TreeSet的底层是一个NavigableMap,TreeSet的元素是有序的; TreeSet不允许添加null元素(NullPointerException),不允许添加重复元素,即第二次添加重复元素会失败,add(E e)函数返回false; TreeSet是非线程同步的,是不安全的,可采用如下...原创 2018-03-19 09:47:19 · 525 阅读 · 0 评论 -
Java集合-Vector
Vector底层是一个可增长的Object数组集合,可根据整型index下标去获取Vector集合元素,Vector的大小会在集合添加元素或删除元素后自动改变;Vector会有一个容量和容量增量,其容量不小于集合的真实大小,当Vector数组溢出时会增加容量;Vector的实现是线程同步的【synchronized】;在用迭代器遍历Vector集合对象时,如果遍历过程中对集合对象的内容进行了修改(...原创 2018-03-05 20:43:57 · 276 阅读 · 0 评论