关闭

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

标签: stringjava对象
338人阅读 评论(0) 收藏 举报

当我们创建对象是,习惯用""去定义,比如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

  相关文章推荐
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:175926次
    • 积分:7961
    • 等级:
    • 排名:第2682名
    • 原创:186篇
    • 转载:3篇
    • 译文:0篇
    • 评论:2613条
    博客专栏
    最新评论