本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
paulwong - fantaxy025025
- johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- gengyun12
- jickcai
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- tanling8334
- arpenker
- gaojingsong
- xpenxpen
- kaizi1992
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- mengjichen
- lemonhandsome
- jbosscn
- zxq_2017
- nychen2000
- lzyfn123
- 龙儿筝
- forestqqqq
- wjianwei666
- ajinn
- siemens800
- zhanjia
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
编程语言专栏最新文章
Jdk1.6 JUC源码解析(14)-PriorityBlockingQueue
Jdk1.6 JUC源码解析(14)-PriorityBlockingQueue
作者:大飞
功能简介:
PriorityBlockingQueue是一种基于PriorityQueue实现的无界的阻塞队列。队列中的元素按照 ...
Jdk1.6 JUC源码解析(13)-LinkedBlockingQueue
Jdk1.6 JUC源码解析(13)-LinkedBlockingQueue
作者:大飞
功能简介:
LinkedBlockingQueue是一种基于单向链表实现的有界的(可选的,不指定默认int最大值)阻塞队列。队列中的元素遵循先入先出(FIFO)的规则。新元素插入到队列的尾部,从队列头部取出元素。(在并发程序中,基于链表实现的队列和基于数组实现的队列相比,往往具有更高的吞吐 ...
Jdk1.6 JUC源码解析(12)-ArrayBlockingQueue
Jdk1.6 JUC源码解析(12)-ArrayBlockingQueue
作者:大飞
功能简介:
ArrayBlockingQueue是一种基于数组实现的有界的阻塞队列。队列中的元素遵循先入先出(FI ...
Jdk1.6 JUC源码解析(11)-CyclicBarrier
Jdk1.6 JUC源码解析(11)-CyclicBarrier
作者:大飞
功能简介:
CyclicBarrier是一种可重复使用的栅栏机制,可以让一组线程在某个点上相互等待,这个点就可以类比为栅栏。并且这个栅栏是可重复使用的,这点可以和前面分析过的CountDownLatch做对比,CountDownLatch只能用一次。
CyclicBarrier还支持在所有线程到达栅 ...
Jdk1.6 JUC源码解析(10)-Semaphore
Jdk1.6 JUC源码解析(10)-Semaphore
作者:大飞
功能简介:
Semaphore是一种基于计数的信号量,管理了一组许可。线程可以申请许可,当信号量中有许可时,线程申请成功,拿走一个许可;没有许可时,线程阻塞等待其他线程用完了许可,归还给信号量。这个许可不是真正的许可(比如凭证),只是一个计数,线程也不会真正使用这些许可。
Semaphore一般用来构建一些 ...
Jdk1.6 JUC源码解析(9)-CountDownLatch
Jdk1.6 JUC源码解析(9)-CountDownLatch
作者:大飞
功能简介:
CountDownLatch是一种锁,称为闭锁。可以让一个或多个线程等待另外一个或多个线程执行完毕后再执行。
CountDownLatch也是基于AQS构建,使用共享模式。
CountDownLatch中提供一个count值来表示要等待的(其他任务)完成次数,常规用法有两种:Count ...
Jdk1.6 JUC源码解析(8)-locks-ReentrantReadWriteLock
Jdk1.6 JUC源码解析(8)-locks-ReentrantReadWriteLock
作者:大飞
功能简介:
ReentrantReadWriteLock提供了读写锁的机制,读锁使用AQS的共享模式,写锁使用独 ...
Jdk1.6 JUC源码解析(7)-locks-ReentrantLock
Jdk1.6 JUC源码解析(7)-locks-ReentrantLock
作者:大飞
功能简介:
Java代码层面提供的锁机制,可做为Synchronized(jvm内置)的替代物,和Synchronized一样都是 ...
Jdk1.6 JUC源码解析(6)-locks-AbstractQueuedSynchronizer
Jdk1.6 JUC源码解析(6)-locks-AbstractQueuedSynchronizer
作者:大飞
功能简介:
AbstractQueuedSynchronizer(以下简称AQS)是Java并发包提供的一个同步基础机制,是并发包中实现Lock和其他同步机制(如:Semaphore、CountDownLatch和FutureTask等)的基础。
AQS内部包含一 ...
Jdk1.6 JUC源码解析(4)-atomic-AtomicStampedReference、AtomicMarkableReference
Jdk1.6 JUC源码解析(4)-atomic-AtomicStampedReference、AtomicMarkableReference
作者:大飞
功能简介:
为了避免CAS过程中的ABA问题,并发包提供了两个类,AtomicStampedReference和AtomicMarkableReference。前者相当于一个[引用,integer]的二元组,后者相当于一个[引用 ...
Jdk1.6 JUC源码解析(3)-atomic-AtomicXXXFieldUpdater
Jdk1.6 JUC源码解析(3)-atomic-AtomicXXXFieldUpdater
作者:大飞
功能简介:
原子域更新器,一般用于一些原子同步结构中。
源码分析:
首先看下AtomicIntegerFieldUpdater,AtomicIntegerFieldUpdater本身是一个抽象类,提供了一个静态工厂方法来生成实例:
pu ...
Jdk1.6 JUC源码解析(2)-atomic-AtomicXXXArray
Jdk1.6 JUC源码解析(2)-atomic-AtomicXXXArray
作者:大飞
功能简介:
数组原子量。
源码分析:
和原子量一样,数组原子量内部有一个Unsafe的静态引用。
private static final Unsafe unsafe = Unsafe.getUnsafe();
...
Jdk1.6 JUC源码解析(1)-atomic-AtomicXXX
Jdk1.6 JUC源码解析(1)-atomic-AtomicXXX
作者:大飞
功能简介:
原子量和普通变量相比,主要体现在读写的线程安全上。对原子量的是原子的(比如多线程下的共享变量i++就不是原子的),由CAS操作保证原子性。对原子量的读可以读到最新值,由volatile关键字来保证可见性。
原子量多用于数据统计(如接口调用次数)、一些序列生成(多线程环境下)以及一 ...
LeetCode[排序] - #148 Sort List
原题链接:#148 Sort List
要求:
给一个单向链表排序,要求时间复杂度为O(nlogn)且空间复杂度为O(1)。
单向链表定义如下:
class ListNode{
int val;
ListNode next;
ListNode(int x){
this.val = x;
}
}
难度:中等
分 ...
LeetCode[排序] - #242 Valid Anagram
原题链接:#242 Valid Anagram
要求:
给定两个字符串s和t,写一个函数,判断t是否是s的变位词。
如果t跟s包含相同字符但排列顺序不同,则称t是s的变位词。
例如:
s = "anagram", t ="nagaram",返回true
s = "rat", t = "car",返回f ...
LeetCode[动态规划] - #5 Longest Palindromic Substring
原题链接:#5 Longest Palindromic SubString
要求:
给定一个字符串S,找出它的最长回文子串。假定S的最大长度为1000,且最长回文子串唯一
难度:中等
分析:
假定字符串s为回文字符串,则在s头部和尾部分别添加相同字符串[x],所得结果s'=[x]s[x]也为回文字符串(论述1)。可使用动态规划方法解决此问题,递推公式便基于此特性。
创 ...
LeetCode[动态规划] - #198 House Robber
原题链接:#198 House Robber
要求:
原题是要为某盗贼设计一个能使其利益最大化的方案(这个场景并不和谐,在保持题意的情况下重新描述一个场景)。假设某糖果工厂有若干糖果机,每台糖果机每天产出不同数量的糖果,每天取糖果时不能同时取相邻两台糖果机的糖果(别问为什么),问每天能取得的最大糖果数量是多少。
糖果机产生的糖果数量集合可以看成一个整型数组。
难度:简单
...
LeetCode[Array] - #217 Contains Duplicate
原题链接:#217 Contains Duplicate
要求:
给定一个整型数组,判断它是否包含重复元素。当任一元素函数应当返回true,当所有元素各不相同时返回false。
难度:简单
分析:
与#1 Two Sum类似,可以两次循环遍历,依次判断每一个元素是否在其后出现;或者使用一个HashSet作为辅助结构,遍历数组,若某元素不在HashSet中则将其加入Set ...
编程语言热门文章
博客专栏评论
skran 写道大兄弟文章写的不错,排版有点问题,代码长了既没换行也没滚动条现在都是Markdown写 ...
234390216 评论了 Spring Boot(05)——SpringApplication ...
234390216 评论了 Spring Boot(05)——SpringApplication ...
iteye这个博客主体内容定义的宽度只有700,导致部分代码没有展示出来。iteye现在都没有人维护了 ...
234390216 评论了 Spring(25)——ClassPathBeanDefinitionS ...
234390216 评论了 Spring(25)——ClassPathBeanDefinitionS ...