欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java笔试错题记录——2020-10-13

程序员文章站 2024-03-22 18:12:40
...
  1. 在Java中下面Class的声明哪些是错误的?

正确答案: A B C 你的答案: A B (错误)

public abstract final class Test {
	abstract void method();
}
public abstract class Test {
	abstract final void method();
}
public abstract class Test {
	abstract void method() {
}
}
public class Test {
	final void method() {

}
}

解析:

A、final修饰的类为终态类,不能被继承,而 抽象类是必须被继承的才有其意义的,因此,final是不能用来修饰抽象类的。

B、 final修饰的方法为终态方法,不能被重写。而继承抽象类,必须重写其方法。

C、抽象方法是仅声明,并不做实现的方法。

  1. 有关静态初始化块说法正确的是?
# 正确答案: A B C  你的答案: A C (错误)

```
无法直接调用静态初始化块
在创建第一个实例前或引用任何静态成员之前,将自动调用静态初始化块来初始化
静态初始化块既没有访问修饰符,也没有参数
在程序中,用户可以控制合适执行静态初始化块
```

解析:

java对象初始化顺序
先说结论:

  1. 父类静态代码块,父类静态成员变量(同级,按代码顺序执行)
  2. 子类静态代码块,子类静态成员变量(同级,按代码顺序执行)
  3. 父类普通代码块,父类普通成员变量(同级,按代码顺序执行)
  4. 父类构造方法
  5. 子类普通代码块,子类普通成员变量(同级,按代码顺序执行)
  6. 子类构造方法

注意点:

  1. 静态内容只在类加载时执行一次,之后不再执行。
  2. 默认调用父类的无参构造方法,可以在子类构造方法中利用super指定调用父类的哪个构造方法。