javaSystem.out.println()輸出byte[]、char[]異常的問題詳析
前言
今天 突然有人問我他寫的byte[]和char[],在用System.out.println()輸出的時候所得的值有問題?
細思恐懼啊 我之前怎么沒發(fā)現。。。。。。。。。。。。。。。。
廢話不多說 代碼如下
/**
* @Author:
* @Date: 2019/1/9/00099:23
* @Version 1.0
*/
public class arrayTest {
public static void main(String[] args) {
//創(chuàng)建一個byte數組
byte[] b = {'a'};
//創(chuàng)建一個char數組
char[] c = {'a'};
//用System.out.println輸出byte數組
System.out.println(b);//控制臺輸出 [B@7adf9f5f
//用System.out.println輸出char數組
System.out.println(c);//控制臺輸出 a
}
}
由代碼可以看出,使用System.out.println()byte數組和輸出char數組所產生的不同,
輸出byte數組 輸出的是內存地址
輸出char數組 輸出的是數組的元素
原因是什么嘞·············????接著往下看。
查資料發(fā)現,System.out.println()是printStream類的成員方法,此方法只提供了以下幾種數據類型的輸出重載函數:
--------------------------------------------------------------------------------------------------------------------
println() void 沒有返回值 通過寫入分隔符字符串來終止當前行
println(boolean x) void 沒有返回值 打印一個布爾值,然后終止該行
println(char x) void 沒有返回值 打印一個字符,然后終止該行
println(char[] x) void 沒有返回值 打印一個字符數組,然后終止該行
println(double x) void 沒有返回值 打印雙精度浮點數,然后終止該行
println(float x) void 沒有返回值 打印單精度浮點數,然后終止該行
println(int x) void 沒有返回值 打印一個整數,然后終止該行
println(long x) void 沒有返回值 打印long整數,然后終止該行
println(Object x) void 沒有返回值 打印一個對象,然后終止該行
println(String x) void 沒有返回值 打印一個字符串,然后終止該行
-----------------------------------------------------------------------------------------------------------------------
由以上可以看出 我們在輸出boolean、char、char[]、double、float、int、long、String 類型的數據,
會輸出相應的值,對于Object的輸出,System.out.println()會先調用其toString方法,然后會將該對象的toString方法的返回值輸出,
由于System.out.println()沒有對int[]、String[]、byte[]、Object[]、輸出函數重載,所有在使用該方法輸出這些數據類型時,該方法會將其中的參數
做數組首元素來對待,也就是說System.out.println(b);等價于System.out.println(b[0]);然后調用首元素的toString方法,并將其輸出。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
springboot druid mybatis多數據源配置方式
這篇文章主要介紹了springboot druid mybatis多數據源配置方式,具有很好的參考價值,希望對大家有所幫助,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
使用JAXBContext輕松實現Java和xml的互相轉換方式
這篇文章主要介紹了依靠JAXBContext輕松實現Java和xml的互相轉換方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
Java畢業(yè)設計實戰(zhàn)之工作管理系統(tǒng)的實現
這是一個使用了java+SSM+Jsp+Mysql開發(fā)的工作干活管理系統(tǒng),是一個畢業(yè)設計的實戰(zhàn)練習,具有管理系統(tǒng)該有的所有功能,感興趣的朋友快來看看吧2022-02-02

