- public class T1 {
- public static void main(String[] args) throws ClassNotFoundException,InstantiationException,IllegalAccessException{
- // TODO Auto-generated method stub
- String s1 = "abc";
- String s3 ="abc";
- String s2 = new String("abc");
- System.out.println(s1);//输出abc
- System.out.println(s2);//输出abc
- System.out.println(s3==s1);//输出ture
- System.out.println(s1.equals(s2)); //判断其内容相同都是abc返回true
- System.out.println(s1.getClass()==s2.getClass());//都是String 类的字节码对象所以返回true
- System.out.println(s1==s2); //2个不同对象地址值不同返回flase
- }
- }
复制代码 String类来说明,可以看出equals是判断内容是否相同
==是判断对象地址是否相同(即指向对象是否相同)
getClass()是类字节码对象,所以是比较类是否相同。
当s3这种方式建立string对象的时候,其实s1和s3是可以进行==比较的,因为他们都指向同一对象,如果是s2这种new对象,就不能使用==,因为他们对象不同
|