知识大全 正确使用String类应注意的几点
Posted 操作
篇首语:前方无绝路,希望在转角。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 正确使用String类应注意的几点相关的知识,希望对你有一定的参考价值。
正确使用String类应注意的几点! 以下文字资料是由(历史新知网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
java lang String类对大家来说最熟悉不过了 我们写java程序很少能不用String的 本文讲述如何正确的使用String 内容主要涉及初始化 串联和比较等操作
首先我们必须清楚的一点是String类是final类型的 因此你不可以继承这个类 不能修改这个类 我们使用String的时候非常简单 通常都是String s = hello 但是Java API中同时提供了一个构造函数为String(String s) 因此你也可以这样使用String s = new String( hello ) 对于后面这样初始化一个String的方式是不推荐的 因为new操作符意味着将会在heap上生成一个新的对象 如果这样的操作发生在一个循环中 那么代价是惨重的 比如
Java代码
for(int i = ;i< ;i++)
String s = new String( hello );
这将会创建 个String类型的对象 由于String类是final的 因此这样的操作事实上是每次都生成了一个新的String对象的 如果你使用String s = hello ;那么就可以实现复用了 为什么可以复用呢 下面会有解释
当我们使用 + 实现串联操作的时候 比如String s = hello + world ;其实是通过StringBuffer类的append()方法实现的 最后返回String给s 如果有兴趣的话 你可以写一个简?在使用串联的时候我们同样应该注意String是final类 如果你需要多次串联比如
Java代码
String sql = xxx ;
sql = xxxx ;
sql = ssssss ;
那么为了提高效率节省空间 我们应该自己用StringBuffer来替代 + ;
通常对String的比较有两种情况 一个是使用== 另一个是使用equals()方法 注意==是对对象的地址进行比较的 而String中的equals()方法是覆蓋了Object类的方法 并且实现为对String对象的内容的比较 所以String s = new String( hello );String s = new String( hello ) 我们对s 和s 进行上述比较的时候 前者应该返回false 因为使用new生成的是两个不同的对象 后者应该返回true因为他们的内容是一样的 都是 hello 那么如果我们还有一个String s = hello ;他和s 的比较应该是什么样子的呢 答案是s ==s 为false equals的比较位true 事实上String类是维持着一个String池的 这个池初始化为空的 当我们String x = hello 的时候 hello就会被放入这个池中 当我们再次String y = hello 的时候 他首先去检查池中是否存在一个和hello内容一样的对象 如果存在的话就会把这个引用返回给y 如果不存在的话 就会创建一个并放入到池中 这样就实现了复用 在String有一个方法intern()他可以把String的对象放入到池冲并返回池中的对象 如果我们对s (String s = new String( hello ))调用intern s = s intern()这时候 我们再把s 和s 进行 == 的判断 你会发现结果返回true!
看下面的例子
Java代码
public class StringTest
public static void main(String[] args)
String s = hello ;
String s = new String( hello );
String s = new String( hello );
testString(s s s );
s = s intern();
System out println( after s intern );
testString(s s s );
private static void testString(String s String s String s )
System out println( s = s is +(s ==s ));
System out println( s = s is +(s ==s ));
System out println( s equals(s ) is +s equals(s ));
System out println( s equals(s ) is +s equals(s ));
输出结果为
s = s is false
s = s is false
s equals(s ) is true
s equals(s ) is true
after s intern
s = s is true
s = s is false
s equals(s ) is true
cha138/Article/program/Java/ky/201311/28846相关参考
农药使用不当,不仅达不到预期的效果,有时甚至会产生药害,给生产造成极大损失。现将使用农药过程中的几点注意事项介绍一下,以供参考。1、生物制剂中的Bt、青虫菌、杀螟杆菌等是一类使用普遍的细菌农药,它的杀
牛皮癣的偏方在治疗牛皮癣方面有着非常显著的效果,所以对于患者来讲应该选择正确的偏方进行治疗。那么在使用牛皮癣偏方时,患者应该注意哪些问题呢?下面我们来介绍下皮肤病专家解释说,使用牛皮癣的偏方时,患者应
对String的几个错误认识[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 昨天调试一段程
对String的几个错误认识[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 从这段源码中我
玉米种子选择时的几点注意事项 近年来由于种子市场上玉米品种繁多,农民朋友们选购种子无所适从,选用合适的玉米种子,对于有好收成起到关键性的作用,一般选购玉米种子时需注意以下几点: 1、要选购经过国审
玉米种子选择时的几点注意事项 近年来由于种子市场上玉米品种繁多,农民朋友们选购种子无所适从,选用合适的玉米种子,对于有好收成起到关键性的作用,一般选购玉米种子时需注意以下几点: 1、要选购经过国审
白癜风患者需要注意的几点,如今越来越多的疾病都出现在我们的身边,白癜风就是发病率比较高的一种疾病,这种疾病的发生会给患者的生活带来很大的影响,所以在得了白癜风之后,患者就非常担心,不知道怎么治疗,不过
许多农民朋友为减少投入而自留一些小麦种子,如何保证小麦种子的纯度和质量,应注意以下几点:去劣去杂在小麦抽穗至成熟期间,要反复进行去杂去劣,严格剔除杂、劣、病、虫植株,应整株拔除,并且带出田外。防止混杂
许多农民朋友为减少投入而自留一些小麦种子,如何保证小麦种子的纯度和质量,应注意以下几点:去劣去杂在小麦抽穗至成熟期间,要反复进行去杂去劣,严格剔除杂、劣、病、虫植株,应整株拔除,并且带出田外。防止混杂
儿童白癜风饮食需要注意的几点,在如今我们发现白癜风的发病人群是越来越多,有很多人都得了白癜风,白癜风对于我们的危害很大,所以大家必须要多加注意,如果是儿童得了白癜风,家长就要及时到医院为孩子进行治疗,