zoukankan      html  css  js  c++  java
  • Equals方法与“==”区别

    一:“==”

    基本数据类型:比较值是否相等。

    引用数据类型:比较两个引用是否指向同一个对象。

    /**
     * equals与“==”区别
     * 2014-4-13
     * @author Administrator
     *
     */
    public class demo {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            String s1="123";
            String s2="123";
            if(s1==s2)
                System.out.println("s1=s2");
            else
                System.out.println(s1!=s2);
        }
    }

    运行结果:

    s1=s2

    1创建一个引用s1存储在栈中

    2在常量池中查看是否已有字符串”123”,若存在,直接让s1指向已有字符串”123“,若不存在,创建新的字符串”123”,并让s1指向”123”

    3重复1,2步骤创建s2=”123”

    /**
     * equals与“==”区别
     * 2014-4-13
     * @author Administrator
     *
     */
    public class demo {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            String s1=new String("123");
            String s2=new String("123");
            if(s1==s2)
                System.out.println("s1=s2");
            else
                System.out.println("s1!=s2");
        }
    }

    运行结果:

    s1!=s2

    1创建一个引用s1存储在栈中,

    2创建一个新的对象存储在堆中,将引用s1指向对象

    3重复1,2步骤。(new的方式是生成不同的对象。每一次生成一个。)

    /**
     * equals与“==”区别
     * 2014-4-13
     * @author Administrator
     *
     */
    public class demo {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            String s1="123";
            String s2=new String("123");
            if(s1==s2)
                System.out.println("s1=s2");
            else
                System.out.println("s1!=s2");
        }
    }

    运行结果:

    s1!=s2

    二:equals()方法

    在Object超类中,基本数据类型与引用数据类型都是比较是否指向同一个对象

    在String类中,比较两个值是否相同

    /**
     * equals与“==”区别
     * 2014-4-13
     * @author Administrator
     *
     */
    public class demo {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            String s1="123";
            String s2="123";
            if(s1.equals(s2))
                System.out.println("s1 equals s2");
            else 
                System.out.println("s1 not equals s2");
            
        }
    }

    运行结果:

    s1 equals s2
    /**
    
    * equals与“==”区别 * 2014-4-13 *
    @author Administrator * */ public class demo { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String s1=new String("123"); String s2=new String("123"); if(s1.equals(s2)) System.out.println("s1 equals s2"); else System.out.println("s1 not equals s2"); } }

    运行结果:

    s1 equals s2
    /**
    
    
     * equals与“==”区别
     * 2014-4-13
     * @author Administrator
     *
     */
    public class demo {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            String s1="123";
            String s2=new String("123");
            if(s1.equals(s2))
                System.out.println("s1 equals s2");
            else 
                System.out.println("s1 not equals s2");
            
        }
    }

    运行结果:

    s1 equals s2

    三:String的intern()方法

    /**
     * equals与“==”区别
     * 2014-4-13
     * @author Administrator
     *
     */
    public class demo {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            String s1="123";
            String s2=new String("123");
            s2 = s2.intern();
            if (s1 == s2)
                System.out.println("s1 == s2");
            else
                System.out.println("s1 != s2");
            if(s1.equals(s2))
                System.out.println("s1 equals s2");
            else 
                System.out.println("s1 not equals s2");
    
        }
    }

    运行结果:

    s1 == s2
    s1 equals s2

    java.lang.String的intern()方法"abc".intern()方法的返回值还是字符串"123"

    返回过程也有判断常量池中是否存在相同的字符串,若存在,则不重新创建.

  • 相关阅读:
    LAMP应用 wdlinux 配置文件
    Linux mysql忘记root密码
    vim 编辑器 常用的设置
    Virtual PC(VPC)虚拟机安装CentOS 6.0网络配置
    缓存系统memcache的安装,配置和使用
    CentOS 去掉Last login提示/系统欢迎信息
    configure: error: GD build test failed. Please check the config.log for details.
    Centos 6.0 yum 更新源
    MySQL is running but PID file is not found
    Visual Studio快速开发以及Visual Studio 2010新功能介绍
  • 原文地址:https://www.cnblogs.com/shangshicc/p/3662928.html
Copyright © 2011-2022 走看看