
java源码
gy0011
这个作者很懒,什么都没留下…
展开
-
String对象详解(附带源码)
String为什么不可变?因为String对象内部维护了一个final的char数组,当new 一个String对象的时候,会将字符串分割维护为char数组,所以要是更改的话就需要改变char数组,但是char数组是final的,不可改变的,所以不能改变String值。String的equals方法:equals方法源码: private final char value[]; //value是String维护的char数组 public boolean equals(Object anObj原创 2020-09-04 10:47:54 · 222 阅读 · 0 评论 -
java多线程并发全面解析
实现并发的最直接的方式是在操作系统级别使用进程。进程是运行在它自己的地址空间内的自包容的程序。线程的创建有四种方式:1、实现Runnable接口并重写run()方法public class StartRun implements Runnable{public void run() { }}使用://创建实现类对象StartRun st=new StartRun();//创建...原创 2019-11-12 19:33:49 · 674 阅读 · 0 评论 -
Set集合详解(参照源码)
打开jdk1.8官方文档:public interface Set<E> extends Collection<E> {}public interface Collection<E> extends Iterable<E> {}Set接口继承了Collection接口,和List一样是Collection接口的子类。Set集合的特点:无序;存放的顺序和取出的顺序不同不能存放重复元素不能存放null值主要实现类:HashSet原创 2020-06-08 21:09:17 · 269 阅读 · 0 评论 -
List集合详解(参考源码)
打开jdk1.8的官方文档发现:List接口实现了Collection和Iterable接口List集合的特点:有序的;存放顺序和取的顺序相同。可以存放重复元素。有索引;方便查询。主要实现类:ArrayListAbstractSequentialListLinkedListVectorStackArrayList详解源码均来自于JDK1.8//@since 1.2public class ArrayList<E> extends Abst原创 2020-06-06 12:25:03 · 360 阅读 · 0 评论 -
ThreadLocal详解
作用:提供线程内的局部变量,不同线程之间不会相互干扰,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或组件之间一些公共变量传递的复杂度。主要方法:ThreadLocal.set() 用于绑定变量到当前线程ThreadLocal.get() 用于取出绑定的变量ThreadLocal.remove() 用于移除绑定的变量 public T get() { Thread t = Thread.currentThread(); ThreadLocalM原创 2020-05-28 22:09:53 · 241 阅读 · 0 评论 -
hashmap底层源码详解
这里聊一下hashmap:hashmap底层数据结构:Hashmap1.7之前数据结构是数组+链表Hashmap1.8之后数据结构加了红黑树(是用来处理hash冲突的)初始化数组:默认初始化容量是16。也可以在定义hashmap的时候有参数,在里面自定义容量;当自定义容量的时候,如果不是2的指数次幂,将会强转至大于自定义的最接近的2的幂值。定位:不是通过取模数来定位索引的,而是位运算 ...原创 2020-04-19 21:53:09 · 371 阅读 · 0 评论