摘要:
Step 1: 增加源到 source.listsudo add-apt-repository "deb http://extras.ubuntu.com/ubuntu saucy main"sudo add-apt-repository "deb http://de.archive.ubuntu.... 阅读全文
摘要:
java 环境配置sudo gedit /etc/profile添加:JAVA_HOME=/home/username/jdk1.7.0_45export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$... 阅读全文
摘要:
要使任务和线程能安全、快速、可靠地停止下来,并不是一件容易的事。Java没有提供任何机制来安全地终止线程(虽然Thread.stop和suspend等方法提供了这样的机制,但由于存在着一些严重的缺陷,因此应该避免使用)。但它提供了中断,这是一种协作机制,能够使一个线程终止另一个线程的当前工作。 ... 阅读全文
摘要:
大多数并发应用程序都是围绕“任务执行(Task Execution)”来构造的:任务通常是一些抽象的且离散的工作单元。 在生产环境中,“为每个任务分配一个线程”这种方法存在一些缺陷,尤其是当需要创建大量线程时:线程生命周期的开销非常高。线程的创建与销毁并不是没有代价的。资源消耗。活跃的线程会消... 阅读全文
摘要:
不可变类只是其实例不能被修改的类。每个实例中包含的所有信息都必须在创建该实例的时候就提供,并在对象的整个生命周期内固定不变。 为了使类成为不可变,要遵循下面五条规则:不要提供任何会修改对象状态的方法保证类不会被扩展使所有的域都是final的使所有的域都成为私有的确保对于任何可变组件的互斥访问。... 阅读全文
摘要:
class Point{ public double x; public double y;} 对于可变的类来说,应该用包含私有域和公有设值方法的类来代替:class Point{ private double x; private double y; Point(d... 阅读全文
摘要:
要区别设计良好的模块与设计不好的模块,最重要的因素在于,这个模块对于外部的其他模块而言,是否隐藏其内部数据和其他实现细节。设计良好的模块会隐藏所有的实现细节,把它的API与它的实现清晰地隔离开来。 信息隐藏之所以非常重要有许多原因,其中大多数理由都源于这样一个事实:它可以有效的解除组成系统的各... 阅读全文
摘要:
name:缓存名称。 maxElementsInMemory:缓存最大个数。 eternal:对象是否永久有效,一但设置了,timeout将不起作用。 timeToIdleSeconds:设置对象在失效前的允许闲置时间(单位:秒)。仅当eternal=fal... 阅读全文