摘要:
Java里有个很重要的特色是Exception ,也就是说允许程序产生例外状况。而在学Java 的时候,我们也只知道Exception 的写法,却未必真能了解不同种类的Exception 的区别。 首先,您应该知道的是Java 提供了两种Exception 的模式,一种是执行的时候所产生的Excep 阅读全文
posted @ 2013-11-15 20:19
duanxz
阅读(1309)
评论(1)
推荐(0)
摘要:
对象的序列化(object serialization)API,它提供了一个框架,用来将对象编码成一个字节流,以及从字节流编码中重新构建对象。一、谨慎地实现Serializable 要想使一个类的实例可被序列化,非常简单,只要它的声明中加入"implementsSerializable"即可。正因为太容易了,所以普遍存在这样一种误解:程序员只需要做极少的工作就可以支持序列化了。 因为实现Serializable而付出的最大代价是,一旦一个类被发布,则”改变这个类的实现“的灵活性将大大降低。当一个类的序列化形式Serialized form变成了它的导出的API的一部分。一旦 阅读全文
posted @ 2013-11-15 19:17
duanxz
阅读(540)
评论(0)
推荐(0)
摘要:
一、对可共享数据的同步访问 synchronized关键字可以保证在同一时刻,只有一个线程在执行一条语句,或者一段代码块。正确地使用同步可以保证其他任何方法都不会看到对象处于不一致的状态中,还能保证通过一系列看似顺序执行的状态转变序列,对象从一种一致的状态变迁到另一种一致的状态。迟缓初始化(lazy initialization)的双重检查模式(double-check idiom)://The double-check idiom for lazy initializaation -broken!private static Foo foo = null;public statc Foo g 阅读全文
posted @ 2013-11-15 19:16
duanxz
阅读(498)
评论(0)
推荐(0)
摘要:
充分发挥异常的优点,可以提高一个程序的可读性、可靠性和可维护性。如果使用不当的话,它们也会带来负面影响。一、只针对不正常的条件才使用异常先看一段代码://Horrible abuse of exceptions. Don't ever do this!try{ int i = 0; while(true) a[i++].f();}catch(ArrayIndexOutOfBoundException e){}通过用抛出(throw)、捕获(catch)、忽略ArrayIndexOutOfBoundException的手段来达到终止无限循环的目的。如下面... 阅读全文
posted @ 2013-11-15 19:15
duanxz
阅读(582)
评论(0)
推荐(0)
摘要:
一、将局部变量的作用域最小化 本条目与前面(使类和成员的可访问能力最小化)本质上是类似的。将局部变量的作用域最小化,可以增加代码的可读性和可维护性,并降低出错的可能性。使一个局部变量的作用域最小化,最有力的技术是在第一次使用它的地方声明。几乎每一个局部变量的声明都应该包含一个初始化表达式。在循环中经常要用到最小化变量作用域这一个规则。for循环使你可以声明循环变量(loop varialbe),它们的作用域被限定在正好需要的范围值内(这个范围包括循环体,以及循环体之前的初始化、测试、更新部分)。因此,如果在循环终止之后循环变量的内容不再被需要的话,则for循环优于while循环。例如,下面是. 阅读全文
posted @ 2013-11-15 13:24
duanxz
阅读(467)
评论(0)
推荐(0)
摘要:
一、序言程序设计的几条基本原则:1、清晰性和简洁性最为重要,模块的用户永远也不应该被模块的行为所迷惑,所以写良好的注释是必需的。2、模块要竟可能小,但也不能太小,好一个深奥的哲学问题。3、代码应该被重用,而不是应该被拷贝,拷贝的代码哪天就是你的灾难。4、模块的依赖性应该尽可能地降到最小,低耦合是必须... 阅读全文
posted @ 2013-11-15 11:14
duanxz
阅读(365)
评论(0)
推荐(0)
浙公网安备 33010602011771号