在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ Java基礎對象引用

Java基礎對象引用

    String n1 = "hello";
    String n2 = "hello";
    System.out.println(n1 == n2);
輸出結果是true,棧中有兩個對象的引用,分別指向堆中的兩個對象,兩個對象的內存地址應該是不一樣的吧,為什么打印結果是true呢???
回答
編輯回答
賤人曾

hello在第一次建立 就被放入 常量池 兩次對象引用指向的是同一個地址,所以 true

2018年8月31日 05:00
編輯回答
小曖昧

n1和n2指向的是常量池的同一個對象hello
圖片描述

字節(jié)碼指令都是使用ldc將String型常量值從常量池中推送至棧頂
圖片描述

2017年1月17日 15:02
編輯回答
別瞎鬧

對于基礎數據類型而言.
== 是比較的變量的值.
equals 比較的是內存地址.

對于引用類來說
==和equals比較的是對象的內存地址.

2017年9月23日 23:13