logo头像
Snippet 博客主题

JDK源码分析之——Condition

简介Condition是在java 1.5中才出现的,它用来替代传统的Object的wait()、notify()实现线程间的协作,相比使用Object的wait()、notify(),使用Condition的await()、sign...

JDK源码分析之——ReentrantLock

简介ReentrantLock是Lock接口的实现类,是一把可以支持重入的锁,静态内部抽象类Sync继承了AQS(AbstractQueuedSynchronizer,不了解AQS的可以看看JDK源码分析之——AQS),Sync的子类...

JDK源码分析之——FutureTask

简介FutureTask是提供了一个可取消的异步计算的过程类,FutureTask实现了Future的基本方法,提供了start和cancel操作,可以查询计算是否已经完成,并且可以获取计算的结果。结果只可以在计算完成之后获取,当计算...

Redis键的生存时间和过期删除策略

简介Redis中的键是可以设置生存时间的,在经过指定的时间后,Redis服务器会自动删除生存时间为0的键。本文将介绍Redis中键的生存时间是如何保存的,以及过期键是如何删除的。 1.键的生存时间1.1 设置生存时间Redis有四个不...

Java垃圾收集器

简介如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。这里讨论的收集器基于JDK 1.7 Update 14之后的 HotSpot 虚拟机,这个虚拟机包含的所有收集器如下图所示: 上图展示了7种作用于不同分代的...

Java垃圾回收机制

简介Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外的人想进去,墙里面的人想出来。 Java内存运行时区域中的程序计数器、虚拟机栈、本地方法栈随线程而生灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出...

MySQL索引优化总结

如果MySQL估计使用索引比全表扫描还慢,则不会使用索引; 前导模糊查询不能命中索引,在做模糊查询时,不要把通配符放在最前面,否则不会命中索引; 数据类型出现隐式转换的时候不会命中索引,特别是当列类型是字符串,一定要将字符常量值用引...

JDK源码分析之——ThreadLocal

简介ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。 ThreadL...

Java异常处理机制

简介程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。而异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰。Ja...

JDK源码分析之——CountDownLatch与CyclicBarrier

CountDownLatch与CyclicBarrier都是我们在并发编程中常用的工具,它们提供了一种控制并发流程的手段,今天我们通过源码分析来看看它的真面目。 1.CountDownLatchCountDownLatch中count...