一、 判断题(3分×10) 1√2×
1、 子类的构造过程中,必须调用其父类的构造方法。(1)
2、 接口是公开的,里面不能有私有的方法或变量。(1)
3、 抽象类是可以有私有方法或私有变量的。(1)
4、 Java 语言中,一个类可以使用多次继承关系。(2) java是单继承
5、 捕获java异常用多个catch语句时,catch语句块在次序上没有先后之分。(2)
6、 在启动一个线程的时候一定要使用start()而不是run()。(1)
7、 接口中的方法都是抽象方法。(1)
8、 接口可以有构造方法,能被实例化。(2)接口不可以实例化,但是可以有一个类来实现接口,
9、 应用程序可以使用Executor框架来创建线程池。(1)
10、Java中static方法可以被覆盖。(2)方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的
二、单选题(3分×10)
1、下面关于异常类的说法错误的是(C)
A Java异常的基类为java.lang.Throwable
B java.lang.Error和java.lang.Exception继承 Throwable
C RuntimeExceptionn继承 Throwable
Java异常的基类为java.lang.Throwable,java.lang.Error和java.lang.Exception继承 Throwable,RuntimeException和其它的Exception等继承Exception
2、下面程序的运行结果是(B)
String str1 = "hello";
String str2 = "he" + new String("llo");
System.err.println(str1 == str2);
A true B false C 编译错误
3、下列说法正确的有(C)
A. class中的constructor不可省略
B. constructor必须与class同名,但方法不能与class同名
C. constructor在一个对象被new时执行
D.一个class只能定义一个constructor
4、GC线程是否为守护线程?(A)
A. 是 B 否
Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程)
用户线程即运行在前台的线程,而守护线程是运行在后台的线程。 守护线程作用是为其他前台线程的运行提供便利服务,而且仅在普通、非守护线程仍然运行时才需要,比如垃圾回收线程就是一个守护线程。当VM检测仅剩一个守护线程,而用户线程都已经退出运行时,VM就会退出,因为没有如果没有了被守护这,也就没有继续运行程序的必要了。如果有非守护线程仍然存活,VM就不会退出。
5、volatile关键字是否能保证线程安全?(B)
A. 能 B不能
volatile不是保护线程安全的。
它保护的是变量安全。主要的功能是保护变量不被主函数和中断函数反复修改造成读写错误
volatile关键字用在多线程同步中,可保证读取的可见性,JVM只是保证从主内存加载到线程工作内存的值是最新的读取值,而非cache中。但多个线程对
volatile的写操作,无法保证线程安全。例如假如线程1,线程2 在进行read,load 操作中,发现主内存中count的值都是5,那么都会加载这个最新的值,在线程1堆count进行修改之后,会write到主内存中,主内存中的count变量就会变为6;线程2由于已经进行read,load操作,在进行运算之后,也会更新主内存count的变量值为6;导致两个线程及时用volatile关键字修改之后,还是会存在并发的情况。
6、存在使i + 1 < i的数吗(A)
A. 存在 B 不存在
i为int能表示的最大整数时,i+1就溢出变成负数了
java中int是32,范围是-2147483648--2147483647 这个数字就是2147483647
7、0.6332的数据类型是(B)
A float B double C Float D Double
默认为double型,如果为float型需要加上f显示说明,即0.6332f
8、下面哪个流类属于面向字符的输入流( D )
A BufferedWriter B FileInputStream C ObjectInputStream D InputStreamReader
Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式。
面向字节的操作为以8位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是InputStream和OutputStream的子类。
面向字符的操作为以字符为单位对数据进行操作,在读的时候将二进制数据转为字符,在写的时候将字符转为二进制数据,这些类都是Reader和Writer的子类。
总结:以InputStream(输入)/OutputStream(输出)为后缀的是字节流;
以Reader(输入)/Writer(输出)为后缀的是字符流。
9、默认ArrayList的长度是 (C)
A 0 B 1 C 10 D 20
10、System.out.println("5" + 2);的输出结果应该是(A)。
A 52 B7 C2 D5
三、多选题(4分×10)
1、下面哪些是Thread类的方法(ABD) exit()是System类的方法,如System.exit(0)
A start() B run() C exit() D getPriority()
2、下面程序的运行结果,描述错误的是:(ACD)
public static void main(String args[]) {
Thread t = new Thread() {
public void run() {
pong();
}
};
t.run();
System.out.print("ping");
}
static void pong() {
System.out.print("pong");
}
A pingpong B pongping C pingpong和pongping都有可能 D 都不输出
start()用来启动一个线程,当调用start方法后,系统才会开启一个新的线程,进而调用run()方法来执行任务,而单独的调用run()就跟调用普通方法是一样的,已经失去线程的特性了。因此在启动一个线程的时候一定要使用start()而不是run()。
3、下列属于关系型数据库的是(AB)-还有DB2
A. Oracle B MySql C IMS-层次数据库 D MongoDB
非关系型数据库有MongoDB、memcachedb、Redis等
4、下列说法正确的是(AC)
A LinkedList继承自List
B AbstractSet继承自Set
C HashSet继承自AbstractSet
D WeakMap继承自HashMap
5、Java接口的修饰符可以为(CD)
A private B protected C final D abstract
接口的方法默认是public abstract;接口中不可以定义变量即只能定义常量(加上final修饰就会变成常量)。所以接口的属性默认是public static final 常量,且必须赋初值。final和abstract不能同时出现
6、Java创建对象的几种方式,正确的有(ABCD)
A 用new语句创建对象。
B 运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。
C 调用对象的clone()方法。
D 运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法。
7、下面哪些是对称加密算法(AB)
A DES B AES C DSA D RSA
常用的对称加密算法有:DES、3DES、RC2、RC4、AES
常用的非对称加密算法有:RSA、DSA、ECC
使用单向散列函数的加密算法:MD5、SHA
8、新建一个流对象,下面哪个选项的代码是正确的?(ACD)
A)new BufferedWriter(new FileWriter("a.txt"));
B)new BufferedReader(new FileInputStream("a.dat"));
C)new GZIPOutputStream(new FileOutputStream("a.zip"));
D)new ObjectInputStream(new FileInputStream("a.dat"));
Reader只能用FileReader进行实例化。
9、下面代码的运行结果,表述错误的是:(ABD)
public class foo{
public static void main (String[] args){
String s;
System.out.println("s=" + s);
}
}
A 代码得到编译,并输出“s=”
B 代码得到编译,并输出“s=null”
C 由于String s没有初始化,代码不能编译通过
D 代码得到编译,但捕获到 NullPointException异常
Java中所有定义的基本类型或对象都必须初始化才能输出值
10、下列哪种异常是非检查型异常,不需要在编写程序时声明 (ABD)
A NullPointerException B ClassCastException
C FileNotFoundException D IndexOutOfBoundsException
留言与评论(共有 0 条评论) |