詳解 Java什麼時候打印出來的是存儲的值,什麼時候是哈希值

我們要判斷輸出的到底是什麼的話其實要記住以下幾點
1 對於基本數據類型
我們的輸出語句打印的就是內容
2 對於引用數據類型
我們要判斷該類型是否重寫了toString()方法!
eg;
對於集合類我們應該明確
Collection(接口)—AbstractCollection(抽象類)–AbstractList(抽象類)–ArrayList(類)

Collection(接口)—AbstractCollection(抽象類)–AbstractSet(抽象類)–TreeSet(類)

Map(接口)–AbstractMap(抽象類)–HashMap(類)
————————————————

  Map<String,String> map = new HashMap<String,String>();

        //V put(K key, V value) 將指定的值與該映射中的指定鍵相關聯
        map.put("itheima001","林青霞");
        map.put("itheima002","張曼玉");
        map.put("itheima003","王祖賢");
        map.put("itheima003","柳巖");
//            Set<Map.Entry<String, String>> entries = map.entrySet();
//            for (Map.Entry<String, String> entry : entries) {
//                System.out.println(entry);
//            }


        //輸出集合對象
      System.out.println(map);

我們這裏輸出的就是內容,因爲hashmap集合重寫了toString()方法,
eg2

Student student=new Student();

System.out.println(student);此時輸出的爲哈希值。因爲未重寫toString方法。

Object類的toString方法返回的是
//該方法打印的是哈希值
public String toString() {

    return getClass().getName() + "@" + Integer.toHexString(hashCode());

}
發佈了11 篇原創文章 · 獲贊 0 · 訪問量 339
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章