判定定義為string型別的st1和st2是否相等,為什麼?
public
class
compare_string
}
輸出結果:
true、true
分析:== 比較運算子,如果是基本資料型別,比較的是值是否相等,如果是引用資料型別,比較的是位址值是否相等,』『abc』'是儲存在常量池中的,常量池有乙個特點,如果已經存在,就不會再重複的建立物件,所以兩個str1、str2是指向的同乙個位址,賦值給兩個字串物件,故(str1 == str2)輸出為true。
使用equals()方法既要比較位址值又要比較值是否相同,所以str1.equals(str2)輸出也為true。
下面這句話在記憶體中建立了幾個物件?
string st1 =
newstring
(「abc」)
;
輸出結果:
2個分析:
在記憶體中建立了兩個物件,new 是在堆記憶體中建立的物件,』『abc』'是在常量池中建立的物件。堆記憶體中的物件是常量池物件的乙個拷貝副本。
當我們看到了new這個關鍵字,就要想到只要是new出來的物件都是在堆記憶體中儲存
判定以下定義為string型別的st1和st2是否相等?
package string;
public
class
compare_string
}
輸出結果:
false、true
分析:new關鍵字,物件的引用指向堆記憶體,"abc"在常量池中
判定以下定義為string型別的st1和st2是否相等
public
class
compare_string
}
輸出結果:
true、true
分析:「a」 + 「b」 + "c"本來就是字串常量,字串拼接後還是字串,在常量池中儲存,常量池中存在乙個物件就不會再重複建立乙個相同的物件,所以都為true。
判斷以下st2和st3是否相等
package string;
public
class
compare_string
}
面試官揭秘500強面試題
新春剛過,新一輪人才的競爭又將展開,面試和複試似乎已成為一般企業招聘不可或缺的環節,而優秀的企業必有獨特的選擇人才的方式,那麼您知道世界500 強的面試題有什麼不同嗎?布萊爾 沃森,這位25年來500強公司的面試官,首次揭秘對答的所有問題和成功應試的秘訣。本書的問題,是軟體業人士在面試時常問的,其中...
Redis吊打面試官的經典面試題整理
1 redis為什麼是key,value的,為什麼不是支援sql的?這題第一眼看到有點懵逼 選擇key value的原因 key value簡單粗暴,使用方便?效率更佳?為什麼不支援sql 因為redis的記憶體模型是乙個hashtable,不使用表來儲存資料,也不會預定義或強制要求使用者對redi...
Redis吊打面試官的經典面試題整理
1 redis為什麼是key,value的,為什麼不是支援sql的?這題第一眼看到有點懵逼 選擇key value的原因 key value簡單粗暴,使用方便?效率更佳?為什麼不支援sql 因為redis的記憶體模型是乙個hashtable,不使用表來儲存資料,也不會預定義或強制要求使用者對redi...