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

  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指定调用父类的哪个构造方法。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值