java的String=a; a==null和a.equals(null)这两个判断有什么区别
1、String 的==与equal()
在对字符串的相等判断,==判断的是地址是否相同,equal()判断的是字符值是否相同。大多数时候==跟equal()的结果都是相同的。这是因为String对象是不变模式的,如果你不是明确地new一个String对象,Java对于String对象的保存默认的是会把新生成的String 对象放到一个缓冲区,然后每次判断缓冲区中是否已经有了这个对象,如果有了,那么后建立的同样字符值的String对象也会指向最初建立是该字符值对象的地址。也就是说字符值相同的`时候,大多数情况下地质也是相同的。==与equal()效果是相同的。但是当对象是str = new String(“abc”)生成的而不是直接str = “abc”这样赋值生成,或者经过了一些字符串连接处理,或者通过StringBuffer等对象生成,都会在内存中开辟新的地址的,这个时候==和 equal()结果是不同的。
是不是稍微有些复杂?这里需要一些关于内存,堆栈,对象保存方面的理解。我不想纠缠于这个问题的讨论。如果不能理解,那么只要记住如果你想要判断两个字符串的字符值是否相等,没有别的要求的时候,那么请使用equal()而不是==,至于什么时候需要使用==,我想当你需要的时候,你自然就会明白了。实际上,对于字符串的判断,我们很少需要用==的。
2、关于l(“abc”)和”abc”l(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="呵呵";
tln(a == null);
tln(a+b+c);
}
方法运行结果:
true
nullnull呵呵
所以大家要注意了做字符串合并操作时,别忘记判断null,否则结果会不太让你爽啊!
-
如何学好Java语言编程
决定好想学什么编程语言了吗,现在就让我们开始学习吧。所有你需要做的就是打开一本书,然后开始阅读,是这样的吗?不全是这样的。learn-first我会给出学习第一门编程语言的理想方法布局,你不仅应该学习这个布局方法,还应该享受精通它——如果不能掌握的话。学习第一门...
-
java语言的接口与继承
Java是一个面向对象的语言。对程序员来说,这意味着要注意应中的数据和操纵数据的方法,而不是严格地用过程来思考。下面是小编分享的java语言的接口与继承,一起来看一下吧。大多数人认为,接口的意义在于顶替多重继承。众所周知Java没有c++那样多重继承的机制,但是却...
-
java中String和StringBuffer的区别
java中String和StringBuffer的区别String这个类是Java中使用得最频繁的类之一,以下就是小编精心推荐java中String和StringBuffer的区别,希望对大家有帮助!看到这个讲解的不错,所以转一下在java中有3个类来负责字符的操作。acter是进行单个字符操作的,ng对一串字符...
-
2017上半年计算机二级Java练习题及答案
计算机等级证书是我们找工作的敲门砖,现在越来越多人重视计算机等级考试。下面是本站小编为大家带来的2017上半年计算机二级Java练习题及答案,希望对大家的学习有帮助!一、单选题1、结构化程序设计主要强调的是______。A、程序的规模B、程序的易读性C、程序的执...
相关文章
- JavaScript中null和undefined的异同
- 雅思阅读模拟试题:Sun's fickle heart may leave us cold
- 英语作文:Gulangyu,A fairyland in the world
- 初二年级Lesson11Lily learns about China英语家庭作业
- whats your plan for dragon boat festival英语作文
- A Lifeguard at Johns Beach Saved a Drowning Child,A Lifeguar英语作文
- Unit3Onlinetravel(SpeakupandStudyskills)学案
- java基础之final、finally和finalize的区别
- 英语阅读:African Union Leaders Talk Mali, Chinese Investmen
- Unit2 My schoolbag A Let’s learn教学反思