String中的“==”和equals()方法使用
来源:互联网 发布:psp马甲卡淘宝 编辑:程序博客网 时间:2024/06/06 02:50
下列java程序的输出结果为____。
解析:
String是引用数据类型,在作为参数传递时,和基本数据类型一样传递的是值,不改变原对象的值,
所以在本题中,调用change函数之后,在主函数中输出的str的值不变,还是hello。
char 作为引用数据类型,传递的是值。所以change函数调用之后,会改变内部的值,输出结果就是cb。
对于值传递和引用传递的解析:
值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量.
引用传递一般是对于对象型变量而言的,传递的是该对象地址的一个副本, 并不是原对象本身 。 所以对引用对象进行操作会同时改变原对象.
一般认为,java内的传递都是值传递.
关于以下程序段,正确的说法是(C )
A、行4与行6都将执行 B、行4执行,行6不执行
C、行6执行,行4不执行 C、行4、行6都不执行
有如下程序段:
则表达式a == b与s2 == s1的结果分别是:( A)。
A、true与true B、false与true
C、true与false D、false与false
解析:
==对于引用数据类型比较的是地址,
String作为参数传递时传递的是值
对于值类型:“==”比较数值是否相等,值类型没有equals方法
对于引用类型:
如果该类型没有重载equals方法,则“==”和“equals”方法返回的结果一致,即比较两个变量引用的地址是否相等
如果重载了equals方法,则equals方法的行为需要看重载方法的具体定义,“==”依然比较的是两个变量的引用地址
对String和基本数据类型包装类,内部已经重写了equals方法,bia。
注意:重写equals方法的时候通常有必要重写hashcode方法,hashcode用于返回对象的哈希值,当对象相同时,它们的哈希值一定相同。当哈希值相同时,其对象不一定相同,再用equals去比较。在进行对象判断时,先判断其hashcode是否相同,如果不同,就没有必要再去用equals比较,这就减少了equals的使用次数。
public class Example{ String str=new String("hello"); char[]ch={'a','b'}; public static void main(String args[]){ Example ex=new Example(); ex.change(ex.str,ex.ch); System.out.print(ex.str+" and "); System.out.print(ex.ch); } public void change(String str,char ch[]){ str="test ok"; ch[0]='c'; }}
解析:
String是引用数据类型,在作为参数传递时,和基本数据类型一样传递的是值,不改变原对象的值,
所以在本题中,调用change函数之后,在主函数中输出的str的值不变,还是hello。
char 作为引用数据类型,传递的是值。所以change函数调用之后,会改变内部的值,输出结果就是cb。
对于值传递和引用传递的解析:
值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量.
引用传递一般是对于对象型变量而言的,传递的是该对象地址的一个副本, 并不是原对象本身 。 所以对引用对象进行操作会同时改变原对象.
一般认为,java内的传递都是值传递.
关于以下程序段,正确的说法是(C )
String s1=”abc”+”def”; String s2=new String(s1); if、(s1= =s2) System.out.println(“= = succeeded”); if (s1.equals(s2)) System.out.println(“.equals() succeeded”);
A、行4与行6都将执行 B、行4执行,行6不执行
C、行6执行,行4不执行 C、行4、行6都不执行
有如下程序段:
int a = b = 5; String s1 = "祝你今天考出好成绩!"; String s2 = s1;
则表达式a == b与s2 == s1的结果分别是:( A)。
A、true与true B、false与true
C、true与false D、false与false
解析:
==对于引用数据类型比较的是地址,
String作为参数传递时传递的是值
对于值类型:“==”比较数值是否相等,值类型没有equals方法
对于引用类型:
如果该类型没有重载equals方法,则“==”和“equals”方法返回的结果一致,即比较两个变量引用的地址是否相等
如果重载了equals方法,则equals方法的行为需要看重载方法的具体定义,“==”依然比较的是两个变量的引用地址
对String和基本数据类型包装类,内部已经重写了equals方法,bia。
注意:重写equals方法的时候通常有必要重写hashcode方法,hashcode用于返回对象的哈希值,当对象相同时,它们的哈希值一定相同。当哈希值相同时,其对象不一定相同,再用equals去比较。在进行对象判断时,先判断其hashcode是否相同,如果不同,就没有必要再去用equals比较,这就减少了equals的使用次数。
阅读全文
0 0
- String中的“==”和equals()方法使用
- String中的equals()方法和==解析
- String中的==和.equals()
- String中的equals和==
- Java String中的==和equals()
- String 的==和equals()方法
- String中的equals方法
- Java中的String类以及 == 和equals()方法的比较!
- String中的equals方法与==的差别
- Java 中的== 和equals()方法
- Java 中的== 和equals()方法
- Java中的==和equals方法
- Java中的==和equals方法
- String使用equals方法和==分别比较的是什么?(转)
- String使用equals方法和==分别比较的是什么?(转)
- String使用equals方法和==分别比较的区别
- String使用equals方法和==分别比较的是什么?
- (Java)String使用equals方法和==分别比较的是什么?
- luogu1880 合并石子(区间dp)
- Mac JDK
- git如何清除工作区所有还没有add的文件的修改?
- 递归(斐波那契数列)
- 用poplib库来检查指定邮件中的最新2封邮件
- String中的“==”和equals()方法使用
- 用C语言实现 求10个整数中最大值
- 热修复tinker
- hibernate框架
- Kotlin Reference (十六) 函数和lambda表达式:内联函数、内联属性
- 关于oracle 与 mysql 的索引与隐式转换的总结
- Java框架之hibernate(1)
- kali linux MITM 中间人欺骗
- Mysql的总结