
解析:
字符串和其他类型拼接的时候,会把其他类型转化成字符串,但是要注意优先级:
public class TestString {public static void main(String[] args) {String s = "hello";int a = 5;int b = 4;System.out.println(a + b + s);System.out.println(s + a + b);}}第一个输出9hello, 因为先计算a + b = 9;得到了9以后,在字符串拼接的时候才转化;第二个输出hello54, 因为依次将int类型转化成字符串类型进行拼接。

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

解析:
本题考查接口里的方法缺省时,默认为public abstract修饰的,而不是default;
因此在子类实现该方法时,修饰符范围必须不小于public,因此选D。
解析:
和上面那道题类似,也是需要public

解析:
记住即可,equals相等,要求hashCode也必须相等,因此我们要求重写equals方法必须重写hash方法。
但是反过来不行,因为反过来可能有哈希冲突的问题, 因为两个完全不一样的对象也有可能会哈希值相等。

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

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

解析:
在java中,有:
- << 表示左移;
表示带符号右移;
表示无符号右移;
但是没有<<<操作符。

解析:
匿名内部类的使用:
new 父类构造器(参数) {.... 具体实现}或者new 接口() {...具体实现}
由于匿名内部类没有类的名字,而构造器必须与类名相同,所以不能有构造函数。
A错,因为可以实现一个接口;
C错,可以有形参;

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

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

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

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