String,实例,变量

本文详细解析了Java中String类的使用方法,包括String实例的生成、操作和生命周期,着重讨论了字符串拼接、null值的处理以及newString()方法的实现原理。同时,介绍了String实例在内存中的存储机制,包括字符串常量池的作用和字符串字面量的驻留现象。
1 String s1 = "a";
2 String s2 = s1.concat("");
3 String s3 = null;
4 new String(s1);

这段代码会涉及3个String类型的变量, 
1、s1,指向下面String实例的1 
2、s2,指向与s1相同 
3、s3,值为null,不指向任何实例 

以及3个String实例, 
1、"a"字面量对应的驻留的字符串常量的String实例 
2、""字面量对应的驻留的字符串常量的String实例 
String.concat()是个有趣的方法,当发现传入的参数是空字符串时会返回this,所以这里不会额外创建新的String实例) 
3、通过new String(String)创建的新String实例;没有任何变量指向它。

 

String s = new String("xyz");
在运行时涉及几个String实例?

答案:两个,一个是字符串字面量"xyz"所对应的、驻留(intern)在一个全局共享的字符串常量池中的实例,另一个是通过new String(String)创建并初始化的、内容与"xyz"相同的实例
String s = new String("xyz");
涉及用户声明的几个String类型的变量?

答案:一个,就是String s。


String s = null;
涉及用户声明的几个String类型的变量?

答案:同上。

 

 摘录于:http://www.iteye.com/topic/774673

转载于:https://www.cnblogs.com/perfy/archive/2012/09/10/2678901.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值