2.15测试复盘

  • 以下声明合法的是:
    A. default String s
    B. public final static native int w()
    C. abstract double d
    D. abstract final double hyperholicCosine()

    解析:A. default不能修饰变量。B. native修饰方法,native修饰的方法简单来说就是:一个Java方法调用了一个非Java代码的接口。C. 普通变量不能用abstract修饰,abstract一般修饰方法和类。D. abstract与final不能共用,一个要继承一个不能被继承,矛盾。
    答案:B

  • 在一个基于分布式的游戏服务器系统中,不同的服务器之间,哪种通信方式是不可行的()?
    A. 管道
    B. 消息队列
    C. 高速缓存数据库
    D. 套接字

    解析:要求是对于不同的服务器之间的通信,是要求全双工形式的,而管道只能是半双工,虽然可以双向,但是同一时间只能有一个方向传输
    答案:A

  • 下列不是Java关键字的是()
    A. abstract
    B. false
    C. native
    D. sizeof

    解析:
    1)48个关键字:abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while。
    2)2个保留字(现在没用以后可能用到作为关键字):goto、const。
    3)3个特殊直接量:true、false、null。

    答案:BD

  • 关于依赖注入,下列选项中说法错误的是()
    A. 依赖注入能够独立开发各组件,然后根据组件间关系进行组装
    B. 依赖注入提供使用接口编程
    C. 依赖注入使组件之间相互依赖,相互制约
    D. 依赖注入指对象在使用时动态注入

    解析:依赖注入目的是减少组件之间的耦合度
    答案:C

  • 关于中间件特点的描述不正确的是()
    A. 中间件运行于客户机/服务器的操作系统内核中,提高内核运行效率
    B. 中间件应支持标准的协议和接口
    C. 中间件可运行于多种硬件和操作系统平台上
    D. 跨越网络,硬件,操作系统平台的应用或服务可通过中间件透明交互

    解析:中间件并不能提高内核的效率,一般只是负责网络信息的分发处理。
    中间件特点的描述:
    1.中间件应支持标准的协议和接口
    2.中间件可运行于多种硬件和操作系统平台上
    3.跨越网络,硬件,操作系统平台的应用或服务可通过中间件透明交互

    答案:A

  • 下面哪个行为被打断不会导致InterruptedException:()?
    A. Thread.join
    B. Thread.sleep
    C. Object.wait
    D. CyclicBarrier.await
    E. Thread.suspend

    解析:API里面写的:当线程在活动之前或活动期间处于正在等待、休眠或占用状态且该线程被中断时,抛出该异常。D.CyclicBarrier是一个屏障类,它的await方法可以简单的理解为:等待多个线程同时到达之后才能继续进行,在此之前它就是这些线程的屏障,线程不能继续进行,而对于失败的同步尝试,CyclicBarrier 使用了一种要么全部要么全不 (all-or-none) 的破坏模式:如果因为中断、失败或者超时等原因,导致线程过早地离开了屏障点,那么在该屏障点等待的其他所有线程也将通过 BrokenBarrierException(如果它们几乎同时被中断,则用 interruptedException)以反常的方式离开。因此它被中断也是可以抛出interruptedException的。E. 调用Suspend使线程挂起,暂停执行,故suspend不会抛出该异常。
    答案:E

  • What is the result of compling and executing the following fragment of code:

	Boolean flag = false;
	if (flag = true)
	{
	    System.out.println(“true”);
	}
	else
	{
	    System.out.println(“false”);
	}
	```
	A. The code fails to compile at the “if” statement.
	B. An exception is thrown at run-time at the “if” statement.
	C. The text“true” is displayed.
	D. The text“false”is displayed.
	E. Nothing is displayed.
	
	**解析:if的语句比较,除boolean外的其他类型都不能使用赋值语句,否则会提示无法转成布尔值。**
	答案:C 
	
- 下列关于包(package)的描述,正确的是()
	A. 包(package)是Java中描述操作系统对多个源代码文件组织的一种方式。
	B. import语句将所对应的Java源文件拷贝到此处执行。
	C. 包(package)是Eclipse组织Java项目特有的一种方式。
	D. 定义在同一个包(package)内的类可以不经过import而直接相互使用。

	**解析:1、为了更好地组织类,Java提供了包机制。包是类的容器,用于分隔类名空间。如果没有指定包名,所有的示例都属于一个默认的无名包。Java中的包一般均包含相关的类,java是跨平台的,所以java中的包和操作系统没有任何关系,java的包是用来组织文件的一种虚拟文件系统。A错
2、import语句并没有将对应的java源文件拷贝到此处仅仅是引入,告诉编译器有使用外部文件,编译的时候要去读取这个外部文件。B错
3、Java提供的包机制与IDE没有关系。C错
4、定义在同一个包(package)内的类可以不经过import而直接相互使用。**
	答案:D

- 以下哪个I/O类可以附加或更新文件
	A. RandomAccessFile()
	B. OutputStream()
	C. DataOutputStream()
	D. None of the above

	**解析:**
	答案:A

- 以下代码将打印出
```java
	public static void main (String[] args) { 
	    String classFile = "com.jd.". replaceAll(".", "/") + "MyClass.class";
	    System.out.println(classFile);
	}
	```
	A. com. jd
	B. com/jd/MyClass.class
	C. ///////MyClass.class
	D. com.jd.MyClass

	**解析:由于replaceAll方法的第一个参数是一个正则表达式,而"."在正则表达式中表示任何字符,所以会把前面字符串的所有字符都替换成"/"。如果想替换的只是“.”的话,正则表达式那里就要写成“\\.”或者是“[.]”。前者将“.”转义为“.”这个具体字符,后者则匹配“[]”中的任意字符,“.”就代表具体字符“.”**
	答案:C
	
- 下列哪一项不是加载驱动程序的方法?
	A. 通过DriverManager.getConnection方法加载
	B. 调用方法 Class.forName
	C. 通过添加系统的jdbc.drivers属性
	D. 通过registerDriver方法注册
	
	**解析:DriverManager.getConnection方法返回一个Connection对象,这是加载驱动之后才能进行的。**
	答案:A

- 如何获取ServletContext设置的参数值?
	A. context.getParameter()
	B. context.getInitParameter()
	C. context.getAttribute()
	D. context.getRequestDispatcher()

	**解析:
	getParameter()是获取POST/GET传递的参数值;
	getInitParameter获取Tomcat的server.xml中设置Context的初始化参数
	getAttribute()是获取对象容器中的数据值;
	getRequestDispatcher是请求转发。**
	答案:B

- 在Java语言中,下列关于字符集编码(Character set encoding)和国际化(i18n)的问题,哪些是正确的?
	A. 每个中文字符占用2个字节,每个英文字符占用1个字节
	B. 假设数据库中的字符是以GBK编码的,那么显示数据库数据的网页也必须是GBK编码的。
	C. Java的char类型,通常以UTF-16 Big Endian的方式保存一个字符。
	D. 实现国际化应用常用的手段是利用ResourceBundle类

	**解析:
	A. Java一律采用Unicode编码方式,每个字符无论中文还是英文字符都占用2个字节。
	B 也是不正确的,不同的编码之间是可以转换的,通常流程如下:将字符串S以其自身编码方式分解为字节数组,再将字节数组以你想要输出的编码方式重新编码为字符串。
例:String newUTF8Str = new String(oldGBKStr.getBytes("GBK"), "UTF8");
C 是正确的。Java虚拟机中通常使用UTF-16的方式保存一个字符
D 也是正确的。ResourceBundle能够依据Local的不同,选择性的读取与Local对应后缀的properties文件,以达到国际化的目的。**
	答案:CD 
posted @ 2020-02-18 11:08  19呀  阅读(595)  评论(4编辑  收藏  举报