Java Object toString方法原理解析
在Java中,所有的對象都是繼承自Object,自然繼承了toString方法,在當使用System,out.println()里面為一個對象的引用時,自動調用toString方法將對象打印出來。如果重寫了tostring方法則調用重寫的toString 方法。
先看下面一段代碼
public class ToStringTest {
static int i = 1;
public static void main(String[] args) {
System.out.println("love "+new ToStringTest());
ToStringTest a = new ToStringTest();
a.i++;
System.out.println("me "+a.i);
}
public String toString(){
System.out.print("I ");
return "java ";
}
}
運行結果:
I love java
me 2
對代碼剖析:
首先聲明了一個靜態(tài)變量i,,static修飾的成員或代碼塊在類加載的時候會進行內存申請,接著進入主方法main中,在第一句輸出語句中,里面用new了此類對象,當執(zhí)行該代碼的時候,先會創(chuàng)建本類的對象,調用下面重寫的tostring方法,輸出I,返回java,再進行main方法中第一句話的打印輸出,拼接得到I love java。
這個me2 的輸出,是static的定理,類加載概念, static修飾的類,一般的一個類
只發(fā)生一次類加載。輸出m2。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
校驗非空的注解@NotNull如何取得自定義的message
這篇文章主要介紹了校驗非空的注解@NotNull如何取得自定義的message,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09
JAVA基于數(shù)組實現(xiàn)的商品信息查詢功能示例
這篇文章主要介紹了JAVA基于數(shù)組實現(xiàn)的商品信息查詢功能,結合實例形式詳細分析了java使用數(shù)組存儲數(shù)據(jù)實現(xiàn)的商品信息查詢功能相關操作技巧,需要的朋友可以參考下2019-11-11
詳解JDK中ExecutorService與Callable和Future對線程的支持
這篇文章主要介紹了詳解JDK中ExecutorService與Callable和Future對線程的支持的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-09-09
java中functional interface的分類和使用詳解
這篇文章主要介紹了java中functional interface的分類和使用,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04

