博客
分类
标签
归档
关于
博客
分类
标签
归档
关于
Tau的博客
文章
分类
标签
归档
关于
Java垃圾收集灵魂三问
最近在重新看JVM的内容,这篇文章重新梳理一下垃圾回收中的相关内容。 Java中的垃圾回收(Garbage Collection, GC)指的是回收堆和方法区中不再使用被使用到的对象,即垃圾。 GC中需要考虑的三个主要问题: 什么是垃圾:即哪些对象可以被定义为垃圾 何时回收 如何回收 本文将针对上述三个问题一一解答。 什么是垃圾?这里就涉及到两种判断对象是否存活的算法: 引用计数法给...
2019-12-13
Java
Java
Read More
Java中的LongAdder
最近发现JUC包里除了AtomicLong外还有LongAdder,所以打算研究一下它俩的异同。 AtomicLongAtomicLong是JUC包中的原子类,通过CAS来实现long类型的加减。 那么既然都有AtomicLong类了,为什么还要有一个LongAdder类?因为从名字来看,LongAdder也是用来操作long类型的。 LongAdder的设计思想先翻译一段官方文档里的解...
2019-12-05
Java
Java
Read More
Java中的并发工具类
CountDownLatch多线程的使用中往往有这样的场景:某个线程需要等到其他线程执行完毕后才能继续执行,即线程的“等待其他线程”的功能(注意这里说的不是wait())。这时候就可以用CountDownLatch类来实现,当然了,Thread.join()方法也具有这个功能,只不过相比之下,CountDownLatch功能更加丰富。 通过一个例子来看下: 12345678910111213...
2019-12-02
Java
Java
Read More
Java中的等待/唤醒机制
等待/唤醒机制是多线程之间进行通信(同步)的一种方式,这里对它在Java中的使用做一个总结。 Object的wait()和notify()这个算是比较原始的一种等待/唤醒机制,这两个方法都是Object类中定义的方法,也就是说每个对象都拥有这两个方法。 它们一般都是和synchronized关键字配合使用的。 Condition接口Condition接口是为了对Lock的一个等待/通知机制的...
2019-11-28
Java
Java
Read More
Java中的Condition
前面的文章中,我们了解了Java中的Lock接口,以及相关的实现类ReentrantLock、ReentrantReadWriteLock。它们都是通过聚合一个AQS来实现的。同时讨论了为什么有了Synchronized关键字之后还要有Lock。 我们知道Synchronized关键字是Monitor机制在Java中的一种具体实现,每个对象都有wait()、notify()和notifyA...
2019-11-12
Java
Java
Read More
Java创建线程的方式
继承Thread类继承Thread类,重写run()方法。 1234567891011public class ExtendThread extends Thread { @Override public void run() { super.run(); System.out.println("this is sub ...
2019-11-11
多线程
多线程
Read More
Java线程池
什么是线程池线程池,和连接池、常量池一样,是一种池化思想。大概意思是预先把线程都创建好,放到一个池子里,用的时候就去拿,用完了再给下一个任务用,以达到一种资源的高效利用。 为什么要有线程池为什么要有线程池?和这个问题相对应的一个问题是不用线程池行不行?答案是可以的。比如我们在想使用多线程的时候直接new一个Thread也是可以的,那么这两种方式有什么区别呢?每用一次new一次这样性能是很差的...
2019-11-07
多线程
多线程
Read More
MySQL索引篇
提到MySQL索引,都会讲到B树和B+树,今天来梳理一下。 最开始是二叉查找树,但是这种树不平衡,有时候会退化成一条链表,使得查找时间边长,于是就有了二叉平衡树。 理论上讲,二叉平衡树已经能满足一些查找需求了,为什么还要有B树呢? 因为数据库在磁盘中,而查找的时候需要读一部分数据到磁盘中,这就涉及到了IO,IO的时候是以磁盘块为单位读取的,或者说是以页为单位。我们使用树这种数据结构,一个磁盘...
2019-11-06
数据库
数据库
Read More
Spring IoC 容器的实现(一)
本文开门见山,直接讨论Spring IoC容器的初始化过程。 关于Spring容器,有一个最基本的接口,叫做BeanFacotory, 它提供了容器最基本的一些特性。所有的容器都是基于它的。还有一个较为高级一点的容器接口,叫做ApplicationContext,它在BeanFactory的基础上,又提供了其他一些高级特性,比如访问资源。 本文以ApplicationCont...
2019-11-02
框架
框架
Read More
Spring Ioc容器实现之BeanDefinition的Resource定位
2019-11-02
Read More
Previous
5 / 10
Next