可能重复:
基本Java问题:字符串相等
特定
String s= "God";
String k= "God";
Run Code Online (Sandbox Code Playgroud)
都将s和k被认为是指同一个String对象吗?是否有一个String对象实例?
是的,Java应该优化它以便s == k节省内存.(引用s和k引用同一个对象).
由于java没有指针,你不能改变s或k指向的字符串,但你当然可以改变s或k指向的字符串.如果java允许指针,那么对s指向的改变,以及上面的优化将产生不良后果.
这就是为什么不应该使用像"LOCK"这样的字符串来锁定线程的原因,因为如果第三方jar文件做同样的事情,你将在不知不觉中使用相同的对象作为线程锁,这可能会产生非常奇怪的和难以发现的错误.
| 归档时间: |
|
| 查看次数: |
206 次 |
| 最近记录: |