2.11Java专项测试复盘

  • 使用mvc模式设计的web应用程序具有以下优点,除了?
    A. 可维护行强
    B. 可扩展性强
    C. 代码重复少
    D. 大大减少代码量

    解析:MVC只是将分管不同功能的逻辑代码进行了隔离,增强了可维护和可扩展性,增强代码复用性,因此可以减少代码重复。但是不保证减少代码量,多层次的调用模式还有可能增加代码量
    答案:D

  • 在JAVA中,下列哪些是Object类的方法()
    A. synchronized()
    B. wait()
    C. notify()
    D. notifyAll()
    E. sleep()

    解析:Object中有的方法
    在这里插入图片描述
    答案:BCD

  • 下列说法正确的是
    A. 在类方法中可用this来调用本类的类方法
    B. 在类方法中调用本类的类方法可直接调用
    C. 在类方法中只能调用本类的类方法
    D. 在类方法中绝对不能调用实例方法

    解析:A.this是指当前对象,类方法中还不存在对象的说法;C.也可以调用其他类的类方法;D.类方法中可以创建对象,所以调用了实例方法
    答案:B

  • 下面字段声明中哪一个在interface主体内是合法的? ()
    A. private final static int answer = 42;
    B. public static int answer = 42;
    C. final static answer = 42;
    D. int answer;

    解析:在接口中,属性都是默认public static final修饰的,所以:
    A(错误):不能用private修饰;
    B(正确):在接口中,属性默认public static final,这三个关键字可以省略;
    C(错误):没写属性的类型;
    D(错误):final修饰的属性必须赋值;

    答案:B

  • 在创建派生类对象,构造函数的执行顺序()
    A. 基类构造函数,派生类对象成员构造函数,派生类本身的构造函数
    B. 派生类本身的构造函数,基类构造函数,对象成员构造函数
    C. 基类构造函数,派生类本身的构造函数,派生类对象成员构造函数
    D. 对象成员构造函数,基类构造函数,派生类本身的构造函数

    解析:类的初始化过程:父类静态域→子类静态域→父类成员初始化→父类构造块→父类构造方法→2子类成员初始化→子类构造块→子类构造方法;
    答案:A

  • 下面有关JSP内置对象的描述,说法错误的是?
    A. session对象:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止
    B. request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应
    C. application对象:多个application对象实现了用户间数据的共享,可存放全局变量
    D. response对象:response对象包含了响应客户请求的有关信息

    解析:application对象是共享的,多个用户共享一个,以此实现数据共享和通信
    答案:C

  • Java程序的种类有( )
    A. 类(Class)
    B. Applet
    C. Application
    D. Servlet

    解析:Java程序的种类有:
    (a)内嵌于Web文件中,由浏览器来观看的_Applet
    (b)可独立运行的 Application
    (c)服务器端的 Servlets

    答案:BCD

  • 下面有关webservice的描述,错误的是?
    A. Webservice是跨平台,跨语言的远程调用技术
    B. Webservice通信机制实质就是json数据交换
    C. Webservice采用了soap协议(简单对象协议)进行通信
    D. WSDL是用于描述 Web Services 以及如何对它们进行访问

    解析:它的通信机制实质就是xml数据交换
    答案:B

  • 有如下一段代码,请选择其运行结果()

	public class StringDemo{
	  private static final String MESSAGE="taobao";
	  public static void main(String [] args) {
	    String a ="tao"+"bao";
	    String b="tao";
	    String c="bao";
	    System.out.println(a==MESSAGE);
	    System.out.println((b+c)==MESSAGE);
	  }
	}
	```
	A. true		 true
	B. false	 false
	C. true		 false
	D. false	 true

	**解析:(b+c)==MESSAGE 这相当于 new String(b+c)==MESSAGE 这里new了一个String对象,所以返回false**
	答案:C

- 关于Java的一些概念,下面哪些描述是正确的:(    )
	A. 所有的Java异常和错误的基类都是java.lang.Exception, 包括java.lang.RuntimeException
	B. 通过try … catch … finally语句,finally中的语句部分无论发生什么异常都会得到执行
	C. java中所有的数据都是对象
	D. Java通过垃圾回收回收不再引用的变量,垃圾回收时对象的finallize方法一定会得到执行
	E. Java是跨平台的语言,无论通过哪个版本的Java编写的程序都能在所有的Java运行平台中运行
	F. Java通过synchronized进行访问的同步,synchronized作用非静态成员方法和静态成员方法上同步的目标是不同的

	**解析:
	A、java异常和错误的基类Throwable,包括Exception和Error
B、try...catch...finally finally不管什么异常都会执行
C、java是面向对象的,但是不是所有的都是对象,基本数据类型就不是对象,所以才会有封装类的;
D、如果是等待清理队列中如果又被调用,则不会执行finallize方法
E、JAVA跨平台性    实现在任意平台的java程序都可以在其他平台运行 ,低版本JRE无法运行高版本JRE
F、synchronized实现方式:三种**
	答案:B

- 请问以下代码运行结果是:
	![在这里插入图片描述](https://img-blog.csdnimg.cn/20200211221627679.png)
	A. try catch
	B. try finally  catch
	C. try finally
	D. try catch finally

	**解析:throws:写在方法声明之后,表示方法可能抛出异常,调用者需要处理这个异常。
throw:写在方法体中,表示方法一定会抛出一个异常,要么try...catch处理,要么throws抛出。
本题正是有了throw,所以才会顺序执行,否则不执行catch块中的语句。**
	答案:D
	
- 	下列说法正确的是()?
	A. 对于局部内部类,只有在方法的局部变量被标记为final或局部变量是effctively final的,内部类才能使用它们
	B. 成员内部类位于外部类内部,可以直接调用外部类的所有方法(静态方法和非静态方法)
	C. 由于匿名内部类只能用在方法内部,所以匿名内部类的用法与局部内部类是一致的
	D. 静态内部类可以访问外部类的成员变量

	**解析:A、对。B、对。
C、错。匿名内部类用法与局部内部类不一致,首先从定义上就不一样,匿名类用在任何允许存在表达式的地方,而局部内部类用于在任何允许出现局部变量的地方出现。
还有更重要的是匿名类只能使用一次,而局部类则可以在自己的定义域内多次使用。
D、错。静态内部类不能直接访问外部类的非静态成员,但可以通过new外部类().成员的方式访问。**
	答案:AB

- 下列哪些方法是针对循环优化进行的
	A. 强度削弱
	B. 删除归纳变量
	C. 删除多余运算
	D. 代码外提

	**解析:循环优化:死代码删除,代码外提,强度削弱,删除归纳变量,复写传播**
	答案:ABD
	
- 以下J2EE中常用的名词解释错误的是?
	A. EJB容器:Enterprise java bean 容器
	B. JNDI:JAVA事务服务。提供各种分布式事务服务。应用程序只需调用其提供的接口即可。
	C. JMS:JAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播。
	D. JAF:JAVA安全认证框架。提供一些安全控制方面的框架。

	**解析:J2EE中常用的名词解释
1.web容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET直接和容器中的环境变量接接口互,不必关注其它系统问题。主要有WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的WEB APPLICATION 标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。
2.Web container:实现J2EE体系结构中Web组件协议的容器。这个协议规定了一个Web组件运行时的环境,包括安全,一致性,生命周期管理,事务,配置和其它的服务。一个提供和JSP和J2EE平台APIs界面相同服务的容器。一个Web container 由Web服务器或者J2EE服务器提供。
3.EJB容器:Enterprise java bean 容器。更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。一个实现了J2EE体系结构中EJB组件规范的容器。 这个规范指定了一个Enterprise bean的运行时环境,包括安全,一致性,生命周期,事务, 配置,和其他的服务。
4.JNDI:(Java Naming & Directory Interface)JAVA命名目录服务。主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。
5.JMS:(Java Message Service)JAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播。
6.JTA:(Java Transaction API)JAVA事务服务。提供各种分布式事务服务。应用程序只需调用其提供的接口即可。
7.JAF:(Java Action FrameWork)JAVA安全认证框架。提供一些安全控制方面的框架。让开发者通过各种部署和自定义实现自己的个性安全控制策略。
8.RMI/IIOP:(Remote Method Invocation /internet对象请求中介协议)他们主要用于通过远程调用服务。例如,远程有一台计算机上运行一个程序,它提供股票分析服务,我们可以在本地计算机上实现对其直接调用。当然这是要通过一定的规范才能在异构的系统之间进行通信。RMI是JAVA特有的。RMI-IIOP出现以前,只有RMI和CORBA两种选择来进行分布式程序设计。RMI-IIOP综合了RMI和CORBA的优点,克服了他们的缺点,使得程序员能更方便的编写分布式程序设计,实现分布式计算。首先,RMI-IIOP综合了RMI的简单性和CORBA的多语言性(兼容性),其次RMI-IIOP克服了RMI只能用于Java的缺点和CORBA的复杂性(可以不用掌握IDL)。**
	答案:B
	
- 下列关于JavaBean的说法正确的是:
	A. Java文件与Bean所定义的类名可以不同,但一定要注意区分字母的大小写
	B. 在JSP文件中引用Bean,其实就是用语句
	C. 被引用的Bean文件的文件名后缀为.java
	D. Bean文件放在任何目录下都可以被引用

	**解析:A: Bean定义的类名的含义应该是实例化的一个类,在JSP中相当于id,class属性对应的是需要编译的类,在后面用到id的实例化类名 需要区分大小写
B: 是声明了一个Bean  不是引用
C: 引用的文件是web-Inf\class\下的class文件
D: 需要放在web-Inf\class\**
	答案:A
	
- jdk1.8中,下面有关java 抽象类和接口的区别,说法错误的是?
	A. 抽象类可以有构造方法,接口中不能有构造方法
	B. 抽象类中可以包含非抽象的普通方法,接口中的方法必须是抽象的,不能有非抽象的普通方法
	C. 一个类可以实现多个接口,但只能继承一个抽象类
	D. 接口中可以有普通成员变量,抽象类中没有普通成员变量

	**解析:
	抽象类
特点:
1.抽象类中可以构造方法
2.抽象类中可以存在普通属性,方法,静态属性和方法。
3.抽象类中可以存在抽象方法。
4.如果一个类中有一个抽象方法,那么当前类一定是抽象类;抽象类中不一定有抽象方法。
5.抽象类中的抽象方法,需要有子类实现,如果子类不实现,则子类也需要定义为抽象的。
接口
1.在接口中只有方法的声明,没有方法体。
2.在接口中只有常量,因为定义的变量,在编译的时候都会默认加上
public static final 
3.在接口中的方法,永远都被public来修饰。
4.接口中没有构造方法,也不能实例化接口的对象。
5.接口可以实现多继承
6.接口中定义的方法都需要有实现类来实现,如果实现类不能实现接口中的所有方法
7.则实现类定义为抽象类。**
	答案:BD
posted @ 2020-02-11 22:36  19呀  阅读(381)  评论(0编辑  收藏  举报