刷题06

1.下列外部类定义中,不正确的是:( )
正确答案: C
A. class x { … }
B. class x extends y { … }
C. static class x implements y1,y2 { … }
D. public class x extends Applet { … }
解析:内部类可以是静态static的,也可用public,default,protected和private修饰,
外部类的修饰符只能是public,缺省、abstract,final
2.已知如下类说明:
在这里插入图片描述
如下哪些使用是正确的()
正确答案: D
A. t.f = 1.0
B. this.n
C. Test.m
D. Test.n
解析:A. float强转成double报错;B. this使用:this.a = a;为了使局部变量(形参)=实例变量,static是全局变量;
总结:static,this、super不能同时使用;(static随着类加载而加载,this是指当前对象,super是指父类对象,this/super都是实例化产生对象后才可以调用的)
3.对文件名为Test.java的java代码描述正确的是()
在这里插入图片描述
正确答案:C
A. 输出:0000
B. 输出:123
C. 编译报错
D. 输出:No name
解析:编译报错,父类没有定义无参构造器,子类需要在自己的构造器中显式调用父类的构造器super(nm);
4.在java中,下列对继承的说法,正确的是( )

正确答案: A
A. 子类能继承父类的所有成员
B. 子类继承父类的非私有方法和状态
C. 子类只能继承父类的public方法和状态
D. 子类只能继承父类的方法
解析:子类可以继承父类的所有成员(构造函数不是成员,子类不能继承,只能通过隐式/显示调用父类的构造器),包括private的,只是不能直接访问,需要通过get/set方法来访问
5.下面哪些情况下需要使用抽象类?
正确答案: A B D
A.当一个类的一个或多个方法是抽象方法时
B.当类是一个抽象类的子类,并且不能为任何抽象方法提供任何实现细节或方法体时
C.当一个类实现多个接口时
D.当一个类实现一个接口,并且不能为任何抽象方法提供实现细节或方法体时
解析:含有抽象方法的类必须声明为抽象类,而抽象类里的所有抽象方法都必须被子类所重写。
6.对于构造方法,下列叙述正确的是( )。
正确答案: A C D
A.构造方法的优先级一般比代码块低。
B.构造方法的返回类型只能是void型。
C.构造方法的主要作用是完成对类的对象的初始化工作。
D.一般在创建新对象时,系统会自动调用构造方法。
解析:静态成员变量或静态代码块>main方法>非静态成员变量或非静态代码块>构造方法
7.Given the following code:
import EnclosingOne.InsideOne
在这里插入图片描述
Which statement at line 11 constructs an instance of the inner class?
正确答案: A D
A. InsideOne ei=eo.new InsideOne();
B. eo.InsideOne ei=eo.new InsideOne();
C. InsideOne ei=EnclosingOne.new InsideOne();
D. EnclosingOne.InsideOne ei=eo.new InsideOne();

解析:
对于A,必须得import EnclosingOne.InsideOne,才可以

//import com.day16.EnclosingOne.*;
//或者使用InsideOne就导入InsideOne,使用InsideTwo就导入InsideTwo
import com.day16.EnclosingOne.InsideOne;
public class EnclosingOne {
    //非静态内部类
    public class InsideOne{    }
    //静态内部类
    public static class InsideTwo{}

}
class EnclosingOneTest{
    public static void main(String[] args) {
        EnclosingOne eo = new EnclosingOne();
        //对于A答案
        InsideOne ei = eo.new InsideOne();//必须import才可以
        //eo.new InsideOne();其实就是new EnclosingOne().InsideOne();
        EnclosingOne.InsideOne ei1 = eo.new InsideOne();//非静态内部类对象
        EnclosingOne.InsideTwo ei2 = new EnclosingOne.InsideTwo();//静态内部类对象
    }
}

8.关于JSP生命周期的叙述,下列哪些为真?
正确答案: A C
A. JSP会先解释成Servlet源文件,然后编译成Servlet类文件
B. 每当用户端运行JSP时,jsp init()方法都会运行一次
C. 每当用户端运行JSP时,jsp service()方法都会运行一次
D. 每当用户端运行JSP时,jsp destroy()方法都会运行一次
解析:Jsp只会在客户端第一次发请求的时候被编译,之后的请求不会再编译,同时tomcat能自动检测jsp变更与否,变更则再进行编译。
第一次编译并初始化时调用: init() ;销毁调用: destroy() 。在整个jsp生命周期中均只调用一次。
service()方法是接收请求,返回响应的方法。每次请求都执行一次,该方法被HttpServlet封装为doGet和doPost方法
9.下列程序的运行结果
在这里插入图片描述
A. IOException!
B. IOException!Exception!
C. FileNotFoundException!IOException!
D. FileNotFoundException!IOException!Exception!
解析:try-catch-finally 规则( 异常处理语句的语法规则 )

  1. 必须在 try 之后添加 catch 或 finally 块。try 块后可同时接 catch 和 finally 块,但至少有一个块。
  2. 必须遵循块顺序:若代码同时使用 catch 和 finally 块,则必须将 catch 块放在 try 块之后。
  3. catch 块与相应的异常类的类型相关。
  4. 一个 try 块可能有多个 catch 块。若如此,则执行第一个匹配块。即Java虚拟机会把实际抛出的异常对象依次和各个catch代码块声明的异常类型匹配,如果异常对象为某个异常类型或 其子类的实例,就执行这个catch代码块,不会再执行其他的 catch代码块
  5. 可嵌套 try-catch-finally 结构。
  6. 在 try-catch-finally 结构中,可重新抛出异常。
  7. 除了下列情况,总将执行 finally 做为结束: JVM 过早终止(调用 System.exit(int));在 finally 块中抛出一个未处理的异常;计算机断电、失火、或遭遇病毒攻击
    总结:catch只会匹配一个,因为只要匹配了一个,虚拟机就会使整个语句退出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值