java判断两个对象的类型是否相同以及判断对象是否属于某个类

public class Test{
 
    public static void main(String[] args) {
    
        //测试两个对象是否相同
        // ==,如果作用于八种基本数据类型的变量,则比较其存储的"值"是否相等;如果作用于引用类型的变量,则比较的是两个对象的内存地址是否相同;符号两边的操作数必须是同一类型,否则编译出错
        // equals方法是用来比较两个对象的引用是否相等,即比较的是两个对象的内容是否相等
        String s1 = new String("aaa");
    	String s2 = "aaa";
    	System.out.println(s1==s2);  //false
    	System.out.println(s.equals(s2));  //true

          
        //测试是否对象属于某个类
        String s3 = new String("ccc");
        System.out.println(String.class.isInstance(s3)); // true
        
        //class1.isAssignableFrom(class2) 判定 class1对象所表示的类或接口与class2 参数所表示的类或接口是否相同,或是否是其超类或超接口。如果是则返回 true;否则返回 false。如果该 class1表示一个基本类型,且指定的 class2参数正是class1对象,则该方法返回 true;否则返回 false。
        System.out.println(ArrayList.class.isAssignableFrom(Object.class)); // false
        System.out.println(Object.class.isAssignableFrom(ArrayList.class)); //ArrayList是Object的对象,返回 true
    }
}

你可能感兴趣的:(java基础)