java选择题 10

1.下列关于继承的哪项叙述是正确的?

A.在java中类允许多继承
B.在java中一个类只能实现一个接口
C.在java中一个类不能同时继承一个类和实现一个接口
D.java的单一继承使代码更可靠
正确答案: D

解析:Java是单继承,但是可以实现多个接口。
原因:为什么不能实现类的多继承?为了防止多个类中有相同的方法名,这个时候,子类不知道要重写哪一个方法, 但是接口可以有多个,因为接口没有方法体,无论重写哪一个,没有区别。


2.abstract和final可以同时作为一个类的修饰符。( )

A.同一个
B.不是同一个
C.他们不是一个类的修饰符
D.以上都对
正确答案: C

解析:Abstract表示抽象类,抽象类本身不可实例化,必须有子类去继承,且子类中实现抽象父类中所有的抽象方法,子类才可实例化。
final修饰的类,不可继承。
这个修饰符功能相克的。

3.下面的方法,当输入为2的时候返回值是多少?( )

public static int getValue(int i) {
int result = 0;
switch (i) {
case 1:
result = result + i;
case 2:
result = result + i * 2;
case 3:
result = result + i * 3;
}
return result;
}

A.0
B.2
C.4
D.10
正确答案: D


    解析:
    当i=2时,执行程序

    Case2:result=4;

    Case3:result=4+6=10;

    没有Break,就会顺序执行下去

4.下列语句哪一个是不正确的()

A.Log4j支持按分钟为间隔生成新的日志文件
B.Log4j是一个打印日志用的组件
C.Log4j支持按年为间隔生成新的日志文件
D.Log4j的日志打印级别可以在运行时重新设置
正确答案: D

解析:日志的级别之间的大小关系如右所示:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL
< OFF Log4j建议只使用四个级别,优先级从高到低分别是 ERROR > WARN > INFO > DEBUG。
log4j在运行期间是不可以重新设置的

5.下列不属于Java语言性特点的是 ( )

A.Java致力于检查程序在编译和运行时的错误
B.Java能运行虚拟机实现跨平台
C.Java自己操纵内存减少了内存出错的可能性
D.Java还实现了真数组,避免了覆盖数据类型的可能

正确答案: D

解析: 程序设计语言中,数组元素在内存中是一个接着一个线性存放的,通过第一个元素就能访问随后的元素,这样的数组称之为“真数组”。
实现了真数组为Java语言健壮性的特点之一。

6.以下JAVA程序代码的输出是( )


A.2744
B.13
C.17
D.11
正确答案: B

解释:
^表示异或 就是相同是0 不同是1
14是1110
3是0011
所以14^3=1101,即13

7.此代码片段输出正确的值是()

public class CharToString {
 public static void main(String[] args)
 {
  char myChar = 'g';
  String myStr = Character.toString(myChar);
  System.out.println("String is: "+myStr);
  myStr = String.valueOf(myChar);
  System.out.println("String is: "+myStr);
 }
}

A.String is: g
String is: g
B.String is: 103
String is: g
C.String is: g
String is: 103
D.String is: 103
String is: 103

正确答案: A

public static String toString(char c) { return String.valueOf©; }
public static String valueOf(char c) { char data[] = {c}; return new String(data, true); }
返回的都是字符串,只有char变成 int 的时候才会变为对应的assic码


8.对Collection和Collections描述正确的是( )

A.Collection是java.util下的类,它包含有各种有关集合操作的静态方法
B.Collection是java.util下的接口,它是各种集合结构的父接口
C.Collections是java.util下的接口,它是各种集合结构的父接口
D.Collections是java.util下的类,它包含有各种有关集合操作的静态方法


正确答案: B D都是正确的

解释:
BD
java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。
java.util.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。

9.下面有关Java的说法正确的是( )

A.一个类可以实现多个接口
B.抽象类必须有抽象方法
C.protected成员在子类可见性可以修改
D.通过super可以调用父类构造函数
E.final的成员方法实现中只能读取类的成员变量
F.String是不可修改的,且java运行环境中对string对象有一个对象池保存

正确答案: A C D F

解释:
抽象类能继承一个普通类(或抽象类),实现多个接口。
抽象类和普通类相比只是不能被实例化,只能作为子类的超类。
抽象类是用来捕捉子类的通用特性的,被用来创建继承层级里子类的模板。
可以有默认的方法实现。
抽象类可以有构造方法。
可以有main方法。
不必须有抽象方法,但是包含抽象方法的类一定是抽象类。
===接口===
接口能实现多个其他接口。
接口是抽象方法的集合,一个类实现了某个接口就必须实现抽象方法。
接口抽象方法默认修饰符是public(可以不写),不能使用其他修饰符。
java 8中接口可以包含具体的方法实现,方法实现必须default修饰。

 

10.以下各类中哪几个是线程安全的?( )

A.ArrayList
B.Vectors
C.Hashtables
D.Stack
正确答案: D

解释:
BCD
在集合框架中,有些类是线程安全的,这些都是jdk1.1中的出现的。在jdk1.2之后,就出现许许多多非线程安全的类。 下面是这些线程安全的同步的类:
vector:就比arraylist多了个同步化机制(线程安全),因为效率较低,现在已经不太建议使用。在web应用中,特别是前台页面,往往效率(页面响应速度)是优先考虑的。
statck:堆栈类,先进后出
hashtable:就比hashmap多了个线程安全
enumeration:枚举,相当于迭代器
除了这些之外,其他的都是非线程安全的类和接口。

你可能感兴趣的:(java,log4j,jvm)