image.png

    解析:
    字符串和其他类型拼接的时候,会把其他类型转化成字符串,但是要注意优先级:

    1. public class TestString {
    2. public static void main(String[] args) {
    3. String s = "hello";
    4. int a = 5;
    5. int b = 4;
    6. System.out.println(a + b + s);
    7. System.out.println(s + a + b);
    8. }
    9. }
    10. 第一个输出9hello, 因为先计算a + b = 9;得到了9以后,在字符串拼接的时候才转化;
    11. 第二个输出hello54, 因为依次将int类型转化成字符串类型进行拼接。

    image.png

    解析:

    1. 尝试加载A,发现A继承于B,所以先加载B,即运行B里的静态代码块,Load B
    2. B加载完了,去加载A,Load A;
    3. 调用new A(),会先去调用父类的构造方法,所以Create B;
    4. 最后Create A

    image.png

    解析:
    本题考查接口里的方法缺省时,默认为public abstract修饰的,而不是default;

    因此在子类实现该方法时,修饰符范围必须不小于public,因此选D。

    image.png解析:
    和上面那道题类似,也是需要public

    image.png

    解析:
    记住即可,equals相等,要求hashCode也必须相等,因此我们要求重写equals方法必须重写hash方法。

    但是反过来不行,因为反过来可能有哈希冲突的问题, 因为两个完全不一样的对象也有可能会哈希值相等。

    image.png

    解析:
    Return i++是先返回以后再加,所以每一次返回的值都是原来的值,返回以后才 + 1;

    image.png

    解析:
    能够读写文件的是数据流(OutputStream和InputStream)。

    image.png

    解析:
    在java中,有:

    1. << 表示左移;
    2. 表示带符号右移;

    3. 表示无符号右移;

    但是没有<<<操作符。

    image.png

    解析:
    匿名内部类的使用:

    1. new 父类构造器(参数) {
    2. .... 具体实现
    3. }
    4. 或者
    5. new 接口() {
    6. ...具体实现
    7. }

    由于匿名内部类没有类的名字,而构造器必须与类名相同,所以不能有构造函数。

    A错,因为可以实现一个接口;
    C错,可以有形参;

    image.png

    解析:
    记住:equals相等,hashCode一定相等,但是反过来不行,因为有哈希冲突。

    image.png

    解析:
    正确的输出是false, true, false, 所以最后一个选项是错的。

    image.png

    解析:
    记住,String,StringBuilder,StringBuffer都是用final修饰的。

    image.png

    解析:
    A. Thread可以被继承,用于启动线程;
    B. Number可以被继承,被Integer, Float,Double等继承;
    C. Double用final修饰;
    D. Math用final修饰
    E. ClassLoader可以被继承,用于写用户的自定义类加载器。