package com.liaojianya.chapter1; /** * This program demonstrates the difference between == and equals(). * @author LIAO JIANYA * 2016年7月20日 */ public class CompareObject { public static void main(String[] args) { String s1 = new String("java"); String s2 = new String("java"); String s3 = s2; String s4 = new String("JAVA"); //the use of == if(s1 == s2) { System.out.println("s1和s2堆内存地址一样"); } else { System.out.println("s1和s2堆内存地址不一样"); } if(s2 == s3) { System.out.println("s2和s3堆内存地址一样"); } else { System.out.println("s2和s3堆内存地址不一样"); } //the use of equals() if(s1.equals(s2)) { System.out.println("s1和s2内容一样"); } else { System.out.println("s1和s2内容不一样"); } if(s1.equals(s4)) { System.out.println("s1和s4内容一样"); } else { System.out.println("s1和s4内容不一样"); } } }
运行结果:
s1和s2堆内存地址不一样 s2和s3堆内存地址一样 s1和s2内容一样 s1和s4内容不一样
分析:==是用于比较两个对象的内存地址值(引用值)是否相等;equals()方法是用于比较两个对象的内容是否一致。