自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 java源码_ThreadLocal

每个Thread对象都有一个ThreadLocalMap对象,存储自己的ThreadLocal,存取ThreadLocal其实就是从ThreadLocalMap对象存取ThreadLocal1.重要成员变量,hashCode的生成,其实就是AtomicInteger增加private final int threadLocalHashCode = nextHashCode();//ThreadLo...

2018-05-24 17:12:29 152

原创 java源码_ThreadLocalMap

ThreadLocalMap是保存ThreadLocal的,每一个ThreadLocal类似HashMap的一个key-value映射采用hash+数组的方式存储,hash冲突后就放入下一个(开放寻址法,线性探测再散列)但ThreadLocalMap的entry不同于hashMap的entry,ThreadLocalMap的entry是WeakReference类型,只保存了value.把Thre...

2018-05-24 16:59:35 307

原创 java源码_Thread

1.重要的成员变量private volatile char name[];//线程名字 private int priority;//优先权 private boolean daemon = false;//是否守护线程 private Runnable target;//运行目标 private ThreadGroup group;//线程组2 private ...

2018-05-24 14:19:37 330

原创 java源码_HashMap(二)

增删改查方法1.put,增,改public V put(K key, V value) { return putVal(hash(key), key, value, false, true); }public V putIfAbsent(K key, V value) { return putVal(hash(key), key, value, true, true); }fina...

2018-05-23 21:01:53 126

原创 java源码_HashMap(一)

哈希表采用数组+链表或红黑树的方式存储,查询效率高1.重要的成员变量/** * The default initial capacity - MUST be a power of two. */ static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // 默认的数组容量/** * The load factor used when...

2018-05-22 17:35:38 182

原创 java源码_LinkedList(二)

1.先看下内部的增删改查方法,对外的方法都是建立在内部方法基础上的a.插入到头结点之前/** * Links e as first element. */ private void linkFirst(E e) { final Node<E> f = first; final Node<E> newNode = new Node<>(null...

2018-05-21 15:59:30 141

原创 java源码_LinkedList(一)

LinkedList底层结构是双向链表,实现了List和Dqueue接口public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable1.底层是Node节...

2018-05-21 15:00:14 115

原创 java源码_ArrayList(三)

ArrayList其他方法1.forEach,通过fail-fast进行检测public void forEach(Consumer<? super E> action) { Objects.requireNonNull(action); final int expectedModCount = modCount; @SuppressWarnings("unch...

2018-05-21 14:11:49 156

原创 java源码_ArrayList(二)

接上文分析ArrayList核心方法1.作为动态数组,扩容方法至关重要a.确保最低容量的公共方法public void ensureCapacity(int minCapacity) { int minExpand = (elementData != DEFAULTCAPACITY_EMPTY_ELEMENTDATA) // any size if not default ...

2018-05-18 16:45:50 112

原创 java源码_ArrayList(一)

阅读ArrayList源码,学习到以下:1.ArrayList是动态数组,底层是数组,有以下核心成员变量a.存储元素的数组transient Object[] elementData;b.记录元素的个数private int size;c.初始容量private static final int DEFAULT_CAPACITY = 10;d.默认空数组,为了首次添加元素时候判断需要扩容多少用/*...

2018-05-17 14:54:39 126

空空如也

空空如也

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

TA关注的人

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