String str;和String str=null;的區別


String str;和String str=null;的區別:

像這種String str = xxx;
不管xxx是null還是其他字符串,str這個東西都是在棧里有塊空間,可以理解為c的指針,=null的時候,里面存的是0,非null的時候存的是實際字符串的地址(堆中或者常量池中)。而String str;
這種情況,jvm同樣也為其分配了一塊空間,但是不知道值是多少
java語法要求引用之前必須初始化,所以你直接這么寫,str根本不能引用,所以無所謂。
其實jvm也完全可以不為它分配空間。這個問題,說到底,其實就是java的語法要求,必須初始化的問題。

在不為賦值str=xxx時,是不能使用str的。

https://www.debugease.com/j2se/174258.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM