【Java基础一】String创建对象"" && null

来源:互联网 发布:excel批量插图软件 编辑:程序博客网 时间:2024/05/23 17:33

当我们创建对象是,习惯用""去定义,比如String a=""这样去定义一个空字符串,为何不用null去定义呢?

""null有什么区别?看如下两个demo:

看demo1:

public static void main(String[] args) {String s = null;String s1 = "ab";s = s + s1;if (s.equals(s1)) {System.out.println("s的值"+s);System.out.println(true);} else {System.out.println("s的值"+s);System.out.println(false);}}

public static void main(String[] args) {String s = "";String s1 = "ab";s = s + s1;if (s.equals(s1)) {System.out.println("s的值"+s);System.out.println(true);} else {System.out.println("s的值"+s);System.out.println(false);}}

看demo2:

public static void main(String[] args) {String s="";s.trim();}

public static void main(String[] args) {String s=null;s.trim();}

为何会出现如上两种情况?demo1相加情况是不一样的,demo2为何""是空值,而null会抛异常?

NULL代表声明了一个空对象,而不是一个字符串;对于对象而言,我们可以对其进行“=”或者“==”操作。

""代表声明了一个对象实例,它是一个长度为0的空字符串。

NULL和“”的关系其实和0与没有的关系是一样的,你说0和没有是一种概念吗?

String a=null;  null是未分配堆内存空间

String a;  分配了一个内存空间,但没有存入对象

String a="";  分配了一个内存空间,存入了一个字符串对象

0 0