视频中老师提的问题,为什么name属性必须用equals()方法不能用==

来源:6-1 学生选课---判断 List 中课程是否存在

啊梨真神奇

2016-01-23 15:12

this.name.equals(course.name)

为什么不可以直接用

this.name==course.name

写回答 关注

5回答

  • 我相信指数爆炸
    2016-02-19 15:48:25
    已采纳

    String类是引用类型,当 == 两边是引用类型的时候,系统会自动比较两个引用类型的引用地址是否相等,即是否是同一个地址值,而不是比较两个引用的属性是否相等

    啊梨真神奇

    非常感谢!

    2016-02-20 09:31:00

    共 1 条回复 >

  • 高山彝人
    2016-04-28 20:26:54

    楼上是正确解答!

  • chikin333
    2016-04-08 16:05:21

    因为String 是特殊的引用类型,String类中重写了equals方法,只要两个字符串的内容相同就返回true,而又因为==号比较的是引用类型时,比较的是引用地址,所以用equals方法比较name

  • happygl16
    2016-01-24 11:29:29

    不准确吧,equals比较内容只能在String内的 ,别的不成立

  • 慕码人1088981
    2016-01-24 10:50:48

    ==是比较内存地址 

    equals比较 两个字符串的内容

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题