摘要: Java设计模式之观察者模式 一直想写一篇学习观察者模式的总结没有契机,今天学习阻塞队列的原理时候看到在实现生产者消费者的时候用到了通知模式,就是所谓的观察者模式,正好顺便整理一下。 1. 简介 观察者模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被 阅读全文
posted @ 2018-06-02 22:59 scuwangjun 阅读(173) 评论(0) 推荐(0) 编辑
摘要: Java锁优化 应用程序在并发环境下会产生很多问题,通常情况下,我们可以通过加锁来解决多线程对临界资源的访问问题。但是加锁往往会成为系统的瓶颈,因为加锁和释放锁会涉及到与操作系统的交互,会有很大的性能问题。那么这个时候基于锁的优化手段就显得很重要了。 一般情况下,可以从两个角度进行锁优化:对单个锁算 阅读全文
posted @ 2018-06-02 11:06 scuwangjun 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 整型计算 今天做LeetCode看到一道题, "翻转整型" ,其中一行代码 表示超出范围就会有损失,有点不太明白,正好之前复习过原码,反码,补码这些,研究了半天,写个总结。接下来从两个问题入门看计算机内部是如何计算的。 1. 为什么Integer.MAX\_VALUE + 1 = Integer.M 阅读全文
posted @ 2018-06-02 10:14 scuwangjun 阅读(348) 评论(0) 推荐(0) 编辑
摘要: Java线程池 1. 简介 系统启动一个新线程的成本是比较高的,因为它涉及与操作系统的交互,这个时候使用线程池可以提升性能,尤其是需要创建大量声明周期很短暂的线程时。Java中的线程池是运用场景最多的并发框架。 线程池类似于数据库连接池,在系统启动的时候即创建大量空闲的线程,可以将一个线程任务提交给 阅读全文
posted @ 2018-06-02 10:11 scuwangjun 阅读(159) 评论(0) 推荐(0) 编辑