【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="";  分配了一个内存空间,存入了一个字符串对象

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huo065000/article/details/51549376
文章标签: string java 对象
想对作者说点什么? 我来说一句

java四种创建对象的方式

2013年06月02日 78KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭