摘要: 第一部分:项目结构 user_info表:只有id和username两个字段 User实体类: public class User { private String username; private String password; public String getUsername() { re 阅读全文
posted @ 2020-12-15 10:20 夏末秋涼 阅读(503) 评论(0) 推荐(1) 编辑
摘要: ​ 我在前面总结了Java集合中 "ArrayList的源码细节" ,其中也提到了ArrayList是线程不安全的(没有做任何的同步保证),也说到了fast fail机制以及多线程下使用ArrayList的异常问题。当然也包括单线程下使用不当: 。 ​ 那么jdk中为我们提供的线程安全的List是什 阅读全文
posted @ 2019-08-04 17:04 夏末秋涼 阅读(1413) 评论(0) 推荐(0) 编辑
摘要: 在并发编程中,我们可能经常需要用到线程安全的队列,JDK提供了两种模式的队列:阻塞队列和非阻塞队列。阻塞队列使用锁实现,非阻塞队列使用CAS实现。ConcurrentLinkedQueue是一个基于链表实现的无界线程安全队列,对于。下面看看JDK是如何使用非阻塞的方式来实现线程安全队列Concurr 阅读全文
posted @ 2019-08-03 19:41 夏末秋涼 阅读(347) 评论(0) 推荐(0) 编辑
摘要: LinkedList概述 ​ LinkedList 是 Java 集合框架中一个重要的实现,我们先简述一下LinkedList的一些特点: 底层采用的 结构; 支持空值和重复值(List的特点); 实现Deque接口,具有双端队列的特性,也可以作为栈来使用; 存储元素过程中,无需像 ArrayLis 阅读全文
posted @ 2019-08-02 17:38 夏末秋涼 阅读(400) 评论(0) 推荐(1) 编辑
摘要: ArrayList概述 (1)ArrayList 是一种变长的集合类,基于定长数组实现。 (2)ArrayList 允许空值和重复元素,当往 ArrayList 中添加的元素数量大于其底层数组容量时,其会通过扩容机制重新生成一个更大的数组。 (3)ArrayList 底层基于数组实现,所以其可以保证 阅读全文
posted @ 2019-08-01 17:11 夏末秋涼 阅读(2771) 评论(1) 推荐(4) 编辑
摘要: HashMap的结构图示 ​ jdk1.7的HashMap采用数组+单链表实现,尽管定义了hash函数来避免冲突,但因为数组长度有限,还是会出现两个不同的Key经过计算后在数组中的位置一样,1.7版本中采用了链表来解决。 ​ 从上面的简易示图中也能发现,如果位于链表中的结点过多,那么很显然通过key 阅读全文
posted @ 2019-07-31 19:23 夏末秋涼 阅读(1179) 评论(1) 推荐(0) 编辑
摘要: AQS概述 ​ AbstractQueuedSynchronizer抽象队列同步器简称AQS,它是实现同步器的基础组件,juc下面Lock的实现以及一些并发工具类就是通过AQS来实现的,这里我们通过AQS的类图先看一下大概,下面我们总结一下AQS的实现原理。先看看AQS的类图。 ​ (1) AQS是 阅读全文
posted @ 2019-07-31 10:24 夏末秋涼 阅读(39209) 评论(2) 推荐(6) 编辑
摘要: HashMap的结构图示 ​ 本文主要说的是jdk1.8版本中的实现。而1.8中HashMap是数组+链表+红黑树实现的,大概如下图所示。后面还是主要介绍Hash Map中主要的一些成员以及方法原理。 ​ 那么上述图示中的结点Node具体类型是什么,源码如下。Node是HashMap的内部类,实现了 阅读全文
posted @ 2019-07-24 11:07 夏末秋涼 阅读(1500) 评论(1) 推荐(4) 编辑
摘要: 一、反射概述 反射机制指的是Java在运行时候有一种自观的能力,能够了解自身的情况为下一步做准备,其想表达的意思就是:在运行状态中,对于任意一个类,都能够获取到这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性(包括私有的方法和属性),这种动态获取的信息以及动态调用对象的方法 阅读全文
posted @ 2019-06-17 10:29 夏末秋涼 阅读(6356) 评论(0) 推荐(1) 编辑
摘要: 非阻塞同步:基于冲突检测的乐观并发策略,通俗讲就是先进行操作,如果没有其他线程争用共享数据,那操作就成功了,如果争用数据有冲突那就采用其他的补偿措施(最常见的就是不断重试直到成功),这种乐观的并发策略使得很多线程不需要因为竞争失败直接挂起,这种同步措施称为非阻塞同步。下面我们就从硬件原语开始了解非阻 阅读全文
posted @ 2019-06-15 16:43 夏末秋涼 阅读(1056) 评论(0) 推荐(0) 编辑