`
摇梦江畔
  • 浏览: 9015 次
  • 性别: Icon_minigender_2
  • 来自: 朝阳
文章分类
社区版块
存档分类
最新评论

equals()与==的使用方法小结

 
阅读更多

                  关于equals()和==的使用区别

一、基本使用方法说明

      [1]对于String类而言,==是用来比较栈中的内存地址的,而equals是用来比较两个字符串所包含的内容是否相同。

      [2]对于非String类而言,==与equals()都是用来比较内存地址的。

      s1 = new String("abc");                               Student  s1 = new Student("abc");

      s2 = new String("abc");                               Student  s2 = new Student("abc");

      s3 = "abc";

      s4 = "abc";

      s3 == s4为true

      s1 == s2为false;                                          s1 ==s2 为false

      s1equals()s2为true                                       s1 equals()s2为false

      解释:对于两个类来说,s1与s2均为新创建的对象,因此变量地址是不一样的,而变量内容是一样的。

               对于String类而言,类中重写了equals()方法,用于比较字符串的内容。

               但如果在student类中加上s1 = s2,则输出结果均为false,因为此时两个地址相同

               对于s3和s4而言,两者均为"abc"创造的对象,所以地址相同

二、具体运用环境

      1、java中的八种基本类型比较大小只能使用==,不能使用equals();编译出错

      public class TestEquals {
      public static void main(String[] args)
      {
      int a = 3;
      int b = 4;
      int c = 3;
      System.out.println(a == b);//结果是false
      System.out.println(a == c);//结果是true
      System.out.println(a.equals(c));//错误,编译不能通过,equals方法
     //不能运用与基本类型的比较

      2、对于基本类型的包装类型,如Boolean、Character、Byte、Shot、Integer、Long、Float、Double,他们的用法与String类一样,==用来比较地址,而equals()用来比较内容

       public class TestEquals {
       public static void main(String[] args)
      {

       Integer n1 = new Integer(30);
       Integer n2 = new Integer(30);
       Integer n3 = new Integer(31);
       System.out.println(n1 == n2);//结果是false 

       System.out.println(n1 == n3);// 结果显示false
       System.out.println(n1.equals(n2));//结果是true

       System.out.println(n1.equals(n3));//结果是false

       }
}
其他的Double、Character、Float等也一样

     3、

       

分享到:
评论

相关推荐

    Equals和==的区别 公共变量和属性的区别小结

    Equals 和==的区别 公共变量和属性的区别 总结一下。

    Java中==与equals的区别小结

    主要介绍了Java中==与equals的区别小结,本文总结结论:== 与 equals()比较的内容是不同的,equals()方式是String类中的方法,它用于比较两个对象引用所指的内容是否相等,而 == 比较的是两个对象引用的地址是否相等,...

    javaSE代码实例

    1.5 小结 11 第2章 基本数据类型——构建Java 大厦的基础 12 2.1 源代码注释 12 2.1.1 单行注释 12 2.1.2 区域注释 12 2.1.3 文档注释 13 2.2 基本数据类型 14 2.2.1 整型 15 2.2.2 浮点型 17 ...

    C#本质论(第3版)

    1.9 小结 第2章 数据类型 2.1 基本数值类型 2.1.1 整数类型 2.1.2 浮点类型 2.1.3 decimal类型 2.1.4 字面值 2.2 更多基本类型 2.2.1 布尔类型 2.2.2 字符类型 2.2.3 字符串 2.3 null和void 2.3.1 null...

    21天学通Java-由浅入深

    162 8.5.8 重写equals方法 163 8.6 final与继承的关系 164 8.7 abstract与继承的关系 165 8.8 什么是多态 166 8.9 什么是枚举类 168 8.10 什么是反射机制 169 8.11 什么是泛型 170 8.12 综合练习 172 8.13 小结 172 ...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    如何使用方法的返回值? 166 7.4.4 使用return结束方法 166 7.5 方法重载(overload):给汽车加速添个限制 168 7.5.1 什么是方法的签名 168 7.5.2 什么是重载?为什么要重载? 168 7.5.3 给汽车加个重载的方法...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    如何使用方法的返回值? 166 7.4.4 使用return结束方法 166 7.5 方法重载(overload):给汽车加速添个限制 168 7.5.1 什么是方法的签名 168 7.5.2 什么是重载?为什么要重载? 168 7.5.3 给汽车加个重载的方法...

    C#5.0本质论第四版(因文件较大传的是百度网盘地址)

    1.4 小结 20 第2章 数据类型 21 2.1 基本数值类型 21 2.1.1 整数类型 22 2.1.2 浮点类型 23 2.1.3 decimal类型 23 2.1.4 字面值 24 2.2 更多基本类型 27 2.2.1 布尔类型 27 2.2.2...

    疯狂JAVA讲义

    1.9 本章小结 22 本章练习 22 第2章 理解面向对象 23 2.1 面向对象 24 2.1.1 结构化程序设计简介 24 2.1.2 程序的三种基本结构 25 2.1.3 面向对象程序设计简介 27 2.1.4 面向对象的基本特征 28 2.2 UML...

    NET设计规范-.NET约定、惯用法与模式.part2

    第1章 概述 1 1.1 精心设计的框架所具备的品质 2 ...B.4.6 与使用规范有关的FxCop规则 287 B.4.7 与设计模式有关的FxCop规则 291 附录C API规范样例 292 术语表 299 推荐读物 303 索引 305

    NET设计规范-.NET约定、惯用法与模式.part1

    本书为框架设计师和广大开发人员设计高质量的软件提供了权威的指南...B.4.6 与使用规范有关的FxCop规则 287 B.4.7 与设计模式有关的FxCop规则 291 附录C API规范样例 292 术语表 299 推荐读物 303 索引 305

    亮剑.NET深入体验与实战精要3

    操作与使用技巧 61 1.6.4 常见开发调试技巧 66 1.6.5 错误异常处理方法 70 本章常见技术面试题 76 常见面试技巧之面试前的准备 76 本章小结 77 第2章 细节决定成败 79 2.1 Equals()和运算符==的区别 80 2.2 const和...

    Java中String类和IO流——学习小结

    1.String类 知识点: 1.String认识 2.比较方式 3.判断方法 4.转换方法 5.其他一些方法 1.1String类认识 String类在java.lang包中,java使用String类创建一个字符串变量,... equals 比较两个变量包含的内容 String s

    亮剑.NET深入体验与实战精要2

    操作与使用技巧 61 1.6.4 常见开发调试技巧 66 1.6.5 错误异常处理方法 70 本章常见技术面试题 76 常见面试技巧之面试前的准备 76 本章小结 77 第2章 细节决定成败 79 2.1 Equals()和运算符==的区别 80 2.2 const和...

    亮剑.NET:.NET深入体验与实战精要清晰版及源码

     本章小结  第2章 细节决定成败  2.1 equals()和运算符==的区别  2.2 const和readonly的区别  2.3 private、protected、public和internal的区别  2.4 sealed、new、virtual、abstract与override  2.5 ...

    JAVA软件工程师_Java入门视频教程

    小结 [第9节] 1.2.1为什么需要封装1 [第10节] 1.2.1为什么需要封装2 [第11节] 1.2.2如何实现封装2 [第12节] 1.2.3如何使用包1 [第13节] 1.2.3如何使用包2 [第14节] 1.2.4类成员的访问控制1 [第15节] 1.2.4类成员的...

    亮剑.NET深入体验与实战精要.part3

     本章小结  第2章 细节决定成败  2.1 equals()和运算符==的区别  2.2 const和readonly的区别  2.3 private、protected、public和internal的区别  2.4 sealed、new、virtual、abstract与override  2.5 ...

    亮剑.NET深入体验与实战精要.part1.

     本章小结  第2章 细节决定成败  2.1 equals()和运算符==的区别  2.2 const和readonly的区别  2.3 private、protected、public和internal的区别  2.4 sealed、new、virtual、abstract与override  2.5 ...

    亮剑.NET深入体验与实战精要.part2

     本章小结  第2章 细节决定成败  2.1 equals()和运算符==的区别  2.2 const和readonly的区别  2.3 private、protected、public和internal的区别  2.4 sealed、new、virtual、abstract与override  2.5 ...

Global site tag (gtag.js) - Google Analytics