java String 类的一些理解 关于==、equals、null                
                
                    所属分类:
                        软件编程 / java                    
                    阅读数:
                        78
                    
                        收藏 0赞 0分享
                    
                 
                
                    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,否则结果会不太让你爽啊!                                    
             
            
                
                Javaweb 鼠标移入移出表格颜色变化的实现
这篇文章主要介绍了Javaweb 鼠标移入移出表格颜色变化的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
                    
                    收藏 0赞 0分享
Java 实现图片压缩的两种方法
这篇文章主要介绍了Java 实现图片压缩的两种方法,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
                    
                    收藏 0赞 0分享
win10操作系统下重启电脑java环境变量失效
这篇文章主要介绍了win10操作系统下重启电脑java环境变量失效,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
                    
                    收藏 0赞 0分享
Java实现批量修改文件名和重命名的方法
这篇文章主要介绍了Java实现批量修改文件名和重命名的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
                    
                    收藏 0赞 0分享
关于Java HashMap自动排序的简单剖析
这篇文章主要给大家介绍了关于Java HashMap自动排序的简单剖析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
                    
                    收藏 0赞 0分享
深入浅析jni中的java接口使用
这篇文章主要介绍了jni中的java接口使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
                    
                    收藏 0赞 0分享