发布日期:2021-03-09 09:35:21点击次数:次
有一点要注意,如果字符串没有包含任何方法改变它的值的时候,你最好将它作为值来传递。
5、写一个空的异常处理
我知道一个空的异常处理就像忽略错误一样很诱人。但是如果真的发生了错误,你不会得到一个错误信息的输出,它使得不太可能发现错误的原因。甚至是最简单的一场处理都是很有用处的。举个例子,在你的代码加上try{}catch{},去试着捕捉任何的一场抛出,并打印出错误信息。你不用为每个异常都写出定制的处理(虽然这是一个很好的编程习惯)。但是不要将这个异常处理空着,否则你就不会知道有什么错误发生了。
举例:
public static void main(String args[])
{
try{
// Your code goes here
}
catch (Exception e)
{
System.out.println ("Err - " + e );
}
}
6、忘记java中索引是从0开始的
如果你有C/C++的编程背景的话,你在使用其他编程语言的时候就不会发现同样的问题了。
在java中数组的索引是从0开始的,这就是说第一个元素的索引必须是0.困惑了?让我们看看例子吧
// Create an array of three strings
String[] strArray = new String[3];
// First element's index is actually 0
strArray[0] = "First string";
// Second element's index is actually 1
strArray[1] = "Second string";
// Final element's index is actually 2
strArray[2] = "Third and final string";
在这个例子中,我们定义了一个有着三个字符串的数组,当我们访问他的元素时候减去了一个。现在,当我们试着去访问strArray[3],也就是第四个元素的时候,就会有一个ArrayOutOfBoundsException异常被抛出。这个就是最明显的例子-忘记了0索引规则。
在其他地方0索引规则也能使你陷入麻烦。例如字符串中。假设你要从一个字符串确定的偏移位置处得到一个字符,使用String。charAt(int)函数,你就能看到这个信息。但是在java学习中,字符串类的索引也是从0开始的,这就是说第一个字符的偏移为之为0,第二个为1.你可能会陷入一些麻烦,如果你不注意这个问题的话,特别是你的应用程序中使用了大量的字符串处理程序,那样的话你就很可能使用错误的字符,同时在运行时抛出一个StringIndexOutOfBoundsException异常,就像ArrayOutOfBoundsException异常一样。下面的例子证明了这些:
public class StrDemo
{
public static void main (String args[])
{
String abc = "abc";
System.out.println ("Char at offset 0 ; " = abc.charAt (0) );
System.out.println ("Char at offset 1 ; " = abc.charAt (1) );
System.out.println ("Char at offset 2 ; " = abc.charAt (2) );
// This line should throw a StringIndexOutOfBoundsException
System.out.println ("Char at offset 3 ; " = abc.charAt (3) );
}
}
同时应该注意的是,0索引规则不应该只应用在数组或是字符串中,java的其他部分也会用到。但是并不是全部都会用到。Java.util.Date和java.util.Calendar,这两个类的月份都是从0开始的,但是日期却通常是从1开始的,下面的程序证明了这一点。
import java.util.Date;
import java.java.util.Calendar;
public class ZeroIndexedDate
{
public static void main (String args[])
{
// Get today's date
Date today = new Date();
// Print return value of getMonth
System.out.println ("Date.getMonth() returns ; " +
today.getMonth());
// Get today's date using a Calendar
Calendar rightNow = Calendar.getInstance();
// print return value of get ( Calendar.MONTH )
System.out.println ("Calendar.get (month) returns ; " +
rightNow.get (Calendar.MONTH));
}
}
•java教程对java学习常见的几大代码解读2021-03-09