jdk
文章平均质量分 92
木墩儿
这个作者很懒,什么都没留下…
展开
-
ThreadLocal
ThreadLocal 作用 用于存储线程本地的副本变量,说白了就是为了做到线程隔离。 用于确保线程安全。 做个不恰当的比喻,从表面上看ThreadLocal相当于维护了一个map,key就是当前的线程,value就是需要存储的对象。 这里的这个比喻是不恰当的,实际上是ThreadLocal的静态内部类ThreadLocalMap为每个Thread都维护了一个数组table,ThreadLocal确定了一个数组下标,而这个下标就是value存储的对应位置 问题 ThreadLocal是怎么保证了线程隔原创 2020-09-28 17:38:12 · 96 阅读 · 0 评论 -
Java 8的日期api
原来常用 simpleDateFormat 线程不安全的 可以用 threadlocal解决 java.util.Date 和 SimpleDateFormatter 都不是线程安全的,而 LocalDate 和 LocalTime 和最基本的 String 一样,是不变类型,不但线程安全,而且不能修改。 java8 新加time包 DateTimeFormatter localdate localtime localdatetime instant 时间戳 ...原创 2020-09-13 17:11:18 · 72 阅读 · 0 评论 -
lambda 和 stream
lambda -> 左边 参数列表 对应接口中方法的参数列表 右边 功能实现 对应方法的实现 来代替匿名内部类 需要函数式接口的支持,若接口中只有一个抽象方法的接口。称为函数式接口 右边使用同级别变量时,有final 修饰 ,跟匿名内部类(默认加上final)一样,其实就是语法糖 1.7之前不默认加 ,需要自己显式加上 格式1:无参数,无返回值 runnable接口 ()->sout(“hello”) 格式2:有 参数,无返回值 只有一个参数的话 小括号可以省略 Consumer原创 2020-09-12 22:59:42 · 180 阅读 · 0 评论 -
java 自定义注解
首先要知道元注解: @Target 说明Annotation所修饰的对象范围,用于描述注解的使用范围 @Retention 定义了该Annotation被保留时间的长短,用于描述注解的生命周期 有 source ,class,和Runtime @Documented 用以描述其他类型的annotation应该被作为被标注的程序成员的公共API,是一个标记注解 @Inherited 也是一个标记注解,阐述了某个被标记的类型是被继承的。 元注解就是负责注释其他注解 自定义注解 要使用 @interface原创 2020-08-11 16:14:12 · 85 阅读 · 0 评论 -
hashmap 源码分析
// 默认构造函数。 public HashMap() { this.loadFactor = DEFAULT_LOAD_FACTOR; // all other fields defaulted } // 包含另一个“Map”的构造函数 public HashMap(Map<? extends K, ? extend...原创 2020-05-03 15:30:44 · 104 阅读 · 0 评论 -
LinkedList
LinkedList是一个实现了List接口和Deque接口的双端链表。 LinkedList底层的链表结构使它支持高效的插入和删除操作,另外它实现了Deque接口,使得LinkedList类也具有队列的特性; LinkedList不是线程安全的,如果想使LinkedList变成线程安全的,可以调用静态类Collections类中的synchronizedList方法: List list=Col...原创 2020-05-02 20:18:57 · 109 阅读 · 0 评论 -
vector源码分析
Vector和ArrayList操作基本相同,只不过对方法加了synchronized做同步处理,以add方法为例 //扩容重点步骤:确定扩容的大小 private int newCapacity(int minCapacity) { // overflow-conscious code int oldCapacity = elementD...原创 2020-05-02 18:25:14 · 98 阅读 · 0 评论 -
ArrayList源码分析
package java.util; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.function.UnaryOperator; public class ArrayList<E> extends AbstractList<E> ...原创 2020-05-02 17:45:09 · 94 阅读 · 0 评论 -
java集合
Collection接口 List 接口 LinkedList 接口实现类, 链表, 插入删除, 没有同步, 线程不安全 ArrayList接口实现类, 数组, 随机访问, 没有同步, 线程不安全 Vector 接口实现类 数组, 同步, 线程安全 Stack 是Vector类的实现类 Set接口 HashSet 使用hash表(数组)存储元素 LinkedHashSet 链表维护元素的插入...原创 2020-05-02 13:48:45 · 123 阅读 · 0 评论 -
Java 反射
public class Book{ private final static String TAG = "BookTag"; private String name; private String author; @Override public String toString() { return "Book{" + ...原创 2020-05-02 11:51:13 · 72 阅读 · 0 评论 -
Java序列化
JDK版本序列化 Serializable ObjectOutputStream() ObjectInputStream() writeObject() readObject() public static void main(String[] args) throws Exception { //序列化 OutputStream os = new...原创 2020-05-02 11:16:56 · 87 阅读 · 0 评论 -
Java异常体系
Thorwable类(表示可抛出)是所有异常和错误的超类,两个直接子类为Error和Exception,分别表示错误和异常。其中异常类Exception又分为运行时异常(RuntimeException)和非运行时异常, 这两种异常有很大的区别,也称之为不检查异常(Unchecked Exception)和检查异常(Checked Exception)。下面将详细讲述这些异常之间的区别与联系:...原创 2020-05-02 10:56:33 · 126 阅读 · 0 评论 -
object类
private static native void registerNatives(); static { registerNatives(); } public final native Class<?> getClass(); public native int hashCode(); //equals方法用于判定两个对象是否相等。Object中的equals方法其实默认...原创 2020-05-02 10:04:55 · 98 阅读 · 0 评论