一 toString方法
toString方法在程序中使用的並不多,一般在代碼調試的時候使用。如果i是基本數據類型,則i.toStirng()直接輸出i的值。如果過i爲引用類型,則輸出的是i的地址,所以引用類型在時候toString方法時,一般要重寫toString()方法。在myeclipse中source可以直接生成重寫的方法。JDK中的API文檔對toString的解釋如下圖所示:
public class Test2 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Student student = new Student();
student.name = "王二";
student.age = 18;
System.out.println(student.toString());
}
}
class Student{
String name;
int age;
// @Override
// public String toString() {
// return "Student [name=" + name + ", age=" + age + "]";
// }
}
寫了上述代碼來驗證toString方法,沒重寫後的toString方法輸出的是:Student@3aae43b8(類名+@+地址的哈希地址值),下面把註釋打開後,輸出的是:Student [name=王二, age=18]。
二 equals方法
equals方法是object中的方法,它只能比較引用類型,比較的是兩個引用是否指向同一個對象。“==”比較的是8個基本數據類型,也可以比較引用類型,比較的也是兩個引用是否指向同一個對象。String類型和8個包裝類的equals方法JDK已經幫我們重寫過了,若比較其他引用類型時,需要重寫此方法或者直接在source中生成。下面是API中對equals的解釋:
public class Test2 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Student student1 = new Student();
Student student2 = new Student();
student1.name = "王二";
student1.age = 18;
student2.name = "王二";
student2.age = 18;
System.out.println(student1.equals(student2));
}
}
class Student{
String name;
int age;
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
}
爲了驗證,我們編寫上述代碼,輸出結果是:false,下面我們書寫override以下的內容重寫equals方法,輸出結果是:true.
三 system類
它是包含字段的方法,不能被實例化,要使用只能通過System.方法 這樣的樣式使用,它包含的全部方法都是靜態的。API文檔如下所示:
最常見的幾種方法:
arrayCopy(src,srcpos,dest,destpos,length)方法,拷貝字符串。第一個參數是數組源,第二個參數是源數組的起始位置,第三個參數是目標數組,第四個參數是目標數組的位置,第五個參數是拷貝的長度。代碼如下所示:
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] src = {1,2,3,4,5};
int[] dest = new int[5];
System.arraycopy(src, 0, dest, 0, 5);
for (int i = 0; i < dest.length; i++) {
System.out.print(dest[i]);
}
}
輸出爲:12345
currentTimeMilliis()方法,以毫秒返回當前系統的時間(相對時間,相對1970-1-1 00:00:00),代碼如下所示
public static void main(String[] args ) {
// TODO Auto-generated method stub
long Start = System.currentTimeMillis();
for (int i = 0; i < 100000; i++) {
System.out.println(i);
}
long end = System.currentTimeMillis();
System.out.println(end - Start);
}
最後輸出的是執行循環使用的時間爲:718毫秒。
exit(int status)方法爲退出當前虛擬機,status爲0正常退出,非0異常退出。
gc()方法爲清理垃圾回收,一般用不到,系統會對垃圾進行回收清理。