知识大全 JAVA规则 基本篇
Posted 常量
篇首语:追光的人,终会万丈光芒。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 JAVA规则 基本篇相关的知识,希望对你有一定的参考价值。
JAVA规则 基本篇 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
本文介绍的JAVA规则的说明分为 个级别 级别 是最基本也是最重要的级别 在今后将陆续写出其他的规则 遵守了这些规则可以提高程序的效率 使代码有更好的可读性等 ( ) 避免使用NEW关键字来创建String对象 把一个String常量copy到String 对象中通常是多余 浪费时间的 Public class test Public void method() System out print (str); private String str = new String ( ); //这里新建对象是完全没有必要的 private String str = //正确的应该如此 参考 Joshua Bloch: Effective Java Programming Language Guide ( ) 避免使用不必要的嵌套 过多的嵌套会使你的代码复杂化 减弱可读性 Public class test String add () Int c=(a=a+b)+b; //过于复杂 Return c 参考 # ( ) 避免在同一行声明不同类型的多个变量 这样可以使程序更加清晰 避免混乱 private int index index []; 正确的应该如此 private int index; private int index []; 参考 # ( ) 在每一行里写一条语句 这条规则不包括for语句 比如 for (int i = ; i < ; i++) x ; 可以增加代码的可读性 public class OSPL int method (int a int b) int i = a + b; return i; // 可读性不强 正确的 public class OSPLFixed int method (int a int b) int i = a + b; return i; 参考 Section of # ( )经常从finalize ()中调用super finalize () 这里的finalize ()是java在进行垃圾收集的时候调用的 和finally不一样 如果你的父类没有定义finally()的话 你也应该调用 这里有两个原因 ( )在不改变代码的情况下能够将父类的finally方法加到你的类中 ( )以后你会养成习惯调用父类的finally方法 即使父类没有定义finally方法的时候 正确的方法应该如此 public class parentFinalize protected void finalize () throws Throwable super finalize(); // FIXED 参考 The Java Programming Language by Ken Arnold and James Gosling page ( ) 不要在finalize ()中注销listeners 不要再finalize ()方法中中注销listeners finalize ()只有再没有对象引用的时候调用 如果listeners从finalize()方法中去除了 被finalize的对象将不会在垃圾收集中去除 public void finalize () throws Throwable bButton removeActionListener (act); ( ) 不要显式的调用finalize ()方法 虽然显式的调用这个方法可以使你确保你的调用 但是当这个方法收集了以后垃圾收集会再收集一次 public class T public void finalize() throws Throwable close_resources (); super finalize (); public void close_resources() class Test void cleanup () throws Throwable t finalize(); // 调用 t = null; private t = new T (); 对于这样的调用我们应该自己创建一个释放的方法 做最初finalize ()所作的事情 当你每次想显式的调用finalize ()的时候实际上调用了释放方法 然后再使用一个判断字段来确保这个方法只执行一次 以后再调用就没关系了 public class T public synchronized void release () throws Throwable if (!_released) close_resources (); // do what the old finalize () did _released = true; public void finalize () throws Throwable release (); super finalize (); public void close_resources() private boolean _released = false;class TestFixed void closeTest () throws Throwable t release (); // FIXED t = null; private T t = new T (); 参考 Nigel Warren Philip Bishop: Java in Practice Design Styles and Idioms for Effective Java Addison Wesley pp ( )不要使用不推荐的API 尽量使用JDK 推荐的API 在类和方法或者java组件里有很多方法是陈旧的或者是可以选择的 有一些方法SUN用了 deprecated 标记 最好不要使用例如 private List t_list = new List (); t_list addItem (str); 如果查一下javadoc的话 会发现建议用add()来代替addItem() 参考 ( )为所有序列化的类创建一个 serialVersionUID 可以避免从你各种不同的类破坏序列的兼容性 如果你不特别制订一个UID的话 那么系统为自动产生一个UID(根据类的内容) 如果UID在你新版本的类中改变了 即使那个被序列化的类没改变 你也不能反序列化老的版本了 public class DUID implements java io Serializable public void method () 在里面加一个UID 当这个类的序列化形式改变的时候 你也改变这个UID就可以了 public class DUIDFixed implements java io Serializable public void method () private static final long serialVersionUID = ; 参考 Joshua Bloch: Effective Java Programming Language Guide Addison Wesley pp ( )对于private常量的定义 比较好的做法是对于这样的常量 加上final标记 这样的常量从初始化到最后结束值都不会改变 private int size = ; 改变后的做法是 private final int size = ; ( )避免把方法本地变量和参数定义成和类变量相同的名字 这样容易引起混扰 建议把任何的变量字都定义成唯一的 这样看来 SCJP里的那些题目在现实中就用不到了 ) public void method (int j) final int i = ; // VIOLATION private int j = ; 建议 public void method (int j ) final int i = ; // VIOLATION private int j = ; cha138/Article/program/Java/JSP/201311/19457相关参考
Java语法规则 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! //多态 定义是指一个多态
Java编程规则 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 本文大量有用的建议帮助大家进行低
比尔学Java:JavaSocket篇 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 比尔最近接
Java综合技术面试题目–Spring篇 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Spring
进阶教程——Java性能优化通用篇 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一通用篇 通
Java设计模式之修饰模式篇 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 最近我给女朋友买了一
Java套接字实现网络编程之基础篇 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!用Java开发网络
利用Ruby简化你的Java测试(进阶篇) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 本文是
JAVA模块游戏规则和界面设计(一) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 本模块为游戏
一篇不错的介绍JavaSocket编程的文章 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 事实