java怎么判斷string是不是int?
首先,在編譯期間有種東西叫做常量折疊比如前端編譯器(簡單理解就是javac)會給你把值算出來,也就是說變成字節碼后,會變成下面這樣于是你的代碼相當于然后,題主或許知道有種東西叫常量池比如str1和str2是一模一樣的對吧,然后String又是不可變的,這就沒有必要弄出兩個"ab"對象了,在內存中(常量池中)只有一個"ab",str1和str2都指向它,所以這里str1=str2應該不難理解。于是System.out.println(s1 == "ab");結果是true最后,對字符串進行+操作的內部實現也就是String s3 = s2 + "b";內部是怎么回事,其實就是創建了一個StringBuilder對象,然后一直append。換句話說String s3 = s2 + "b";就是String s3 = new StringBuilder().append(s2).append("b").toString()。唉,直接看StringBuilder的toString方法吧:它new了一個對象,new出來的東西位于堆上,也就是說s3指向了堆上的一塊內存,而s1指向的東東位于常量池,所以使用==會返回false,這就是你第二次打印是false的原因擴展,字符串內部化技術String類提供了intern()方法來返回與當前字符串內容相同但已經被包含在常量池中的對象引用
上一篇二維數組大小定義
下一篇關于PLC你們是怎么學的