JAVA中,字符串为null和字符串为""有什么区别?

如题所述

做成员变量(字段/属性/类变量)时,如果只写String str;那么是默认赋值为null的。

做局部变量(方法里的变量)时,如果只写String str;是不会默认赋值null的,这里仅声明了一个str变量,在栈内存中有定义,但没有任何值,null其实也是一种值。此时任何调用str的操作,编译时就均会报错,是error,不是异常。null的话,你屏幕输出(toString方法)的结果为字符串null,但其它调用str的操作,编译可通过,运行时会空指针异常,此时是异常。

String str = ""; // 这个跟"abc"、"中国",本质上这都一样,只是空串,长度为0罢了
""是空字符串,但是也是字符串,没有什么东西。
而null是空的意思,什么都没有,没有地址。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-07
可以这么理解,""空串是有引用指向这个字符串,但是所指向的是一个空串。
null是这个引用没有指向一个字符串。
第2个回答  2012-05-07
String str1=null;
String str2="";

System.out.print(str1.length);//空指针异常
System.out.print(str2.length);//无异常

意思就是
null 那个对象没有内存空间
"" 有内存空间 值为空追问

谢谢,也很好!

第3个回答  2012-05-07
字符串为“”,说明是有值的,值为“”。而null没有值
第4个回答  2012-05-07
null:不分配内存空间

"":分配内存空间

Java空字符串与null的区别和判断字符串是否为空的方法
null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ;""表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串String str = "" ;2、内存分配 String str = null ; 表示声明一个字符串对象的引用,但指向为null,也就是说还没有指向任何的...

Java空字符串与null的区别和判断字符串是否为空的方法
虽然都是没有信息,但是null代表堆内存中根本没有这个东西,而空字符串就完全不同了,空字符串也是字符串,他是有内存空间的 判断字符串是否为空 \/** * 判断字符串是否为空 * @param str 字符串 * @return 是否为空 *\/public static boolean isEmptyString(String str) { return str == nu...

java 中 null和空字符串有什么区别
java中null的话,是因为对象并没有占用内存空间,而是空字符串是占用了内存地址的

null和空字符串的区别
null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ;""表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串String str = "" ;String str = null ; 表示声明一个字符串对象的引用,但指向为null,也就是说还没有指向任何的内存空间;Stri...

java 字符串为null 如何判断
Java空字符串与null的区别:1、类型null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ;""表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串String str = "" ;2、内存分配String str = null ; 表示声明一个字符串对象的引用,但指向为...

Java的string初始化为null,为什么把null当成了字符串?而不是空
没懂您的意思,String默认值是nulll,"null"和null是 有区别的。"null"是一个字符串,就和"abc"一个意思。也就是String,在Java里,它属于包装类型,默认值是null(如果你不赋值的情况下)

Java中的字符串被赋值null和""有区别么?
两者是有区别的:堆栈中:假设声明String s1 = null;String s2 = “”;其实上栈中会有存放s1,但是堆中没有产生数据;但是对于第二条语句,不仅栈中有s2,堆中也会有“”(空字符串,假如以前存在的话,s2会直接指向,假如没有,就会新建一个);方法引用:s1为null,不能调用String的任何方法...

java中的空串""和null的区别讲解
空串"",的意思是:有个串,这个串有个合法的地址,只是里面的内容为“”(空)。null,的意思是:地址就是“空”。在C及其衍生的语言里,包括java,“空”被认为是个非法地址,因此不存在“串”。希望你能明白了,有问题继续交流,谢谢

java字符串判断是否为空问题?
什么是 Java 中的“空”字符串?“空字符串”在Java中指的是一个字面上等于“零”的保留字。这意味着字符串不指向任何物理地址。在 Java 编程语言中,“空”字符串表示无。它表明字符串变量实际上并不绑定到任何内存位置。在编程中,经常字符串被分配为 null 以表示它是完全自由的,并将用于程序中...

java String 初始化 是 null 还是 “” 他们的区别?
String a="";String a1=null;第一个有值,固定的。第二个是null,值在下面可以改变。另一方面,null在堆内存没东西,此时的字符串指针指向的是一个未知的地方,而""在堆内存有东西,只不过位空,此时字符串指针就指向了字符a所在的存储单元。

相似回答