我的日常

登录/注册
您现在的位置:论坛 资料库 JAVA开发 > Java字符串String
总共48087条微博

动态微博

查看: 1623|回复: 0

Java字符串String

[复制链接]

326

主题

72

听众

999

金钱

实习版主

该用户从未签到

优秀版主

跳转到指定楼层
楼主
发表于 2014-11-07 16:19:34 |只看该作者 |倒序浏览
String,StringBuffer的和StringBuilder的区别?

java中String是不可变的和无法改变的,所以每当我们做字符串操作时,它会创建一个新的String。

StringBuffer 线程安全的而StringBuilder不是线程安全的。

所以在多个线程环境下操作的字符串时,我们应该用StringBuffer,但在单线程环境中,我们应该使用StringBuilder。

因为在单线程中不需要考虑线程同步的问题,StringBuilder性能速度比StringBuffer快。

在Java中String是不可变的和无法改变的,有什么好处?

1,可以使用字符串池来存储字符串,提高存储效率。

2,增加安全性,在存储一些敏感信息,如数据库用户名,密码等是,黑客不能改变它的值。java的类加载器加载类时,字符串的不变性可以确保正确的类被加装。

3,由于String是不可变的,它是安全的,在多线程环境下,我们不需要任何同步。

为什么存储密码时,使用char数组优于String?

String是不可变的并且存储在字符串池中。一旦它被创造,就会放在字符串池中,直到被垃圾回收,尽管我们已经使用完密码了,但是密码信息还可能长时间存留在字符串池中没有释放。所以这是一个安全风险,因为任何人都能够访问内存转储从而可以找到密码明文。

如果我们使用char数组来存储密码,一旦我们使用完了,我们可以将其设置为空。因此,我们可以控制它的在内存中的存储时间,避免String带来的安全威胁问题。

Java如何检查两个字符串是否相等的?

有两种方法来检查两个字符串是否相等 – 使用“==”运算符或使用equals方法。当我们使用“==”操作符,它会检查字符串的值以和引用。

在Java中为什么我们一般用String作为HashMap的key?

由于String是不可变的,它的哈希码在创建时会被缓存,而并不需要再重新计算。使用String作为HashMap 键时候,处理速度比其他对象键快。这就是为什么字符串作为HashMap的键来的原因。

我希望在这里列出的问题及答案能帮助你在Java面试过关,如果有错误的地方,请一定告诉我。



科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、科帮网管理员和版主有权不事先通知发贴者而删除本文


JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

快速回复
您需要登录后才可以回帖 登录 | 立即注册

   

关闭

站长推荐上一条 /1 下一条

发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
快速回复 返回顶部 返回列表