• 错题724-java


    1.代码片段:

    byte b1=1,b2=2,b3,b6; 
    final byte b4=4,b5=6; 
    b6=b4+b5; 
    b3=(b1+b2); 
    System.out.println(b3+b6);
    

     关于上面代码片段叙述正确的是()

       A.输出结果:13

    B.语句:b6=b4+b5编译出错
    C.语句:b3=b1+b2编译出错
    D.运行期抛出异常
    正确答案是:C、
    解析如下:
    被final修饰的变量是常量,这里的b6=b4+b5可以看成是b6=10;在编译时就已经变为b6=10了
    而b1和b2是byte类型,java中进行计算时候将他们提升为int类型,再进行计算,b1+b2计算后已经是int类型,赋值给b3,b3是byte类型,类型不匹配,编译不会通过,需要进行强制转换。
    Java中的byte,short,char进行计算时都会提升为int类型。
     
     
     
    2.关于抽象类与最终类,下列说法错误的是?
    A.抽象类能被继承,最终类只能被实例化。
    B.抽象类和最终类都可以被声明使用
    C.抽象类中可以没有抽象方法,最终类中可以没有最终方法
    D.抽象类和最终类被继承时,方法可以被子类覆盖

    答案是:D
    解析如下:
    1,抽象类中可以有抽象方法,也可以没有抽象方法。
    2,抽象类当然可以被继承,因为它就是用来继承的,
    3,继承抽象类,若有抽象方法,则子类必须将其抽象方法实现,
    4,抽象类中的非抽象方法可以被重写。
     
    最终类和抽象类正好相反
    5,加上final的类就叫最终类,加上final的方法就叫最终方法,
    6,最终类中可以有最终方法也可以没有
    7,最终类不能有子类,最终方法不能被重写
     
    3.Java程序的种类有( )
    A.类(Class)
    B.Applet
    C.Application
    D.Servlet
    答案:B C D
     解析:

    Java程序的种类有:

    (a)内嵌于Web文件中,由浏览器来观看的_Applet

    (b)可独立运行的 Application

    (c)服务器端的 Servlets

    4.Java语言中,方法的重写(Overriding)和重载(Overloading)是多态性的不同表现。下边哪些说法是对的?

    A.重写是父类和子类之间多态性的一种表现。

    B.重写是一个类中多态性的一种表现。

    C.重载是一个类中多态性的一种表现

    D.重载是父类和子类之间多态性的一种表现。

     

    正确答案: A C   我的答案: A B C (错误) 

    解析:A C 重写(Overriding)是父类与子类之间多态性的一种表现,类的不同实现可以重写父类方法,实现同方法名,同参数,同返回类型,不同的实现。重载(Overloading)最典型的就是一个类的不同构造函数,方法名相同,参数个数不同,返回类型也可以不同,重载是一个类中多态性的一种表现。

    5.final、finally和finalize的区别中,下述说法正确的有?

    A.final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
    B.finally是异常处理语句结构的一部分,表示总是执行。
    C.finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源的回收,例如关闭文件等。
    D.引用变量被final修饰之后,不能再指向其他对象,它指向的对象的内容也是不可变的。

    正确答案: A B C   我的答案: A B C D (错误)

    解析:
    D是错误的,理由如下:
    public  class 严总 {
    int ttt = 0;
    public static void main(String argv[]) {
    严总 test = new 严总();
    final 严总 f =  test;
    //f = test;编译报错,不能只想其他对象
    f.ttt = 1;//可以修改内容,所以D是错误的
    System.out.println("ttt=" + f.ttt);
    }
    使用 final 关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。
     
    6.下面有关forward和redirect的描述,正确的是?
    A.forward是服务器将控制权转交给另外一个内部服务器对象,由新的对象来全权负责响应用户的请求
    B.执行forward时,浏览器不知道服务器发送的内容是从何处来,浏览器地址栏中还是原来的地址
    c.执行redirect时,服务器端告诉浏览器重新去请求地址
    d.forward是内部重定向,redirect是外部重定向
    E.redirect默认将产生301 Permanently moved的HTTP响应
    正确答案: B C D  
    解析:
    1.从地址栏显示来说
    forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
    redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.
     
    2.从数据共享来说
    forward:转发页面和转发到的页面可以共享request里面的数据.
    redirect:不能共享数据.
     
    3.从运用地方来说
    forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
    redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.
     
    4.从效率来说
    forward:高.
    redirect:低.
     
    7.Servlet的生命周期可以分为初始化阶段,运行阶段和销毁阶段三个阶段,以下过程属于初始化阶段是()。
    A.加载Servlet类及.class对应的数据
    B.创建serletRequest和servletResponse对象
    C.创建ServletConfig对象
    D.创建Servlet对象

     正确答案: A C D  

    解析:

    Servlet的生命周期一般可以用三个方法来表示: 

    1. init():仅执行一次,负责在装载Servlet时初始化Servlet对象
    2. service() :核心方法,一般HttpServlet中会有get,post两种处理方式。在调用doGet和doPost方法时会构造servletRequest和servletResponse请求和响应对象作为参数。
    3. destory():在停止并且卸载Servlet时执行,负责释放资源

    初始化阶段:Servlet启动,会读取配置文件中的信息,构造指定的Servlet对象,创建ServletConfig对象,将ServletConfig作为参数来调用init()方法。所以选ACD。B是在调用service方法时才构造的

    Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。 Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。 这个过程为: 1) 客户端发送请求至服务器端; 2) 服务器将请求信息发送至 Servlet; 3) Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求; 4) 服务器将响应返回给客户端。

    Servlet的生命周期可以分为初始化阶段,运行阶段和销毁阶段三个阶段,以下过程属于初始化阶段是
    1.  加载Servlet类及.class对应的数据
    2. 创建ServletConfig对象
    3. 创建Servlet对象
     
    每一次请求来到容器时,会产生HttpServletRequest与HttpServlceResponse对象,并在调用service()方法时当做参数传入。
    在WEB容器启动后,会读取Servlet设置信息,将Servlet类加载并实例化,并为每个Servlet设置信息产生一个ServletConfig对象,而后调用Servlet接口的init()方法,并将产生的ServletConfig对象当作参数传入。
  • 相关阅读:
    python可变的参数列表
    python函数中的关键字参数
    python中的else子句
    python3中的range函数
    python列表和分片
    jmeter 参数化四种方式
    redis集群和单点可以共存
    localhost与127.0.0.1的区别是什么
    Pytest单元测试框架-Pytest环境安装
    Nginx、HAProxy、LVS三者的优缺点
  • 原文地址:https://www.cnblogs.com/shenxiaoquan/p/5701752.html
Copyright © 2020-2023  润新知