javastringnull
‘壹’ java中String的null问题
这个有什么不好理解的
s + " " + s == null 这个优先级你没搞清楚。比较运算符优先级低,比较运算符左边的结果是"null null"字符串右边是null。当然不相等了
我猜你可能想要的是System.out.println(s + " " + (s == null));这样的。结果是null true
‘贰’ java中String的null和""
在使用"+"操作符时,如果有一个操作数是字符串,其他操作数会被转换成字符串
s=null时s+t结果为“nullab”
s=""时s+t结果为“ab”
而equals方法比较的是两个对象的内容是否相同,所以会有上面的结果
注:将s和t输出就知道了
‘叁’ java String 初始化 是 null 还是 “” 他们的区别
你在创建的时候,没有初始化时或赋值时,打印出的是null
因为String类型是一个对象,而不像int之类是基本类型有初始默认值
如果在初始时赋值“”(空值),那也算创建对象了(就是相当于new 操作)
打印出的为“”(空值)
‘肆’ java中string类型变量的默认初始值是什么
java中string类型变量的默认初始值是为null。
‘伍’ Java的string初始化为null,为什么把null当成了字符串而不是空
没懂您的意思,String默认值是nulll,"null"和null是 有区别的。"null"是一个字符串,就和"abc"一个意思。
也就是String,在Java里,它属于包装类型,默认值是null(如果你不赋值的情况下)
‘陆’ java 字符串为null 如何判断
定义 String str;
判断字符串是否空涉及两个层次:
1、是首先判断字符串变量的引用是否为空,即空对象的概念,用null来判断,可以用if(str==null) 判断 str是否为空;(注意不能用equals(null),在参数为null情况下,返回值永远是false);
2、是在不为空对象的情况下,在判断字符串对象是否为空串,即长度为0.用length()==0。 关键是搞清楚字符串对象为空和空字符串有区别。
拓展内容
Java空字符串与null的区别:
1、类型
null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ;
""表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串String str = "" ;
2、内存分配
String str = null ; 表示声明一个字符串对象的引用,但指向为null,也就是说还没有指向任何的内存空间;
String str = ""; 表示声明一个字符串类型的引用,其值为""空字符串,这个str引用指向的是空字符串的内存空间;
在java中变量和引用变量是存在栈中(stack),而对象(new产生的)都是存放在堆中(heap)。
如下:
String str = new String("abc") ;
‘柒’ java String 初始化 是 null 还是 “” 他们的区别
String a="";
String a1=null;
第一个有值,固定的。
第二个是null,值在下面可以改变。
另一方面,null在堆内存没东西,此时的字符串指针指向的是一个未知的地方,
而""在堆内存有东西,只不过位空,此时字符串指针就指向了字符a所在的存储单元。
‘捌’ java String类初始为null问题
当每个对象以字符串返回时都会试图用它的toString()方法,而null关键字对应“null”
‘玖’ java中,String a = null , String a = "" 和String a 这三个之间的区别和各自适合的用法
String a; 申明一个string类型的 a,即没有在申请内存地址,更没有在内存任何指向引用地址;
String a = null ; 申明一个string类型的 a,同时在内存里申请了一个地址,但是该地址不指向任何引用地址;
String a = "" ;申明一个string类型的 a,既在内存里申请了地址,该地址又指向一个引用该字符串的引用地址;
一般来说 字符串的使用 最好用String a = "" ;语句,
可以防止后面的程序因引用地址混乱而找不到的异常!
String a = null ; String a; 劲量少用! 能不用就不要使用!