Java字符串的十大问题


大约在几个月之前阅读完一本书籍,突然有了一个想法。想把关于字串符的一些问题写出来,目的是告诉大家需要关注的点。

这就是想和大家分享的关于Java字符串的10个常见问题。

一、如何比较字符串?使用”==”还是使用= ()?

简单地说,“==”测试引用是否相等,而equals()测试值是否相等。

除非你想检查两个字符串是否是相同的对象,否则应该始终使用equals()。

如果你知道有更好的概念字符串驻留。

二、为什么对于安全敏感信息,char[]优先于String ?

字符串是不可变的,这意味着一旦创建了它们,它们将保持不变,直到垃圾收集器开始工作。

对于数组,可以显式地更改其元素。

这样,安全敏感信息(例如密码)将不会出现在系统的任何地方。

三、我们可以为switch语句使用字符串吗?

是的,版本7。从JDK 7中,我们可以使用字符串作为切换条件。
在版本6之前,我们不能使用字符串作为切换条件。


四、如何将字符串转换成整数?


简单,但经常使用,有时被忽略。

五、如何分割一个字符串与空白字符?


六、substring()方法真正的功能是什么?

在JDK 6中,substring()方法为表示现有字符串的字符数组提供一个窗口,但不创建新字符串。

要创建一个由新char数组表示的新字符串,可以添加一个空字符串。

如下所示:



这将创建一个表示新字符串的新char数组。

上面的方法有时可以使代码更快,因为垃圾收集器可以收集未使用的大字符串,只保留子字符串。

在Oracle JDK 7中,substring()创建一个新的char数组,而不是使用现有的数组。

查看一下显示JDK 6和JDK 7之间的substring()差异的图表。

七、String vs StringBuilder vs StringBuffer

String vs StringBuilder:StringBuilder是可变的,这意味着你可以在创建它之后修改它。

StringBuilder与StringBuffer:StringBuffer是同步的,这意味着它是线程安全的,但比StringBuilder慢。

八、如何重复字符串?

在Python中,我们可以用数字相乘来重复一个字符串。

在Java中,我们可以使用来自Apache Commons Lang包的StringUtils的repeat()方法。


九、如何将字符串转换为日期?


十、如何计算字符在字符串中出现的次数?

使用来自apache commons lang的StringUtils。



本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
极客文库 » Java字符串的十大问题

Leave a Reply