摘要: 来自《java并发编程的艺术》。只是方便自己以后查找。 处理器如何实现原子操作 32位IA-32处理器使用基于对缓存加锁或总线加锁的方式来实现多处理器之间的原子操作。首先处理器会自动保证基本的内存操作的原子性。处理器保证从系统内存中读取或者写入一个字节是原子的,意思是当一个处理器读取一个字节时,其他 阅读全文
posted @ 2017-01-17 17:01 bad_boy_f 阅读(3637) 评论(0) 推荐(0) 编辑
摘要: 关于同步的问题,想弄明白java,同步不会是不行的。这不书弄完后还会从《java并发编程实战》和《java并发编程的艺术》选一本或者都看。 第六十六条:同步访问共享的可变数据说的就是线程之间同步的问题。synchronized及volitale关键字的使用方法。在进行同步的时候,不仅读的过程要同步, 阅读全文
posted @ 2017-01-17 15:05 bad_boy_f 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 第五十七条:只针对异常的情况才使用异常应该都有这个意识吧,就像什么抓索引越界什么的,没有必要。 第五十八条:对可恢复情况使用受检查异常,对编程错误使用运行时异常三种可抛的异常:受检的异常(checked exception)、运行时异常(run-time exception)、错误(error) 第 阅读全文
posted @ 2017-01-17 13:56 bad_boy_f 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 第四十五条:将局部变量的作用域最小化 第四十六条:加强版for循环优于传统for循环 第四十七条:了解和使用类库书中提到了一个生成随机数的例子。正好需要。 一般写随机数,都是这么写,以为这会Math.random会生成一个完全随机的随机数。上面那个low计算出来的结果是随机数落在设定的数的前半部分的 阅读全文
posted @ 2017-01-17 11:54 bad_boy_f 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 第三十八条:检查参数的有效性 第三十九条:必要时进行保护性拷贝 写完上面的代码后会认为这是一个很安全的了,不可变,初始化了之后就不可以start和end就不可以改变了,but,真这样?注意Date是可变的 这样就把原本的时间改变了。 程序改成这样后,这个类就真的不可变了,穿件和向客户端返回数据的时候 阅读全文
posted @ 2017-01-17 10:58 bad_boy_f 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 第三十条:用enum代替int常量enum的简单用法。 第三十一条:用实例域代替序数就是向上面那样将symbol换成一个int类型的值用于标记实例。 第三十二条:用EnumSet代替位域(没用过位域,还不太懂) 第三十三条:用EnumSet代替序数索引就是告诉别用ordinal()方法,这个基本上对 阅读全文
posted @ 2017-01-17 09:15 bad_boy_f 阅读(244) 评论(0) 推荐(0) 编辑