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

原创 2016年05月31日 21:58:34

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

Java中string 创建对象时 “”和null的区别

string “” 和 null 区别
  • yali1990515
  • yali1990515
  • 2015年08月12日 16:52
  • 4021

String a="123"创建对象个数问题

String类型对象创建个数,我总结为一下几种情况(均不考虑字符串在常量池中已存在的情况): 1 String a="123"; 创建了1个对象 jvm在编译阶段会判断常量池中是否有 "123"...
  • baidu_27969827
  • baidu_27969827
  • 2018年02月01日 09:28
  • 27

Java中String对象创建机制详解(面试必问)

Java String面试相关问题详解,四种String对象创建机制,String本质,String与StringBuffer异同,常量池,Java内存模型;...
  • zhangliangzi
  • zhangliangzi
  • 2015年11月27日 21:40
  • 2001

JAVA创建String对象的问题

最近在论坛上看到关于String s = new String("XYZ") + new String("XYZ");到底创建几个对象的讨论,觉得比较有意思,在此总结一下。在JAVA中除了8种基本类型...
  • wuxianglong
  • wuxianglong
  • 2011年01月06日 09:14
  • 5335

【Java基础提高】深入分析String(四)

我是小毛驴,一个游戏人,我的梦想是世界和平。转载请注明出处:http://blog.csdn.net/liulongling/article/details/50347279 一、写在前面   本...
  • liulongling
  • liulongling
  • 2015年12月17日 22:01
  • 4333

java的String类中的null和isEmpty()的区别

代码示例如下: package com.example; public class MyClass { public static void main(String[] args){ ...
  • u010661782
  • u010661782
  • 2016年05月10日 21:12
  • 721

String创建对象理解

对String的创建过程进一步理解。
  • njiang
  • njiang
  • 2015年02月27日 20:45
  • 1244

java string为null时的字符串拼接

public class HelloWorld { public static void main(String args[]) { String s = null; ...
  • zy_281870667
  • zy_281870667
  • 2016年01月22日 16:01
  • 3851

Java中string的null和“”对比

Java中字符串的比对用string.equals(object)来做, 但与空字符串比对的时候要注意,如果是“”话,用string.equals(“”), 如果是null的时候,string.e...
  • lincyang
  • lincyang
  • 2010年08月13日 13:35
  • 4148

For input string: "null"

java.lang.NumberFormatException: For input string: "null"   在开发中你是否遇到过这样的问题,不管...
  • suyujiezhang
  • suyujiezhang
  • 2016年05月24日 17:29
  • 12281
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Java基础一】String创建对象"" && null
举报原因:
原因补充:

(最多只允许输入30个字)