牛客网JAVA试题纠错本(一)
一、
class BaseClass {
public BaseClass() {}
{
System.out.println("I’m BaseClass class");
}
static {
System.out.println("static BaseClass");
}
}
public class Base extends BaseClass {
public Base() {}
{
System.out.println("I’m Base class");
}
static {
System.out.println("static Base");
}
public static void main(String[] args) {
new Base();
}
}
答案:
父子关系的加载顺序为:
- 静态代码块和静态变量先进性加载,并且同类里面的加载顺序是按照代码的顺序之心风格的
- 在调用构造方法的时候,会在构造方法之前,加载非静态代码块
- 最后调用类的构造器
- 如果是父子关系,上面每一步操作都需要加载父类的心昂用方法
完整顺序为:父类静态代码块 ->子类静态代码块 ->父类非静态代码块 -> 父类构造函数 -> 子类非静态代码块 -> 子类构造函数。
摘自牛客:ZeroOfferException
二、
表对应类,记录对应对象,表的字段对应类的属性。
三、
Applet:当用户访问网页时,Applet被下载到用户的计算机上执行,但前提是用户使用的是支持Java的网络浏览器;Applet类必须继承java.applet.Applet;Applet可以访问本地文件;Applet是Object类的子类。
四、
vector对应ArrayList,在内存中占据连续的空间。初始大小是固定的,无法进行改变
try{}、catch{}会额外增加系统的开销。因为自定义异常存在队中,调用的开销较大
接口中的“变量”必须为 public final static,所以接口中只能由常量