前言 在我们进行开发的时候,为了充分利用系统资源,我们通常会进行多线程开发,实现起来非常简单,需要使用线程的时候就去创建一个线程(继承Thread类、实现Runnable接口、使用Callable和Future),但是这样也有一点问题,就是如果并发的线程数量很多,创建线程、销毁线程都是需要消耗时间、 ...
分类:
编程语言 时间:
2018-07-20 23:40:12
阅读次数:
327
装箱和拆箱 装箱和拆箱也比较简单,我就不解释了,直接看代码就行了。 虽然装箱拆箱简单易理解,但是其实 JDK 源码中有一些小细节,如果平时没注意,可能一不小心就踩了个坑。 细节一 这个输出就比较奇怪了,让我们直接看一下源码,看看 Integer.valueOf() 做了什么操作 public sta ...
分类:
其他好文 时间:
2018-07-20 18:55:36
阅读次数:
162
摘要: Hashtable与HashMap都是Map族中较为常用的实现,也都是Java Collection Framework 的重要成员,它们的本质都是 链表数组。本文深入JDK源码并从定义、构造、结构、存取等四个方面深入解读了Hashtable的底层结构与存储逻辑,并阐述了HashMap、Ha ...
分类:
其他好文 时间:
2018-07-15 21:17:09
阅读次数:
196
[源码分析]ReentrantLock & AbstractQueuedSynchronizer 首先声明一点: 我在分析源码的时候, 把jdk源码复制出来进行中文的注释, 有时还进行编译调试什么的, 为了避免和jdk原生的类混淆, 我在类前面加了"My". 比如把ReentrantLock改名为了 ...
分类:
其他好文 时间:
2018-07-15 00:52:18
阅读次数:
248
引用博文链接 : https://www.cnblogs.com/leskang/p/6029780.html LinkedList继承了 AbstractSequentialList抽象类,而不是像 ArrayList和 Vector那样实现 AbstractList,正如其名,它提供了对序列的连 ...
分类:
其他好文 时间:
2018-07-12 13:33:38
阅读次数:
165
前言/背景 在前面说到了UnSafe类,它给我提供了一个“后门”,让我们可以直接操作内存,挂起线程等操作。这一讲我们来看看LockSupport,顾名思义,它是给我们后面的LockSupport提供支持的。 概述 在我们过去的学习的,说起线程的挂起与恢复,我们就会想到wait与notify。在Loc ...
分类:
其他好文 时间:
2018-07-10 11:33:12
阅读次数:
160
一、字符串String 1、字符串操作可以说是我们在java中使用最频繁的操作之一,String不是基本类型,而是一个引用类型,查看jdk源码可以知道String这个类是被final修饰的,这就意味着String是不能被继承的,类中的方法默认是final方法。这或许是对字符串String的一种保护。 ...
分类:
其他好文 时间:
2018-07-03 00:16:52
阅读次数:
208
Java的volatile关键字在JDK源码中经常出现,但是对它的认识只是停留在共享变量上,今天来谈谈volatile关键字。 volatile,从字面上说是易变的、不稳定的,事实上,也确实如此,这个关键字的作用就是告诉编译器,只要是被此关键字修饰的变量都是易变的、不稳定的。那为什么是易变的呢?因为 ...
分类:
编程语言 时间:
2018-07-01 23:02:55
阅读次数:
204
今天看到了一个源码分析按照重要性排序的例子, 这里拿过来用了,之后按照这个顺序不断的完善源码的内容。 引用的出处忘记了(对作者说声抱歉) 很多java开发的小伙伴都会阅读jdk源码,然而确不知道应该从哪读起。以下为小编整理的通常所需阅读的源码范围。 标题为包名,后面序号为优先级1-4,优先级递减 1 ...
分类:
其他好文 时间:
2018-07-01 19:02:09
阅读次数:
165
J.U.C提供了实现线程池的简单工具类Executors。本文介绍线程池的基本使用。 ...
分类:
编程语言 时间:
2018-06-30 00:21:51
阅读次数:
208