当前位置:  编程技术>java/j2ee

java的equals和==的比较示例

    来源: 互联网  发布时间:2014-11-05

    本文导语:  先看例子: 代码如下:package com.amos;/** * @ClassName: EqualTest * @Description:Java中的equal和==的比较 * @author: amosli */public class EqualTest {    public static void main(String[] args) {        int a = 1;        float b = 1.0f;        System.out.print...

先看例子:

代码如下:

package com.amos;
/**
 * @ClassName: EqualTest
 * @Description:Java中的equal和==的比较
 * @author: amosli
 */
public class EqualTest {
    public static void main(String[] args) {
        int a = 1;
        float b = 1.0f;
        System.out.println(a == b);// true
        String c = new String("hi_amos");
        String d = new String("hi_amos");
        System.out.println(c == d);// false
        System.out.println(c.equals(d));// true
    }
}

Java中判断两个变量是否相等主要有两种判方式:一种是利用==运算符,另一种是利用equals方法来判断两者是否相同.

1).当使用==来判断两个变量是否相等时,如果两个变量是基本类型变量,且都是数值类型,不要求数据类型严格相同,只要两个变量的值相等,那么将返回true.

2).如果对于两个引用类型变量,它们必须指向一个对象时,==判断才会返回true.==不可用于比较类型上没有父子关系的两个对象.

如上可以解释同样一new String时,==判断两者是否相同返回的是false,而equals返回的是true.

equals方法针对的String类,查看其源码,可以发现其实equals只能算是==的一种特例.如下面源码所示:

代码如下:

public boolean equals(Object anObject) {
        if (this == anObject) {
            return true;
        }
        if (anObject instanceof String) {
            String anotherString = (String) anObject;
            int n = value.length;
            if (n == anotherString.value.length) {
                char v1[] = value;
                char v2[] = anotherString.value;
                int i = 0;
                while (n-- != 0) {
                    if (v1[i] != v2[i])
                            return false;
                    i++;
                }
                return true;
            }
        }
        return false;
    }

equals方法实际上一开始就调用了==判别式,然后再判断其进一步值是否正确


    
 
 

您可能感兴趣的文章:

  • andriod下java socket网络编程:java socket客户端服务端代码示例
  • 输出java进程的jstack信息示例分享 通过线程堆栈信息分析java线程
  • java Servlet实现Session创建存取以及url重写代码示例
  • java 四舍五入使java保留2位小数示例讲解
  • java进行error捕获和处理示例(java异常捕获)
  • java去除集合中重复元素示例分享 java去除重复
  • java读取csv文件示例分享(java解析csv文件)
  • java求三个数的最大值的示例分享
  • java生成字母数字组合的随机数示例 java生成随机数
  • java实现网页解析示例
  • java协变返回类型使用示例
  • 使用java执行定时任务示例
  • java自定义枚举转换器示例
  • java向文件末尾添加内容示例分享
  • java正则表达式获取url的host示例
  • java使用正则表达校验手机号码示例(手机号码正则)
  • java实现jframe透明窗体示例
  • java的split方法使用示例
  • java抓取网页数据示例
  • Oracle 使用Java Source 简单示例
  • java自定义日期转化类示例
  • 用java读一个比较大的文本文件(几百k~几M)怎么才能比较快?
  • 初学JAVA,请问各位哪本数据结构(JAVA版)比较好?
  • 初学java,请各位给我推荐比较好的java书
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • 我是一名JAVA初学者,请问哪里有比较好的JAVA的源程序下载
  • 我现在刚刚学到JAVA的线程和socket,请问《JAVA 2宝典》和《JAVA核心技术卷2:高级特性》哪本书讲得比较好?
  • java初学看什么例子比较好。
  • 请问学习java比较好的中文书籍有哪些,谢谢!
  • 假设现在对且仅对java基础比较熟悉(通过scjp),要做一个java proxy的软件,步聚是什么?
  • 关于java比较好的书
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.rmi.corba接口stubdelegate的类成员方法: equals定义及介绍
  • java equals函数用法详解
  • java命名空间java.awt类displaymode的类成员方法: equals定义及介绍
  • java中"==" 与equals方法的使用
  • java命名空间javax.swing枚举rowfilter.comparisontype的类成员方法: equal定义及介绍
  • java String 类的一些理解 关于==、equals、null
  • java命名空间javax.xml.datatype类datatypeconstants的类成员方法: equal定义及介绍
  • java中 == 与 equal 的区别讲解
  • java命名空间java.text类dateformat的类成员方法: equals定义及介绍
  • 基于Java字符串 "==" 与 "equals" 的深入理解
  • java命名空间java.text类dateformatsymbols的类成员方法: equals定义及介绍
  • java中equals和等号(==)的区别浅谈
  • java命名空间java.text类decimalformatsymbols的类成员方法: equals定义及介绍
  • java中hashCode方法与equals方法的用法总结
  • java命名空间java.text类parseposition的类成员方法: equals定义及介绍
  • java命名空间java.text类decimalformat的类成员方法: equals定义及介绍
  • java命名空间java.text类fieldposition的类成员方法: equals定义及介绍
  • java命名空间java.text类numberformat的类成员方法: equals定义及介绍
  • java命名空间java.security类permission的类成员方法: equals定义及介绍
  • java命名空间java.lang类stacktraceelement的类成员方法: equals定义及介绍
  • java命名空间java.net类urlstreamhandler的类成员方法: equals定义及介绍
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 我对JAVA一窍不通,可惜别人却给我一个Java的project,要我做一个安装程序,请问哪里有JAVA INSTALLER下载,而且我要不要安装java的sdk才能完成此项任务?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3