错题整理10.12

1.

mark一下:jdk8之后,接口可以定义 static方法 与 default方法。 static方法只能通过接口调用,不能通过实现类调用。default只能通过接口实现类调用,不能通过接口名调用。

接口的方法都是 public abstract 变量都是public static final的 

2.

init方法: 是在servlet实例创建时调用的方法,用于创建或打开任何与servlet相的资源和初始 化servlet的状态,Servlet规范保证调用init方法前不会处理任何请求 

 service方法:是servlet真正处理客户端传过来的请求的方法,由web容器调用, 根据HTTP请求方法(GET、POST等),将请求分发到doGet、doPost等方法 

destory方法:是在servlet实例被销毁时由web容器调用。Servlet规范确保在destroy方法调用之 前所有请求的处理均完成,需要覆盖destroy方法的情况:释放任何在init方法中 打开的与servlet相关的资源存储servlet的状态

3.

迭代HashMap采用快速失败机制,而Hashtable不是

 快速失败(Fail-Fast)机制:对于线程不安全的集合对象的迭代器,如果在使用迭代器的过程中有其他线程修改了集合对象结构或者元素数量,那么将抛出ConcurrentModificationException,这就是所谓fail-fast策略。

    迭代 HashMap 采用快速失败机制,而 HashTable 不是,因为 HashTable 是线程安全的。

4.

float aFun(float  a,  float  b){ }
public int aFun(int a, int b) { }
public float aFun(float  p,  float q){ }
private int aFun(int a,  int  b){ }

A.方法重写(覆盖)。子类方法不能缩小父类方法的访问权限,错误。

B.方法重载。参数列表不同,满足重载条件,正确。

C.方法重写(覆盖)。方法声明和父类相同,满足重写条件,正确。

D.方法重载。参数列表不同,满足重载条件,正确。

java继承中对构造函数是不继承的,只是显式或者隐式调用,

方法重写应遵循“三同一小一大”原则:

  1. “三同”:即方法名相同,形参列表相同,返回值类型相同;
  2. “一小”:子类方法声明抛出的异常比父类方法声明抛出的异常更小或者相等;
  3. “一大”:子类方法的访问修饰符应比父类方法更大或相等。

5.

A.new语句创建对象
B.调用Java.io.ObjectInputStream的readObject方法
C.java反射机制使用java.lang.Class或java.lang.reflect.Constructor的newInstance()方法
D.调用对象的clone()方法

readObject方法只是从文件中还原对象,clone只是一种复制拷贝对象。

构造函数的作用是完成对象的初始化。当程序执行到new操作符时, 首先去看new操作符后面的类型,因为知道了类型,才能知道要分配多大的内存空间。分配完内存之后,再调用构造函数,填充对象的各个域,这一步叫做对象的初始化。而选项B、D中,对象的初始化并不是通过构造函数完成的,而是读取别的内存区域中的对象的各个域来完成。

final修饰的类不能被被继承。

final修饰的属性不能修改。

final修饰的的方法 一:不能被子类重写;二:编译器在遇到final修饰的方法时会使用内嵌机制,大大提高效率。

final修饰的参数,只能读取,不能修改。

A:抽象方法只可以被public 和 protected修饰;
B:final可以修饰类、方法、变量,分别表示:该类不可继承、该方法不能重写、该变量是常量
C:static final 可以表达在一起来修饰方法,表示是该方法是静态的不可重写的方法
D:private 修饰方法(这太常见的)表示私有方法,本类可以访问,外界不能访问

6.

猜你喜欢

转载自blog.csdn.net/a83370892/article/details/83026101