亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解讀Java中打印輸出對(duì)象內(nèi)容為什么可以不寫.toString()

 更新時(shí)間:2023年09月29日 08:10:14   作者:lijin8080  
這篇文章主要介紹了解讀Java中打印輸出對(duì)象內(nèi)容為什么可以不寫.toString()問題,具有很的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

問題拋出

在 Java 中,我們經(jīng)常用到 System.out.println(); 輸出語句輸出內(nèi)容,有時(shí)候也會(huì)用于 打印對(duì)象 比如 System.out.println(Object);

當(dāng)我們使用 System.out.println(Object); 打印對(duì)象時(shí)一般有兩種情況產(chǎn)生

  • 沒有重寫 toString() 方法時(shí),輸出對(duì)象的 哈希碼(HashCode)
  • 若重寫了 toString() 方法,按重寫的格式輸出

可以得出,不管是什么情況,輸出的都是 toString();

方法里返回的內(nèi)容,但我們發(fā)現(xiàn), System.out.println(Object);

語句中并沒有去調(diào)用 toString(); 方法

也就是說 toString(); 被隱式調(diào)用了,其實(shí)我們?cè)趯懗绦驎r(shí)也可以發(fā)現(xiàn),

圖中 第 7 行 的 toString 是灰色的,也就是說這里去調(diào)用 toString 是多余的

看源碼,找出打印對(duì)象時(shí),toString 隱式調(diào)用原因

1.System.out.println(Object); 可以不寫 .toString() ,但打印的仍然是 toString() 中的內(nèi)容

2.說明 傳入一個(gè)對(duì)象 “Object”System.out.println() 方法,在 System.out.println() 方法的內(nèi)部,一定對(duì) “Object” 做了一些操作

Ctrl + 點(diǎn)擊 println 查看源碼:

println() 方法中 我們發(fā)現(xiàn)這是一個(gè)打印流(PrintStream),然后對(duì)象在剛進(jìn)入 println() 方法后,首先通過 String.valueOf(); 被轉(zhuǎn)成字符串 “s” 了,

然后最終打印輸出的 是這個(gè)字符串 “s”

然后我們 Ctrl + 點(diǎn)擊 valueOf() ; 查看 “s” 是個(gè)啥

看到這了,顯然,真相已經(jīng)浮出水面了。

當(dāng)你傳入的對(duì)象 “obj” 不為空 null,返回 該對(duì)象的 toString() 的值

所以說,這就是我們?cè)谑褂?System.out.println(Object); 打印對(duì)象時(shí),可以不寫 .toString() 的原因

總結(jié)

寫到這,也就結(jié)束了,感興趣的還可以多點(diǎn)點(diǎn)其他方法的源碼,會(huì)有不一樣的收獲

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • windows下zookeeper配置java環(huán)境變量的方法

    windows下zookeeper配置java環(huán)境變量的方法

    今天小編就為大家分享一篇關(guān)于windows下zookeeper配置java環(huán)境變量的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • java操作solr實(shí)現(xiàn)查詢功能的實(shí)例

    java操作solr實(shí)現(xiàn)查詢功能的實(shí)例

    下面小編就為大家分享一篇java操作solr實(shí)現(xiàn)查詢功能的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • Netty搭建WebSocket服務(wù)器實(shí)戰(zhàn)教程

    Netty搭建WebSocket服務(wù)器實(shí)戰(zhàn)教程

    這篇文章主要介紹了Netty搭建WebSocket服務(wù)器實(shí)戰(zhàn),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-03-03
  • 讓你五分鐘徹底理解Spring MVC

    讓你五分鐘徹底理解Spring MVC

    其實(shí)MVC就是處理Web請(qǐng)求的一種框架模式,如果你對(duì)MVC不太熟悉的話可以看下本文,這篇文章主要給大家介紹了關(guān)于如何讓你五分鐘徹底理解Spring MVC的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • java樹結(jié)構(gòu)stream工具類的示例代碼詳解

    java樹結(jié)構(gòu)stream工具類的示例代碼詳解

    Stream 作為 Java 8 的一大亮點(diǎn),它與 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。今天通過本文重點(diǎn)給大家介紹java樹結(jié)構(gòu)stream工具類的示例代碼,感興趣的朋友一起看看吧
    2022-03-03
  • SpringBoot中注解@AliasFor的使用詳解

    SpringBoot中注解@AliasFor的使用詳解

    這篇文章主要為大家詳細(xì)介紹了SpringBoot中注解@AliasFor的用法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定幫助,需要的可以參考一下
    2022-05-05
  • SpringCloud集成Eureka并實(shí)現(xiàn)負(fù)載均衡的過程詳解

    SpringCloud集成Eureka并實(shí)現(xiàn)負(fù)載均衡的過程詳解

    這篇文章主要給大家詳細(xì)介紹了SpringCloud集成Eureka并實(shí)現(xiàn)負(fù)載均衡的過程,文章通過代碼示例和圖文講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的參考價(jià)值,需要的朋友可以參考下
    2023-11-11
  • SpringBoot整合sharding-jdbc實(shí)現(xiàn)自定義分庫分表的實(shí)踐

    SpringBoot整合sharding-jdbc實(shí)現(xiàn)自定義分庫分表的實(shí)踐

    本文主要介紹了SpringBoot整合sharding-jdbc實(shí)現(xiàn)自定義分庫分表的實(shí)踐,將通過自定義算法來實(shí)現(xiàn)定制化的分庫分表來擴(kuò)展相應(yīng)業(yè)務(wù),感興趣的可以了解一下
    2021-11-11
  • 深入解析Spring?AI框架如何在Java應(yīng)用中實(shí)現(xiàn)智能化交互的關(guān)鍵

    深入解析Spring?AI框架如何在Java應(yīng)用中實(shí)現(xiàn)智能化交互的關(guān)鍵

    本文詳細(xì)介紹了SpringAI框架在Java應(yīng)用中的應(yīng)用,包括實(shí)體類映射、函數(shù)回調(diào)等核心功能的實(shí)現(xiàn),通過源碼分析,幫助開發(fā)者更好地理解和使用這些高級(jí)特性,提升業(yè)務(wù)效率,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • SpringBoot3整合 Elasticsearch 8.x 使用Repository構(gòu)建增刪改查示例應(yīng)用

    SpringBoot3整合 Elasticsearch 8.x 使用Repository構(gòu)

    我們構(gòu)建了一個(gè)完整的 Spring Boot 3 和 Elasticsearch 8.x 的增刪改查示例應(yīng)用,使用 Spring Data Elasticsearch Repository,我們能夠快速實(shí)現(xiàn)對(duì) Elasticsearch 的基本 CRUD 操作,簡(jiǎn)化了開發(fā)流程,希望這個(gè)示例能夠幫助你理解如何在項(xiàng)目中有效使用 Elasticsearch!
    2024-11-11

最新評(píng)論