java String 类的一些理解 关于==、equals、null

2016-02-19 11:42 0 1 收藏

下面图老师小编要向大家介绍下java String 类的一些理解 关于==、equals、null,看起来复杂实则是简单的,掌握好技巧就OK,喜欢就赶紧收藏起来吧!

【 tulaoshi.com - 编程语言 】

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,否则结果会不太让你爽啊!

来源:https://www.tulaoshi.com/n/20160219/1598312.html

延伸阅读
主要说说Java的几大块吧,无法说得很细,因为其实每一块拿出来都能说很多,我就说一下这几块学习的时候的重点或者应该注意的东西。 数值类型: 虽然是面向对象的语言,但是在使用上数值类型还是必不可少的,如果在C的学习中已经掌握了C的数值计算和转换规则,那我想这里应该没有什么问题,只有两点需要注意:1、14.0这样的浮点常...
标签: Web开发
本文总结网页制作中关于CSS样式表应用的一些基础技巧,希望大家掌握!谢谢支持网页教学网。 一、关于注释 在创建xhtml+CSS网站时,CSS中的注释非常重要。在创建CSS样式时,应当保持随手注释的习惯。一般的,我习惯于使用/* 注释内容 */的格式来写注释,因为在EditPlus等具有高亮功能的编辑器里,使用C语言中常用的/***************/之类...
孕前有哪些优生措施?     孕前期是指从确定婚姻对象到婚后受孕为止的一段时期,包括婚前、新婚及婚后到妊娠前的三个阶段。在此期做好生殖健康保护,能有力地保障健康的婚姻生活,孕育健康的后代。在婚前应适当了解性卫生知识、生育知识和环境优生知识,应防止近亲结婚。       近亲结婚是指直系血...
标签: 孕前
关于准备怀孕的一些疑问 levi~s:帮朋友问,她今年32,中学老师,天天吃粉笔灰。老公,设计制图,天天对着电脑。两人打算要孩子,有几个问题想问大家。 问题一:电脑辐射会影响精子质量和怀孕吗? 问题二:听说男性常年坐姿工作容易生女孩,是真的吗?他们想要儿子。tulaoshi.com 问题三:没做过婚...
    在编程时,经常有一些针对目录的操作,如打开目录对话框选择一个目录,直接创建多级目录,直接删除多级目录,判定某个目录是否存在等。本文就这些问题给出编程实现方法,并给出具体的程序代码,供各位编程爱好者参考。 一、判定目录是否存在:   C++ Builder中提供了检查文件是否存在的函数File...

经验教程

279

收藏

25
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部