文章詳情頁
Java 中各種空(""、u0000、null)的區別?
瀏覽:156日期:2024-01-19 13:53:23
問題描述
String s1 = '';String s2 = 'u0000';String s3 = null;
s1、s2、s3 的區別,分別在字符串常量池和棧中的儲存情況?
問題解答
回答1:從class字節碼的角度來理解吧1.String s1 = ''的情況,下面是編譯后的字節碼,可以看到,這種情況s1='aaa'其實沒什么區別的,都是從常量池推一個字符串到棧頂,并賦給本地變量。
0: ldc #16 // String2: astore_13: return
2.String s2=null的情況,這個時候,并沒有在常量池中生成任何的字符串常量,僅僅是將null推送到棧頂賦值給變量。
0: aconst_null1: astore_12: return
3.String s3 = 'u0000'的情況,會在常量池生成一個表示NUL的一個字符串,也就是所謂的Control Character。
0: ldc #16 // String NUL2: astore_13: return回答2:
測試環境:jdk-8.0-102
標簽:
java
相關文章:
1. android - weex 項目createInstanceReferenceError: Vue is not defined2. android - 哪位大神知道java后臺的api接口的對象傳到前端后輸入日期報錯,是什么情況?求大神指點3. PHPExcel表格導入數據庫怎么導入4. pdo 寫入到數據庫的內容為中文的時候寫入亂碼5. javascript - 如圖,百度首頁,查看源代碼為什么什么都沒有?6. vue2.0+webpack 如何使用bootstrap?7. PHP類封裝的插入數據,總是插入不成功,返回false;8. mac連接阿里云docker集群,已經卡了2天了,求問?9. 微信渠道二維碼怎么使用?10. html5 - html元素select下拉列表在原生app里面為什么不能彈框顯示?
排行榜
