写在前面:秋招目标岗位:测试开发工程师,最近在准备招银网络科技的电话面,收集了一些资料,做个笔记。
1、静态方法与非静态方法区别
本质区别:静态方法用static修饰,在定义类时已经被装载和分配。非静态方法不加static,定义类时没有占用内存,只有被实例化对象后,对象调用该方法时才会被分配内存。
静态方法只能调用静态成员或静态方法;非静态方法可以调用静态成员或者静态方法,还可以调用其他的非静态成员或者方法。
注:非静态方法被实例化后也可以被静态方法调用
2、jvm类加载过程:加载→验证→准备→解析→初始化→使用→卸载
在准备阶段为静态变量分配内存;
在初始化阶段为普通成员变量赋值
3、抽象类和接口的区别
(1)抽象类可以有构造方法,接口不能有构造方法;
(2)抽象类可以有普通成员变量,接口中没有普通成员变量,只能是public static final类型;
(3)抽象类可以包含非抽象的普通方法,接口中方法必须全部都是抽象的,即抽象类中方法可以有方法体,接口中的方法不能有方法体;
(4)抽象类中可以包含静态方法,接口中不能有静态方法;
(5)一个类只能继承一个抽象类,但可以实现多个接口。
4、java初始化顺序