Java中toString、equals和System方法的使用

一  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()方法爲清理垃圾回收,一般用不到,系統會對垃圾進行回收清理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章