Ⅰ java空字符串与null的区别和判断字符串是否为空的方法
一、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") ;
ps:=左边的是存放在栈中(stack),=右边是存放在堆中(heap)。
二、判断字符串是否为空的方法
String str = null;
if(str.equals("") || str= == null){//会抛出异常
System.out.println("成功");
}
Ⅱ Java空字符串与null的区别和判断字符串是否为空的方法
以下是 Java 判断字符串是否为空的三种方法.
方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低.
1:if(s == null || s.equals(""));
方法二: 比较字符串长度, 效率高, 是我知道的最好一个方法.
2:if(s == null || s.length() <= 0);
方法三: Java SE 6.0 才开始提供的方法, 效率和方法二几乎相等, 但出于兼容性考虑, 推荐使用方法
3:if(s == null || s.isEmpty());
Ⅲ java 空字符串与null区别
做成员变量(字段/属性/类变量)时,如果只写String str;那么是默认赋值为null的。
做局部变量(方法里的变量)时,如果只写String str;是不会默认赋值null的,这里仅声明了一个str变量,在栈内存中有定义,但没有任何值,null其实也是一种值。此时任何调用str的操作,编译时就均会报错,是error,不是异常。null的话,你屏幕输出(toString方法)的结果为字符串null,但其它调用str的操作,编译可通过,运行时会空指针异常,此时是异常。
String str = ""; // 这个跟"abc"、"中国",本质上这都一样,只是空串,长度为0罢了
""是空字符串,但是也是字符串,没有什么东西。
而null是空的意思,什么都没有,没有地址。
Ⅳ 你好,Java的空字符串和null有什么区别
一般情况下 . java中的null就是指的空 . 但是稍微注意的是 空字符串"" 和null是有区别的 "" 代表有字符串, 但是字符串内容为空, 长度为0 null表示对象为空 如果用为null的对象去调用方法, 就会出现空指针异常 所以 在字符串进行内容比较时
Ⅳ null和空字符有区别吗
null和空字符的区别:
1、NULL:代表声明了一个空对象,不是一个字符串,可以赋给任何对象。
空字符:代表声明了一个对象实例,这个对象实例的值是一个长度为0的空字符串。
2、String s=null; 只是定义了一个句柄,即你有了个引用,但是这个引用未指向任何内存空间。
String s=”“; 这个引用已经指向了一块是空字符串的内存空间,是一个实际的东东了,所以可以对它操作。
String s=”a”和String s=new String(“a”);是有本质上的区别的 :
(1) 前者是在字符串池里写入一个字符’a’,然后用s指向它; 后者是在堆上创建一个内容为”a”的字符串对象。
(2) String str=”aaa”; //于栈上分配内存 ;String str=new String(“aaa”); //于堆上分配内存