关于String的初始化和实例化

关于String的初始化和实例化

实例化一般是由类创建的对象,在构造一个实例的时候需要在内存中开辟空间。 例如以下代码:

String a;
String b = new String();

这两种已经创建一个String对象,并完成了实例化。但是他们两者有什么不同呢?下面便进项测试

public class Pianweny {
	public static void main(String[] args) {
		//第一种在运行前报错
		//错误提示是:局部变量 a 可能尚未初始化
		String a;
		a.length();
		//第二种在运行时报错
		//错误为:NullPointerException
		String b = null;
		b.length();
		//第三种正常运行,值为0
		String c = "";
		c.length();
		//第四种正常运行,值为0
		String d = new String();
		d.length();
	}
}

这四种都将对象实例化了,实例化用通俗的话说就是将一个虚无的东西起个名字,但是并没有实体。
初始化是实例化的基础上,并且对 对象中的值进行赋一下初始值。很显然一个对象没有被实例化必不可能被初始化
然后我们分析一下上面代码的四种情况。
第一种情况便是未初始化,所以在其他地方使用它的时候便是报出可能尚未初始化的错误(就像一个没有实体的东西自然无法使用)。
第二种情况的b已经被初始化了,不过初始化的值为null,也就是空值。但是该引用没有指向任何对象.但可以把它作为参数传递或其它使用,但是不能调用它作为对象的方法。
第三种和第四种都完成初始化,并且初始化的值都为“”,也就是空字符串。二者也有一定的区别,区别是什么就不在这里提及,在其它博客中会有更详细的说明。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值