知识大全 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语法规则

Java语法规则  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  //多态    定义是指一个多态

知识大全 Java编程规则

Java编程规则  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文大量有用的建议帮助大家进行低

知识大全 Java Socket篇

比尔学Java:JavaSocket篇  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  比尔最近接

知识大全 Java综合技术面试题目 – Spring篇

Java综合技术面试题目–Spring篇  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Spring

知识大全 进阶教程——Java性能优化通用篇

进阶教程——Java性能优化通用篇  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一通用篇  通

知识大全 Java设计模式之修饰模式篇

Java设计模式之修饰模式篇  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  最近我给女朋友买了一

知识大全 Java套接字实现网络编程之基础篇

Java套接字实现网络编程之基础篇  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!用Java开发网络

知识大全 利用Ruby简化你的Java测试(进阶篇)

利用Ruby简化你的Java测试(进阶篇)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文是

知识大全 JAVA模块游戏规则和界面设计(一)

JAVA模块游戏规则和界面设计(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本模块为游戏

知识大全 一篇不错的介绍Java Socket编程的文章

一篇不错的介绍JavaSocket编程的文章  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  事实