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

当我们创建对象是,习惯用""去定义,比如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="";  分配了一个内存空间,存入了一个字符串对象

posted on 2016-05-31 21:59  huohuoL  阅读(135)  评论(0编辑  收藏  举报

导航