日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

OCA第7部分的Java难题

發布時間:2023/12/3 java 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OCA第7部分的Java难题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在OCA系列的Java Puzzlers的這一部分中,我將展示定義字符串的多種方法以及與此相關的潛在驚喜。 創建字符串的兩種基本類型是使用new關鍵字和僅使用字符串文字來創建。

String strWithNew = new String( "hey" ); String strWithLiteral = "ho" ;

由于經常使用字符串,因此JVM使用字符串池并使用其中的值,因此不必一次又一次為相同的值創建新對象。 因此,看到相同字符串文字的對象地址相同就不足為奇了。

public class Puzzler { public static void main(String[] args) { String s1 = "myString" ; String s2 = "myString" ; System.out.println(s1 == s2); // true } }

好吧,這應該也一樣吧?

public class Puzzler { public static void main(String[] args) { String s1 = new String( "myString" ); String s2 = new String( "myString" ); System.out.println(s1 == s2); } }

并不是的。 這將打印“ false”。 因此,如果我使用文字“ myString”創建一個新字符串,則將其放置在字符串池中。 如果我使用new關鍵字創建它,則不會在池中搜索它,并且在創建它時,也不會將其放在字符串池中。

public class Puzzler { public static void main(String[] args) { String s1 = new String( "myString" ); String s2 = new String( "myString" ); String s3 = "myString" ; String s4 = "myString" ; System.out.println(s1 == s2); System.out.println(s2 == s3); System.out.println(s3 == s4); System.out.println(s1 == s4); } }

我希望你能猜出上面發生了什么。 s1創建一個新字符串,并且不將其放入池中,s2執行相同的操作。 s3看一看字符串池,看不到myString并將其創建并放置在池中。 s4說:“好吧,它在游泳池里”。 因此,如果我們計算創建的字符串數,則為3,如果計算池中放置的內容,則為1(myString)。 false,false,true,false是打印到控制臺的內容。

翻譯自: https://www.javacodegeeks.com/2020/05/java-puzzlers-from-oca-part-7.html

總結

以上是生活随笔為你收集整理的OCA第7部分的Java难题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。