可能重复:
Java内存中究竟为空
有没有人知道如何在对象或任何东西的内存中表示空值.在dot net中,它由空指示符布尔值和相应类型的值表示(请参阅此处).那么有谁知道它是如何在java中完成的?
如果我声明一些字符串变量
String str = null;
Run Code Online (Sandbox Code Playgroud)
str?str被声明的变量?null内存中有值,那么null二进制的表示究竟是什么?这是关于Java中字符串初始化的一些先前问题的后续问题.
经过Java的一些小测试,我面临以下问题:
为什么我可以执行此语句
String concatenated = str2 + " a_literal_string";
Run Code Online (Sandbox Code Playgroud)
当str2一个String初始化对象null(String str2 = null;),但我不能调用方法toString()上str2?那么Java如何进行空String对象和字符串文字的连接?
顺便说一下,我还尝试将一个初始化为null的字符串"a_literal_string"和字符串文字连接起来,我"null a_literal_string"在控制台中也有同样的东西.那么无论哪种null都给出同样的东西?
PS:System.out.println(concatenated);给空a_literal_string作为控制台输出.