- 博客(16)
- 资源 (1)
- 收藏
- 关注
翻译 Effective Java(2nd Edition) Item 48 如果需要精确结果,请避免使用float与double(译文)
设计float与double类型主要用于科学与工程计算。它们用于二进制浮点运算,二进制浮点运算被仔细设计,可在一个很宽的数量级范围内提供足够精确的近似计算。然而它们不能提供精确的结果,当需要精确的结果时就不应使用它们。Float与double类型特别不适合于货币计算,因为不可能用float或double精确的表示0.1(及任何10的负幂次方的数)。 例如,假设你手头有$1.03,你
2009-01-07 14:30:00
823
翻译 Effective Java(2nd Edition) Item 47 学习与使用类库(译文)
假设你要生成一个在零与某个上限之间的随机整数。面对这种通用问题,许多程序员会写出大致如下面的小方法: private static final Random rnd = new Random();// Common but deeply flawedstatic int random(int n) { return Math.abs(rnd.nextInt()) %
2009-01-06 15:48:00
732
翻译 Effective Java(2nd Edition) Item 46 for-each循环优于传统的for循环(译文)
版本1.5之前,在集合上迭代优先考虑的习惯用法如下:// No longer the preferred idiom to iterate over a collection!for (Iterator i = c.iterator(); i.hasNext(); ) { doSomething((Element) i.next()); // (No generics be
2008-12-30 16:16:00
853
翻译 Effective Java(2nd Edition) Item 45 最小化局部变量的作用域(译文)
第8章 一般编程 本章重点关注语言的一些细节之处。讨论如何处理与使用局部变量、控制结构、类库及各种数据类型,以及语言之处的两种类设施的使用:反射编程及本地方法。最后讨论性能优化与命名规范。 Effective Java(2nd Edition) Item 45 最小化局部变量的作用域(译文)本条目本质上与条目13相似,条目13是“最小化类与成员变量的可访问性”。通过最小化局
2008-12-29 13:47:00
786
翻译 Effective Java(2nd Edition) Item 60 优先使用标准异常(译文)
专家级程序员与缺乏经验的程序员的一个主要区别是专家总是努力追求并且能获得代码的高度复用。好的代码应能复用,这是一条普遍规则,异常也不例外。Java平台库提供了常见未受检查异常的集合,它覆盖了大多数API需要抛出的大部份异常。本条目讨论这些广为复用的异常。 重用已存在的异常有几方面的好处。其中主要的是,这使你的API易于学习与使用,因为它符合程序员已熟悉的广为接收的习惯用法。与此紧密
2008-12-26 15:21:00
754
翻译 Effective Java(2nd Edition) Item 61 适当抽象抛出的异常(译文)
方法抛出的异常与所完成的任务没有明显的关联会让人不知所措。这种情形常常发生在方法转发了底层方法抛出的异常。这不仅让人窘迫,还会破坏高层API的实现细节。如果在下一个版本中改变了高层实现,则它所抛出的异常也会改变,这有可能破获它的客户端代码。 为避免这种情况,高层代码应捕获低层的异常,并且在高层对低层异常进行抽象,用抽象了的异常代替低层异常,向上抛出。这个习惯用法称为异常转换(exc
2008-12-25 15:35:00
552
翻译 Effective Java(2nd Edition) Item 59 避免使用不必要的受检查异常(译文)
受检查异常是Java语言的优秀特性。与返回代码不同,不再强迫程序员处理例外条件,从而极大地提高了可靠性。话说回来过度使用受检查异常会让使用API变得乏味。如果一个方法抛出了一个或多个受检查的异常,则调用该方法的代码必须用一个或多个catch子句来处理这些异常,或在方法声明中抛出这些异常,以向上传播。无论哪种方法,都会给程序员带来不少负担。 如果程序员正确使用了API也不能阻止例外条
2008-12-24 14:05:00
747
翻译 Effective Java(2nd Edition) Item 58 受检查异常用作可恢复条件,运行时异常用作程序错误
Java语言提供了三种异常:受检查异常、运行时异常与错误。有些程序员会迷惑何时使用哪种异常更为合适。虽然选择不总是清晰明了,但仍有些一般规则可用作指南。 使用受检查异常还是未受检查异常的最主要规则是:受检查异常用作这些情况,即调用者有望在异常情况下合理的恢复程序运行。抛出受检查异常就迫使调用者在catch语句中捕获异常或向上传播。因此,方法声明中所抛出的每个受检查异常对API的使用
2008-12-23 16:01:00
638
翻译 Effective Java(2nd Edition) Item 57 仅为例外条件使用异常(译文)
第9章 异常如果很好地使用异常,异常可改善程序的可读性、可靠性及可维护性,如果使用不当,则会取得相反的效果。本章提供有效使用异常的指南。Effective Java(2nd Edition) Item 57 仅为例外条件使用异常(译文)某一天,如果你不幸碰到下面这样一段代码,可能会很迷惑:// Horrible abuse of exceptions. Dont ever do
2008-12-22 16:12:00
434
1
翻译 Effective Java(2nd Edition) Item 62 归档方法所抛出的异常(译文)
文档对正确使用方法是必要的,关于方法抛出异常的描述是文档的重要部分,所以,值得你花些时间,并仔细归档每个方法所抛出的异常。 请总是声明每个受检查的异常,并且使用Javadoc标签@throws精确归档异常抛出的条件。请不要为了投机取巧而声明方法抛出的几个异常的超类。作为极端的例子,请不要在方法声明中用”throws Exception”,或更糟的,用“throws Throwabl
2008-12-19 13:20:00
394
原创 Effective Java(2nd Edition) Item 63 译文
因未捕获异常而导致程序运行失败时,系统会自动打印异常的堆栈踪迹(stack trace),堆栈踪迹中包含了该异常的字符串表示,该字符串就是调用toString方法的结果。典型的,它包括异常的类名,接着是详细信息(detail message)。通常详细信息是程序员或现场服务人员(field service personnel)在研究软件失败时所能获得的唯一信息。如果失败不能轻易再现,就不大可能获得
2008-12-18 14:12:00
361
原创 Effective Java(2 Edition) Item 64译文
Item64:为failure atomicity而努力 如果一个对象抛出了异常,就算错误发生在运算过程之中,通常还是需要对象处于定义良好、可用的状态。对受检查的异常更是如此, 因为总是希望调用者能从异常处恢复运行。一般说来,失败的方法调用应能使相关对象的状态在该方法调用前后保持一致。称具有这种特质的方法为failure atomic。有几种方法可以做到failure atomic。最
2008-12-16 14:20:00
411
原创 Effective Java(2 Edition) Item65译文
Item 65:不应忽视异常 虽然本条目是显然的,但也常常被背离,因此还是值得再重复一下。当API的设计者声明了一个方法,该方法要抛出一个异常时,他是在告诉客户一些信息。请不要忽视这些信息。要忽视方法调用时的异常是很容易的,只要在try语句中使用空的catch语句块即可:// 空的catch语句块以忽略异常 – 值得高度怀疑!try {...} catch (SomeExc
2008-12-15 16:00:00
342
原创 WSCi,portal
WSCI: The Web Service Choreography Interface (WSCI) is an XML-based interface description language that describes the flow of messages exchanged by a Web Service participating in choreographed inter
2007-02-08 17:18:00
832
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人