public static void main(String[] args) {
String a = "aa";
String b = new String("aa");
System.out.println(a==b);
System.out.println(a.equals(b));
String c = new String("aa");
System.out.println(a==c);
System.out.println(b.equals(c));
Java题目,为何输出是 false true false true
答案:2 悬赏:10
解决时间 2021-02-19 00:03
- 提问者网友:江鱼
- 2021-02-18 12:51
最佳答案
- 二级知识专家网友:浪者不回头
- 2021-02-18 13:32
这个很简单了。
你要了解两个String类型的字符串使用==号比较和使用equals比较的区别。
==比较是String对象的地址,显示a、b、c都是三个不同的对象,指向的不是同一个地址,都是通过new来实例化的。所以a==b 、a==c都是false。
equals是比较字符串实际的值,a、b、c的值都为"aa",所以是true。
话说回来,如果b实例化的时候是b=a,那么第一个就会是true了。
你要了解两个String类型的字符串使用==号比较和使用equals比较的区别。
==比较是String对象的地址,显示a、b、c都是三个不同的对象,指向的不是同一个地址,都是通过new来实例化的。所以a==b 、a==c都是false。
equals是比较字符串实际的值,a、b、c的值都为"aa",所以是true。
话说回来,如果b实例化的时候是b=a,那么第一个就会是true了。
全部回答
- 1楼网友:冷态度
- 2021-02-18 14:52
一个 boolean 类型的变量 还有就是你写的这种情况 system.out.println(a==b); integer是包装类 就是 int的包装类 int的是 值类型的 integer同样也是数字 但是他是 引用类型的 就是说 integer是个对象 一般把其他数据类型转换为数字的时候经常用到 integer.parseint(对象/变量/常量);
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯