一、选择题
1.接口中的方法默认都是静态的(√);
2.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法(√);
3.java类可以作为类型定义机制和数据封装机制(√);
4.执行顺序:静态代码块>实例代码块>构造方法,且静态代码块只执行一次;
写出下列代码的运行结果____________;
class A {
static {
System.out.print("1");
}
public A() {
System.out.print("2");
}
}
class B extends A{
static {
System.out.print("a");
}
public B() {
System.out.print("b");
}
}
public class Test2 {
public static void main(String[] args) {
A ab = new B();
ab = new B();
}
}
答案:1a2b2b
原因分析:
创建对象时构造器的调用顺序是:先初始化静态成员,然后调用父类构造器,再初始化非静态成员,最后调用自身构造器。
二、简答题
1.Java 中的几种基本数据类型是什么?默认值分别是多少?各自占用多少字节呢?对应的包装类型是什么?
2.简述==与equals的区别
3.构造方法有哪些特点?构造器(constructor)是否可被重写(override)?为什么?
特点:
- 名字与类名相同。
- 没有返回值,但不能用 void 声明构造函数。
- 生成类的对象时自动执行,无需调用。
不可以。重写是针对在子类中可以继承父类的方法,而构造器根本不能被子类继承,不满足重写的条件。
4.this和super关键字的作用?
this是对象内部指代自身的引用,同时也是解决成员变量和局部变量同名问题;this可以调用成员变量,不能调用局部变量;this也可以调用成员方法,但是在普通方法中可以省略this,在构造方法中不允许省略,必须是构造方法的第一条语句。,而且在静态方法当中不允许出现this关键字。
super代表对当前对象的直接父类对象的引用,super可以调用直接父类的成员变量(注意权限修饰符的影响,比如不能访问private成员)
5.成员变量与局部变量的区别有哪些?
6.Java中& 和 && 的区别?
共同点:都具有逻辑运算符与的功能
不同点: &&:具有短路的效果,当有两个条件的时候如果第一个条件不成立那么就不会判断第二个条件。
7.简述重载和重写的区别
重载 发生在同一个类中(或者父类和子类之间),方法名必须相同,参数类型不同、个数不 同、顺序不同,方法返回值和访问修饰符可以不同。
重写 重写发生在运行期,是子类对父类的允许访问的方法的实现过程进行重新编写。
- 返回值类型、方法名、参数列表必须相同,抛出的异常范围小于等于父类,访问修 饰符范围大于等于父类。
- 如果父类方法访问修饰符为 private/final/static 则子类就不能重写该方法,但是 被 static 修饰的方法能够被再次声明。
- 构造方法无法被重写
总结
这次考核,考到知识点,个人感觉是挺细致的,除了没学到的内容,其余的内容都接触过,做错的题中,很多都是,知识点没记得很牢固,就是那种学过但是又想不起来的感觉,总结一下就是,学习之后掌握的效果一般,以后还是要继续努力的,加油加油!!!