Java
pi88_dian88
平时喜欢窝在自己的窝里,希望生活多一点精彩!!!L-swip
展开
-
静态方法同步 与 非静态方法同步
, 之前在面试的时候遇到了这个问题,没有理清楚相互之间的同步关系,现在有空记录下~ 静态方法同步形式如: static synchronized method() 非静态方法同步形式如: synchronized method() 其中, 静态同步(static synchronized)锁定的对象是class,非静态方法同步锁定的对象是 当前对象(this...2014-01-03 17:38:20 · 186 阅读 · 0 评论 -
浅析jdk动态代理
, 以前一直没觉得,现在发现写博客还是一件蛮有趣的事情, :) 动态代理的实现有两种方式: 一种是jdk的动态代理,实现类必须实现某个接口; 另一种是cglib,使用底层的字节码技术,对实现类没有要求。 首先来看一个简单使用jdk动态代理的例子: 第一步: 定义接口 public interface Animal { public String getName();...2014-01-06 17:33:39 · 84 阅读 · 0 评论 -
java ArrayList与Vector源码学习
Vector和ArrayList非常相似,两者都是用来表示可变数组,内部元素的存储都是通过数组来实现,可以随机的访问某个元素。 两者的主要区别是Vector的方法带有synchronized标志,各方法的访问是同步的,因此,Vector能够支持多线程,但是相应地效率比较低;ArrayList的方法没有synchronized标志,不是线程安全的。还有个比较小的差异是Vector在容量不够时,选...2014-01-08 18:02:38 · 91 阅读 · 0 评论 -
Hashtable与ConcurrentHashMap区别
相同点: Hashtable 和 ConcurrentHashMap都是线程安全的,可以在多线程环境中运行; key跟value都不能是null 区别: 两者主要是性能上的差异,Hashtable的所有操作都会锁住整个对象,虽然能够保证线程安全,但是性能较差; ConcurrentHashMap内部使用Segment数组,每个Segment类似于Hashtable,在“写”线程或者部分特殊的“...2014-01-22 12:12:34 · 257 阅读 · 0 评论 -
几种同步工具介绍
下面的内容基本上来自于《Java并发编程实践》, 留个记录~ 一,CountDownLatch CountDownLatch是一个灵活的闭锁的实现,允许一个或多个线程等待一个事件集的发生。 闭锁的状态包括一个计数器,初始化为一个正数,用来表现需要等待的事件数。countDown方法对计数器做减操作,表示一个事件已经发生了,而await方法会一直阻塞直到计数器为0,或者等待线程中断以...原创 2014-02-12 13:31:23 · 173 阅读 · 0 评论 -
ReentrantLock与ReadWriteLock的使用
下面的内容基本上来自于《Java并发编程实践》, 留个记录~ 一, ReentrantLock ReentrantLock实现了Lock接口,提供了与synchronized 相同的互斥和内存可见性的保证。获得ReentrantLock的锁与进入synchronized 块有着相同的内存语义;释放ReentrantLock锁与退出synchronized块有着相同的内存语义。下面是Lo...2014-02-13 15:58:02 · 131 阅读 · 0 评论 -
JDK 下载地址
从oracle上面找了很久的jdk6的下载地址,记录下。 http://www.oracle.com/technetwork/java/javase/archive-139210.html 可以找到各种版本的jdk2014-06-30 13:32:13 · 141 阅读 · 0 评论