`

闭关贴!(含Java实践经验)

阅读更多
     由于下周就考试了,所以最近两周减少写或着就不写随笔了,但编程的学习是不会停止的。
附加Java实践经验:

Java对象通过*对象地址*被访问。但实际上所有参数都是以*值*方式传递。

对不变值和对象变量使用final。
final只限制变量。不限制所指对象的改变。

非静态函数在缺省下都可被subclass覆写。
若加final,可防止被覆写。

多态polymorphism优于instanceof

及时将不需要的对象函数,设为null。可使代码高效。

Java是面向对象语言,但其操控的东西并非都是对象。

区分==和equals()

==测试基本类型的相等性,及判定对象变量是否指向同一个对象。
若测试值或语义相等,使用equals()。

别依赖equals()的缺省实现。
java.lang.object提供的equals()大多时候并非进行你想要的比较。

若某个类生成的两个对象,那么就该为这个类提供一个equals()。

隶属于同一个类下的对象才能被视为相等。所以使用equals()前应该先优先考虑使用getclass()。

调用super.equals()唤起基类的相关行为。
只有允许derived class对象可以等于其基类对象时,才在equals()中使用instanceof。
处理异常期间又从catch或finally区段抛出异常,原先的异常会因而被隐蔽起来。我们应该处理这种情形的代码,即将所有异常回传给调用者。

一个异常加入某函数throw子句中,会影响所有调用者。

任何函数throw子句都应列出它所传播的所有异常。

使用finally避免资源泄漏。

不要从try区段发出return语句,因为此函数未必会立即从那里返回。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics