一、单选题
1. 在异常处理中,以下描述不正确的有
A、 try块不可以省略
B、 可以使用多重catch块
C、 finally块可以省略
D、 catch块和finally块可以同时省略
参考答案:D try不能单独使用,必须加catch和finally其中一个
2. 事务隔离级别是由谁实现的?
A、 Java应用程序
B、 Hibernate
C、 数据库系统
D、 JDBC驱动程序
参考答案:C
3. 语句:char foo='中',是否正确?(假设源文件以GB2312编码存储,并且以javac – encoding GB2312命令编译)
A、 正确
B、 错误
参考答案:A
Java语言中,中文字符所占的字节数取决于字符的编码方式
一般情况下,采用ISO8859-1编码方式时,一个中文字符与一个英文字符一样只占1个字节;采用GB2312或GBK编码方式时,一个中文字符占2个字节;
而采用UTF-8编码方式时,一个中文字符会占3个字节。
java中,char和byte都是基础数据类型,其中的byte和C++中的char类型是一样的,8位,1个字节,-128-127。但是,char类型,是16位,2个字节, '\u0000'-'\uFFFF'。
为什么java里的char是2个字节?
因为java内部都是用unicode的,所以java其实是支持中文变量名的,比如string 世界 = "我的世界";这样的语句是可以通过的。
综上,java中采用GB2312或GBK编码方式时,一个中文字符占2个字节,而char是2个字节,所以是对的
4. 以下哪项陈述是正确的?
A、 垃圾回收线程的优先级很高,以保证不再使用的内存将被及时回收
B、 垃圾收集允许程序开发者明确指定释放哪一个对象
C、 垃圾回收机制保证了JAVA程序不会出现内存溢出
D、 进入”Dead”状态的线程将被垃圾回收器回收
E、 以上都不对
参考答案:E
- 垃圾回收线程属于守护线程,只有所有用户线程都结束运行,才会随jvm一起结束, 优先级很低
- 垃圾收集器(GC)程序开发者只能推荐JVM进行回收,但何时回收,回收哪些,程序员不能控制。
- 垃圾回收机制只是回收不再使用的JVM内存,如果程序有严重BUG,照样内存溢出。
- 进入DEAD的线程,它还可以恢复,GC不会回收
5. 下列哪个对访问修饰符作用范围由大到小排列是正确的?()
A、 public>protected>default>private
B、 public>default>protected>private
C、 private>protected>default>public
D、 private>default>protected>public
参考答案:A
6. 下列符号中可以在 java 程序里表示单行注释的是( )
A、 --
B、 /* ……*/
C、 //
D、 /** ……*/
参考答案:C
- -- sql注释
- /* ……*/ 块注释
- //单行注释
- /**……*/ 文档注释
7. Java 语言中创建一个对象使用的关键字是()
A、 class
B、 interface
C、 new
D、 create
参考答案:C
8. 下面关于 new 关键字的表述错误的是()
A、 new关键字在生成一个对象时会为对象开辟内存空间
B、 new关键字在生成一个对象时会调用类的构造方法
C、 new关键字在生成一个对象时会将生成的对象的地址返回
D、 Java中只能通过new关键字来生成一个对象
参考答案:D
生成一个对象:
- new
- 反序列化
- 反射
- 克隆
9. 有这样一段程序
public class Test{
public static void main(String [] args){
List list=new ArrayList();
list.add("a");
list.add("b");
list.add("a");
Set set=new HashSet();
set.add("a");
set.add("b");
set.add("a");
System.out.println(list.size()+","+set.size());
}
}
请问运行主要的程序会打印出的是什么()
A、 2,2
B、 2,3
C、 3,2
D、 3,3
参考答案:C
- list可重复,size为3
- set会去重,size为2
10. 当你编译和运行下面的代码时,会出现下面选项中的哪种情况?( )
public class Pvf{
static boolean Paddy;
public static void main(String args[]){
System.out.println(Paddy);
}
}
A、 编译时错误
B、 编译通过并输出结果false
C、 编译通过并输出结果true
D、 编译通过并输出结果null
参考答案:B
static boolean Paddy; //成员变量,有默认值 false
11. 给定以下JAVA代码,这段代码运行后输出的结果是()
public class Test
{
public static int aMethod(int i)throws Exception
{
try{
return i/10;
}
catch (Exception ex)
{
throw new Exception("exception in a aMethod");
}finally{
System.out.printf("finally");
}
}
public static void main(String[] args){
try
{
aMethod(0);
}
catch (Exception ex)
{
System.out.printf("exception in main");
}
System.out.printf("finished");
}
}
A、 exception in main finished
B、 finallyfinished
C、 exception in main finally
D、 finally exception in main finally
参考答案:B
0/10永远不会出错,10/0会出异常
12. 假设 A 类有如下定义,设 a 是 A 类同一个包下的一个实例,下列语句调用哪个是错误的?()
class A{
int i;
static String s;
void method1() { }
static void method2() { }
}
A、 System.out.println(a.i);
B、 a.method1();
C、 A.method1();
D、 A.method2()
参考答案:C
method1不是静态的,不能用类名A调用。
13. 关于如下程序的描述哪个是正确的?( )
public class Person{
static int arr[] = new int[5];
public static void main(String a[]){
System.out.println(arr[0]);
}
}
A、 编译将产生错误
B、 编译时正确,但运行时将产生错误
C、 正确,输出0
D、 正确,输出 null
参考答案:C
- 基本类型,默认0;本题数组为int类型
- 引用类型,默认null
14. 执行下列代码的输出结果是( )
public class Demo { public static void main(String args[]) { int num = 10