JAVA SE面向对象编程

1.java程序判断连个对象是否相等,一般有两种方式:==和equals

  a.对于==,若两个对象是基本类型中的数值类型(不需要数值类型相同),值相等就返回true;若两个对象是泛型,指向同一对象返回true

  b.equals方法是Object提供的实例方法。若不重写,则与==同,需要指向同一对象是返回true。

2.包装类与String相互转换

3.包装类比较

  a.若包装类与数值类型的值比较,实际上取包装类实例包装的值与数值类型的值比较

  b.两包装类实例做==比较,只有连个包装类型指向同一对象时返回true;equals比较,值相等返回true(包装类重写类equals方法)

4.对于Integer,会将-128~127的整数自动装箱城Integer实例(可参考链接:自定义缓存实例的不可变类)

题目:

1.判断下面程序的返回结果

public class BaseDataType {
    public static void main(String[] args) {
        String a ="疯狂JAVA";
        String b="疯狂";
        String c="JAVA";
        String d=b+c;
        System.out.println(a==d);
    }
}

2.判断下面程序的返回结果

public class BaseDataType {
    public static void main(String[] args) {
        String a ="疯狂JAVA";
        final String b="疯狂";
        final String c="JAVA";
        String d=b+c;
        System.out.println(a==d);
    }
}

3.判断下面程序的返回结果

public class StringCompareTest
{
    public static void main(String[] args)
    {
        String s1 = "疯狂Java";
        String s2 = "疯狂";
        String s3 = "Java";
        String s4 = "疯狂" + "Java";
        String s5 = "疯" + "狂" + "Java";
        String s6 = s2 + s3;
        String s7 = new String("疯狂Java");
        System.out.println(s1 == s4); 
        System.out.println(s1 == s5); 
        System.out.println(s1 == s6); 
        System.out.println(s1 == s7); 
    }
}

4.判断下面程序的返回结果

public class EqualTest
{
    public static void main(String[] args)
    {
        int it = 65;
        float fl = 65.0f;
        System.out.println("65和65.0f是否相等?" + (it == fl));
        char ch = 'A';
        System.out.println("65和'A'是否相等?" + (it == ch));
        String str1 = new String("hello");
        String str2 = new String("hello");
        System.out.println("str1和str2是否相等?"
            + (str1 == str2));
        System.out.println("str1是否equals str2?"
            + (str1.equals(str2)));
        System.out.println("hello" == new EqualTest());
    }
}

5.定义一个EqualsOverWriteTest,并重写equals方法

6.判断下面程序的返回结果

public class BaseDataType {
    public static void main(String[] args) {
        Integer a = Integer.valueOf(6);
        System.out.println(a > 5.0);
    }
}

7.给出下面程序的返回结果

public class BaseDataType {
    public static void main(String[] args) {
        Double a = Double.valueOf(6.0);
        double b = 6.0;
        System.out.println(a==b);
    }
}

8.给出下面程序的返回结果

public class BaseDataType {
    public static void main(String[] args) {
        Double a = Double.valueOf(6.0);
        Double b = 6.0;
        System.out.println(a==b);
    }
}

9.给出下面程序的返回结果

public class BaseDataType {
    public static void main(String[] args) {
        Double a = Double.valueOf(6.0);
        Double b = 6.0;
        System.out.println(a.equals(b));
    }
}

10.给出下面程序的返回结果

public class BaseDataType {
    public static void main(String[] args) {
        Integer ina = 2;
        Integer inb = 2;
        System.out.println(ina == inb);
        Integer biga = 128;
        Integer bigb = 128;
        System.out.println(biga == bigb);
    }
}

11.给出下面程序的返回结果

public class BaseDataType {
    public static void main(String[] args) {
        int a =128;
        Integer b =128;
        Integer c = 128;
        System.out.println(a==b);
        System.out.println(a==c);
        System.out.println(b==c);
    }
}

答案

1.false

2.true

3.true true false false

4.true true false true 报错

5.

6.true

7.true

8.false

9.true

10.true false

11.true true false

猜你喜欢

转载自www.cnblogs.com/sxrtb/p/12579594.html