龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

细述Java技术开发规则--中级篇[组图]

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
本文介绍的Java规则的说明分为3个主要级别,中级是平时开发用的比较多的级别,在今后将陆续写出其他的规则。遵守了这些规则可以提高程序的效率、使代码又更好的可读性等。 !--

  本文介绍的Java规则的说明分为3个主要级别,中级是平时开发用的比较多的级别,在今后将陆续写出其他的规则。遵守了这些规则可以提高程序的效率、使代码又更好的可读性等。

<!-- frame contents -->
<!-- /frame contents -->

  一、在finally方法里关掉input或者output资源,方法体里面定义了input或者output流的话,需要在finally里面把它关掉。
  
  以下这几种调用不需要遵守这条规则,因为colse()方法不起作用:
  

  java.io.StringWriter
  java.io.ByteArrayOutputStream
  java.io.ByteArrayInputStream


  假如再方法返回的时候没有调用close()方法来释放input()和output()的资源的话,会导致一个系统资源泄漏。而且在任何情况下都要确定在返回全调用了close()方法,包括出现异常的时候。所以需要在finally方法里面加入这个方法。这样就保证了在任何情况下都会关闭资源。
  
  错误示例:
  

public class CIO
  {
   public void method (java.io.File f)
  {
   java.io.FileInputStream fis = null;
  try
   {
  fis = new java.io.FileInputStream (f);
  fis.read ();
  fis.close ();
  } catch (java.io.FileNotFoundException e1)
   {
  System.out.println("File not found");
  } catch (java.io.IOException e2)
   {
  System.out.println("I/O Exception");
  }
  // 假如出现异常,这里就不能保证关闭资源。
   }
  }


  修正后的代码:
  

public class CIOFixed
  {
   public void method (java.io.File f)
  {
   java.io.FileInputStream fis = null;
   try {
   fis = new java.io.FileInputStream(f);
   fis.read ();
  } catch (java.io.FileNotFoundException e1)
  {
   System.out.println("File not found");
  } catch (java.io.IOException e2)
  {
   System.out.println("I/O Exception");
  } finally
  {
   if (fis != null)
  {
   try
  {
   fis.close ();
  }
   catch (java.io.IOException e)
  {
   System.out.println("I/O Exception");
  }
   }
  }
   }
  }


  
  二、else的注重问题
  
  一般总认为假如if语句只有一句的话,那么{}就是可要可不要的了。可是假如if有else嵌套的话,就不一样了,{}是必需的
  
  错误示例:
  

  if (i < 5)
  if (i < 2)
  i++;
  else
  i--;


  修改后:
  

  if (i < 5)
  {
  if (i < 2)
  i++;
  }
  else
  {
  i--;
  }


  
  三、不要再catch()块里什么代码也不放
  
  在catch()块里面放入一些错误处理代码是一个好的习惯。但是假如catch()里面有有关javadoc 的代码,那也是可以的。
  
  错误示例:
  

  try {
   System.in.read ();
   } catch (java.io.IOException e)
   {
  // 错误
   }


  正确:
  

  try {
  System.in.read ();
   } catch (java.io.IOException e)
   {
  System.out.println("Descriptive error");
   }


  

  四、不要在if条件里面附值
  
  假如这样做的话,系统会报告错误。在java的很多条件声明里面用附值是很不明智的,而且系统也会报告错误。很轻易引起异常。遵守这条规者能够使维护简单,避免不一致。
  
  
精彩图集

赞助商链接