这就关系到java语言的设计了,为了区分""空字符串和null,
当String对象是null时,
String str = null;
str.trim();//像这样就会抛空指针
而:
String str1 = "";
str1.trim();//这里就不会
str,str1都会栈上保存一个地址,指向内存堆中的某个空间,这个空间保存的是它们各自的实际值。
这里,str1是一个空字符串的对象,里面存放着"";
而,str这个地址是没有明确指向的,它哪也不指,其内容为0x00000000
试想一下,如果null和""输出的结果都是"",当代码量一大,那就会在出错的时候很难调错,因为它们在输出时候的效果是一样的,我想就是出于这样的考虑,java的设计者才会,让jvm在碰到null输出或字符拼接时,给上"null"字样,便于开发,和调错. |