
Java基础
个人学习Java总结
任我行哟
蜗牛
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LinkedList源码
LinkedList源码一:LinkedList底层数据结构LinkedList底层是基于双向链表实现。二:LinkedList源码2.1 默认构造方法什么都没有 /** * Pointer to first node. * Invariant: (first == null && last == null) || * (first.prev == null && first.item != null) */transient No原创 2020-12-15 11:37:28 · 150 阅读 · 0 评论 -
ArrayList源码
ArrayList源码一:ArrayList底层结构ArrayList底层结构是基于数组实现的。二:ArrayList源码2.1:默认构造方法是一个空数组 private static final int DEFAULT_CAPACITY = 10; private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; public ArrayList() { this.elementData = DEFAULT原创 2020-12-15 11:32:12 · 141 阅读 · 0 评论 -
多线程-出现非线程安全的底层原因
一:什么是非线程安全 一提到多线程,有经验的程序员就会考虑线程安全问题,那在什么情况下会出现线程安全的问题呢? 很多人可以轻而易举的总结出:当多个线程同时竞争共享变量时会出现线程安全问题。 但是对于底层为什么会出现这种情况却不清楚了。二:非线程安全的源头 出现非线程安全的源头归因于:原子性、可见性、有序性。 2.1:导致原子性的源头: 很多初学者会认为i+...原创 2019-05-08 11:27:10 · 543 阅读 · 0 评论 -
多线程-JMM从底层解决线程安全
一:什么是JMM 从字面上理解JMM(Java Memory model)就是java定义了一个底层内存操作的一个抽象。 当多线程同时对共享变量进行操作时,会存在原子性,可见性,有序性问题。JMM抽象定义了每个线程有自己的本地内存,共享变量存在主内存中,JMM通过控制主内存与线程的本地内存的交互来保证线程之间的可见性。 通过抽象JMM可以让程序员使用JMM定义的规则合理的按需禁用...原创 2019-05-09 15:57:27 · 525 阅读 · 0 评论 -
多线程-synchronized深入分析
一:什么是synchronized synchronized是java关键字,初学者接触多线程,为了保证线程安全,接触的最多的应该是synchronized。 synchronized可以保证方法、代码块在运行时,同一时刻只有一个线程可以执行,基于happens-before的监视器锁规则可以推断出共享变量的可见性(happens-before规则概念前文有写)。 可以把s...原创 2019-05-14 15:45:56 · 175 阅读 · 0 评论 -
多线程-线程概念
一:进程与线程的区别 进程是资源分配的最小单位,线程是资源调度的最小单位。一个程序的生命周期,对应着进程的创建,运行,中止。进程拥有独立的地址空间,同一进程下的多个线程共享进程的地址空间。二:线程的生命周期如上图所示,线程有6个状态:分别是新建状态,就绪状态,运行状态,阻塞状态,等待状态,超时等待状态,中止状态。 新建状态:当new一个线程对象时,此时线程出于新建状...原创 2019-08-04 17:21:19 · 145 阅读 · 0 评论 -
多线程-线程池深入分析
一:什么是线程池 在Java中new一个线程,除了在堆内存开辟一份空间、初始化一个对象外,还需要进行系统调用,操作系统为线程分配系统资源,当频繁的创建和销毁线程,导致的系统开销非常大,因此使用线程池对线程进行复用可以节省系统资源的开销。二:线程池的生命周期线程有五种状态:新建,就绪,运行,阻塞,死亡,线程池同样有五种状态:Running, SHUTDOWN, STOP, TIDYI...原创 2019-08-05 17:09:29 · 167 阅读 · 0 评论 -
JUC-AQS框架
一:什么是AQS AQS(AbstractQueuedSynchronizer)是JUC中的基础框架,例如ReentrantLock,CountDownLatch等组件都是基于AQS实现同步控制。二:AQS独占式获取和释放同步状态在了解AQS中线程如何获取同步状态前,需要了解Node类, AQS内部由一个双向队列实现对同步状态的管理,可以看成多生产者单消费者模型,当线程没有...原创 2019-08-05 13:29:01 · 332 阅读 · 0 评论