Java 中各种空(""、\u0000、null)的区别?
PHPz
PHPz 2017-04-18 10:51:28
0
2
879
String s1 = "";
String s2 = "\u0000";
String s3 = null;

s1、s2、s3 的区别,分别在字符串常量池和栈中的储存情况?

PHPz
PHPz

学习是最好的投资!

全員に返信(2)
巴扎黑

クラスバイトコードの観点から理解しましょう
1.String s1 = ""、以下はコンパイルされたバイトコードです。この場合、実際には違いがないことがわかります s1="aaa"、これらはすべて文字列をプッシュします定数プールからスタックの先頭に移動し、それをローカル変数に代入します。

リーリー

2. String s2=null の場合、この時点では定数プールに文字列定数は生成されず、null のみがスタックの先頭にプッシュされて変数に代入されます。

リーリー

3. String s3 = "u0000" の場合、NUL を表す文字列、いわゆる制御文字が定数プールに生成されます。

リーリー
いいねを押す +0
洪涛

テスト環境: jdk-8.0-102

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!