
java基础
wuzhicheng123456
这个作者很懒,什么都没留下…
展开
-
UUID
UUIDUUID含义是通用唯一识别码 (Universally Unique Identifier),这是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OSF) 的组织在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部份。 UUID 的目的,是让分布式系统中的所有元素,都能有唯一...原创 2018-07-23 22:07:52 · 360 阅读 · 0 评论 -
Java API限流
令牌桶算法 http://blog.didispace.com/spring-boot-request-limit/ 对于令牌桶的代码实现,可以直接使用Guava包中的RateLimiter。public class TestRateLimiter {static RateLimiter limiter = RateLimiter.create(2.0) ;public static...原创 2018-07-23 22:06:15 · 421 阅读 · 0 评论 -
HashMap
HashMap源码分析:原创 2017-06-15 17:22:06 · 292 阅读 · 0 评论 -
ConcurrentLinkedQueue
ConcurrentLinkedQueue : 基于非阻塞算法和链表结构的线程安全队列非阻塞算法 (nonblocking algorithms)一个线程的失败或者挂起不应该影响其他线程的失败或挂起的算法。实现无锁(lock-free)的非阻塞算法有多种实现方法,其中 CAS(比较与交换,Compare and swap) 是一种有名的无锁算法。转载 2017-06-14 16:01:19 · 255 阅读 · 0 评论 -
Collections.synchronizedCollection
对与集合的同步,方法之一是使用 Collections :如以下方法:Collections.synchronizedCollection(Collection c)返回的是一个 Collection 对象的装饰者对象 ,这个装饰者对象的所有方法都是同步的public static Collection synchronizedCollection(Collection c)原创 2017-06-14 09:20:23 · 2465 阅读 · 0 评论 -
ThreadLocal
线程安全大概分为两类 : 一类是多个线程共享一个变量 访问时候加锁,属于以时间换空间 一类是每个线程有自己的变量(不需要共享),不需要加锁 速度更快 但是 耗费内存 (为每个线程new了一个变量) 而ThreadLocal就属于后者主要方法:set(T t) public void set(T value) { Thread t = Thread原创 2017-06-13 17:11:16 · 225 阅读 · 0 评论 -
SimpleDateFormat的套路
由于SimpleDateFormat是一个非线程安全类(由于它的protected Calendar calendar;属性是非线程安全的),本来想测试下ThreadLocal下的线程安全SimpleDateFormat,结果输出的 simpleDateFormat 都是一样的public class TestLocal { ThreadLocal threadLocal = new原创 2017-06-13 16:24:23 · 305 阅读 · 0 评论 -
ThreadPoolExecutor
ThreadPoolExecutor(基于jdk1.6 主要看线程执行流程,不关注线程池状态等):主要属性:BlockingQueue workQueue:同步任务队列ReentrantLock mainLock:同步锁 用于addIfUnderCorePoolSize等方法中 HashSet workers:执行任务的worker队列volatile int原创 2017-06-13 11:09:19 · 217 阅读 · 0 评论 -
java int转换
只有比int长度大的可以自动转换为intpackage primary_data_type;public class SwitchTest {public static void main(String[] args){ byte b=9; //8 bitshort a=1;//16 bitint sitcInt=19;//32 bitlong原创 2015-01-01 10:56:25 · 437 阅读 · 0 评论