String 类的一些理解 关于==、equals、null
来源:互联网 发布:无锡淘宝摄影 编辑:程序博客网 时间:2024/06/14 21:05
String类的一点理解
1、String 的==与equal()
在对字符串的相等判断,==判断的是地址是否相同,equal()判断的是字符值是否相同。大多数时候==跟equal()的结果都是相同的。这是因为String对象是不变模式的,如果你不是明确地new一个String对象,Java对于String对象的保存默认的是会把新生成的String对象放到一个缓冲区,然后每次判断缓冲区中是否已经有了这个对象,如果有了,那么后建立的同样字符值的String对象也会指向最初建立是该字符值对象的地址。也就是说字符值相同的时候,大多数情况下地质也是相同的。==与equal()效果是相同的。但是当对象是str = new String(“abc”)生成的而不是直接str = “abc”这样赋值生成,或者经过了一些字符串连接处理,或者通过StringBuffer等对象生成,都会在内存中开辟新的地址的,这个时候==和equal()结果是不同的。
是不是稍微有些复杂?这里需要一些关于内存,堆栈,对象保存方面的理解。我不想纠缠于这个问题的讨论。如果不能理解,那么只要记住如果你想要判断两个字符串的字符值是否相等,没有别的要求的时候,那么请使用equal()而不是==,至于什么时候需要使用==,我想当你需要的时候,你自然就会明白了。实际上,对于字符串的判断,我们很少需要用==的。
2、关于str.equal(“abc”)和”abc”.equal(str)
这个好像争论也挺多的,第一种常量写在后面可能符合大多数人的习惯,也符合我们的逻辑思维。但是需要多一个str是否为null的判断。否则这里是有可能出现异常的。而后一种写法不需要多做关于是否为null这个判断。就我个人喜好来说,比较喜欢后一种写法。
3、关于String的null
/**
* 测试java的String为null 的情况
* create date:2009-6-3
* author:Administrator
*
*/
public static void testNull(){
String a= null,b = null,c="呵呵";
System.out.println(a == null);
System.out.println(a+b+c);
}
方法运行结果:
true
nullnull呵呵
所以大家要注意了做字符串合并操作时,别忘记判断null,否则结果会不太让你爽啊!
转自:http://blog.csdn.net/shibenjie/article/details/4238744
- String 类的一些理解 关于==、equals、null
- 关于String.equals(null)
- 关于String的==和equals
- 关于String类的一些理解
- 关于equals 和 == 的理解
- 判断字符串是否为空 string != null && !string.equals("")
- String == 和 equals 的区别的个人理解
- 关于STRING的“==”与equals()方法
- java的String=a; a==null和a.equals(null)这两个判断有什么区别
- String类的equals和==
- 关于hashcode()方法和equals()方法的一些理解
- 关于hashcode和equals方法重写的一些理解!
- !=null和equals的区别
- 关于equals()和==操作的一点理解
- Java中关于==与equals的理解
- 关于equals方法和“==”的个人理解
- 关于==和equals引发的一些思考
- 关于 equals 和 == 的一些思考
- Managing ItemUpdating and ItemUpdated Events Firing Twice in a SharePoint Item Event Receiver
- 黑马程序员_反射Assembly与Type类总结
- 供应链变革专案的利器 – SCORE方法论(二)
- Oracle EBS configuration and error occurs
- (八)VS的操作和使用技巧
- String 类的一些理解 关于==、equals、null
- VC++中建立ADO操作类
- GNU Compiler for Java
- 物理层-信道复用
- xcode怎样访问资源文件中文件
- 互联网企业造手机,“小3大战”烽火再起
- xcat 安装(liunx高性能刀片集群管理软件)
- PHP相关系列 - PHP Mongodb类
- 传智播客的qqtab代码