摘要: 第二条 遇到多个构造器参数时,可以考虑用构建器 当遇到有多个构造器参数时,常见的是用重叠构造器,即:public class TestClass{ public TestClass(int para0){ this(para0,0); } public Tes... 阅读全文
posted @ 2015-08-23 21:04 jiangz222 阅读(175) 评论(0) 推荐(0)
摘要: 第二章 创建和销毁对象第一条 使用静态工厂方法替代构造器,原因:静态工厂方法可以有不同的名字,也就是说,构造器只能通过参数的不同来区分不同的目的,静态工厂在名字上就能表达不同的目的静态工厂方法不用每次调用的时候都创建新的对象(其实是因为它是static的,所以只能用static的,所以是一早就创建了... 阅读全文
posted @ 2015-08-19 23:22 jiangz222 阅读(207) 评论(0) 推荐(0)
摘要: 源码如下对比synchronized,synchronized使用时会显示的指定一个对象(方法为调用对象,代码块会需要对象作为参数),来获取一个对象的独占锁而ReentrantLock可能就是使用的ReentrantLock对象的独占锁来实现锁的功能,所以不同线程要用同一个ReentrantLock... 阅读全文
posted @ 2015-08-11 22:34 jiangz222 阅读(224) 评论(0) 推荐(0)
摘要: 如下所示,interrupted()会改变线程的中断状态(清除),而isInterrupted()不影响线程的中断状态 1 /** * Tests whether the current thread has been interrupted. The * interrupted statu... 阅读全文
posted @ 2015-08-11 21:15 jiangz222 阅读(728) 评论(0) 推荐(0)
摘要: 在 Java中,所有对象都能够被作为"监视器monitor"——指一个拥有一个独占锁,一个入口队列和一个等待队列的实体entity。 所有对象的非同步 方法都能够在任意时刻被任意线程调用,此时不需要考虑加锁的问题。 而对于对象的同步方法来说,在任意时刻有且仅有一个拥有该对象独占锁的线程能够调... 阅读全文
posted @ 2015-08-10 23:34 jiangz222 阅读(1816) 评论(0) 推荐(0)
摘要: 1.首先要明白一个概念 JAVA中主内存和线程工作内存的概念。 如果有一个static的变量,值会存储在主内存。如果多个线程访问这个变量,每个线程都会将变量的值拷贝到自己的工作内存,之后的操作就是针对自己工作内存里副本的操作,最后再写回主内存 明显,上面的操作非原子操作,会出现经典的多线程问题: ... 阅读全文
posted @ 2015-08-06 22:58 jiangz222 阅读(786) 评论(0) 推荐(0)
摘要: mysq支持插入emoji表情 阅读全文
posted @ 2015-03-21 21:36 jiangz222 阅读(2574) 评论(0) 推荐(0)