赞
踩
- int i = 3;
- String result = new String();
- switch (i) {
- case 1:
- result = result + "him ";
- case 2:
- result = result + "her ";
- case 3:
- result = result + "it ";
- default:
- result = result + "me ";
- }
- System.out.println(result);
A.it me
B.him her it me
C.him her
D.me
答案:
A
解析:
根据switch()括号里的值,进行匹配,走相应的case。case没有break就继续往下走
A.java要求编程者管理内存
B.java的安全性体现在多个层次上
C.java中没有指针机制
D.java有多线程机制
答案:
A
解析:
java与C 很大的一点区别就是java是不需要使用者关注内存分配以及管理的
A.short
B.Boolean
C.byte
D.float
答案:
B
解析:
java规定类名首字母必须大写,这里可以直观的看出来Boolean是一个引用类型,不是基本数据类型。
java中的基本数据类型都对应一个引用类型,如Float是float的引用类型,Integer是int的引用类型
A.在类方法中可用this来调用本类的类方法
B.在类方法中调用本类的类方法时可直接调用
C.在类方法中只能调用本类中的类方法
D.在类方法中绝对不能调用实例方法
答案:
B
解析:
在类方法中不能有this关键字,直接调用类方法即可,A错误,B正确,在类方法中可以通过创建实例对象调用类的实例方法,C\D错误
A.javac
B.javah
C.javadoc
D.jar
答案:
C
解析:
jar 将许多文件组合成一个jar文件
javac 编译
javadoc 它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。
javah 把java代码声明的JNI方法转化成C\C++头文件。
- static boolean foo(char c)
- {
- System.out.print(c);
- return true;
- }
- public static void main(String[] args) {
- int i =0;
- for(foo('A');foo('B')&&(i<2);foo('C'))
- {
- i++;
- foo('D');
- }
- }
A.ABDCBDCB
B.ABCDABCD
C.编译时出错
D.运行时抛出异常
答案:
A
解析:
这题考察的应该是for循环的执行顺序:
1只在开头执行一次便不再执行;然后是2->4->3->2->4->3这样循环下去;等到满足终止条件时到2就停止了。
A.用throws定义了方法可能抛出的异常,那么调用此方法时一定会抛出此异常。
B.如果try块中没有抛出异常,finally块中的语句将不会被执行。
C.抛出异常意味着程序发生运行时错误,需要调试修改
D.Java中的可不检测(unchecked)异常可能来自RuntimeException类或其子类。
答案:
D
解析:
A错 在调用此方法的时候 也可以再次申明以将异常交由更高一级处理。
B错 finally块中的语句一定会被执行。除非catch块中有System.exit(0)。
C错 抛出异常不一定是运行时异常,也有可能是编译时异常。
D对 运行时异常的特点是Java编译器不会检查它。
- public class SwitchTest{//1
- public static void main(String[] args) {//2
- System.out.println("value="+switchit(4));//3
- }//4
- public static int switchit(int x) {
- int j=1;
- switch (x) {
- case 1:j++;
- case 2:j++;
- case 3:j++;
- case 4:j++;
- case 5:j++;
- default:j++;
- }
- return j+x;
- }
- }
A.value=6
B.value=8
C.value=3
D.value=5
E.value=4
答案:
B
解析:
没有break,从case 4开始一直执行到最后,j自加3次变成了4,结果返回8
- public class Demo{
- public static void main(String[] args){
- System.out.print(getNumber(0));
- System.out.print(getNumber(1));
- System.out.print(getNumber(2));
- System.out.print(getNumber(4));
- }
-
- public static int getNumber(int num){
- try{
- int result = 2 / num;
- return result;
- }catch (Exception exception){
- return 0;
- }finally{
- if(num == 0){
- return -1;
- }
- if(num == 1){
- return 1;
- }
- }
- }
- }
A.0110
B.-1110
C.0211
D.-1211
答案:
B
解析:
finally一定会在return之前执行,但是如果finally使用了return或者throw语句,将会使trycatch中的return或者throw失效
A.x[9]为0
B.x[9]未定义
C.x[10]为0
D.x[0]为空
答案:
A
解析:
数组定义后,默认元素为0
A.能被java.exe成功运行的java class文件必须有main()方法
B.J2SDK就是Java API
C.Appletviewer.exe可利用jar选项运行.jar文件
D.能被Appletviewer成功运行的java class文件必须有main()方法
答案:
A
解析:
B、C、D都错
A:正确main方法是入口
B:J2SDK当然不仅仅包含java API
C:jar选项是java.exe 的选项
D:Appletviewer是运行applet的, applet 不用main方法,继承applet类即可。
- public class Base
- {
- public void methodOne()
- {
- System.out.print("A");
- methodTwo();
- }
-
- public void methodTwo()
- {
- System.out.print("B");
- }
- }
-
- public class Derived extends Base
- {
- public void methodOne()
- {
- super.methodOne();
- System.out.print("C");
- }
-
- public void methodTwo()
- {
- super.methodTwo();
- System.out.print("D");
- }
- }
A.ABDC
B.AB
C.ABCD
D.ABC
答案:
A
解析:
这是一道类多态的向上转型题。
Base b = new Derived();
向上转型:父类只能调用父类方法或者子类覆写后的方法,而子类中的单独方法则是无法调用的。
因此:
调用的顺序是:(1)、(2)、(3)、(4)、(5)、(6)、(7) ; 得到的结果是:ABDC
A.private final static int answer = 42;
B.public static int answer = 42;
C.final static answer = 42;
D.int answer;
答案:
B
解析:
在接口中,属性都是默认public static final修饰的,所以:
A(错误):不能用private修饰;
B(正确):在接口中,属性默认public static final,这三个关键字可以省略;
C(错误):没写属性的类型;
D(错误):final修饰的属性必须赋值;
A.-1
B.0
C.1
D.以上都不是
答案:
C
解析:
ResultSet跟普通的数组不同,索引从1开始而不是从0开始
A.继承Thread类
B.实现Runnable接口
C.实现Thread接口
D.以上都不正确
答案:
AB
解析:
实现多线程的方法:
1.继承Thread类
2.实现Runnable接口
3.实现Callable接口
- public static void main(String[] args) {
- String a = new String("myString");
- String b = "myString";
- String c = "my" + "String";
- String d = c;
- System.out.print(a == b);
- System.out.print(a == c);
- System.out.print(b == c);
- System.out.print(b == d);
- }
A.System.out.print(a == b)打印出来的是false
B.System.out.print(a == c)打印出来的是true
C.System.out.print(b == c)打印出来的是false
D.System.out.print(b == d)打印出来的是true
答案:
AD
解析:
A:a指向堆内存,b指向常量池,因此地址不相等,false
B:java有常量优化机制,c也指向常量池,且与b指向同一个,则a与c地址不相等,false;
C:b与c地址相等,true
D:d是c的副本,地址相同,所以b与d地址相等,true
- Integer s=new Integer(9);
- Integer t=new Integer(9);
- Long u=new Long(9);
A.(s==u)
B.(s==t)
C.(s.equals(t))
D.(s.equals(9))
E.(s.equals(new Integer(9))
答案:
CDE
解析:
(s==u) ,因为, s 是 Integer 类型, u 是 Long 类型,两个不同类型的引用不能进行 == 比较。
(s==t) , s 是指向一个 9 的引用,而 t 也是一个指向 9 的引用,虽然都是指向 9 ,但却是指向不同的 9 ,即是两个不同的引用。因此 == 比较返回的是假。
(s.equals(t)) , Integer 的 equals 方法如下:
- public boolean equals(Object obj) {
- if (obj instanceof Integer) {
- return value == ((Integer)obj).intValue();
- }
- return false ;
- }
是 Integer 的实例且 value 值也相等的情况下返回真,其他返回假。
在这里, s 和 t 都是 Integer 类型且值都为 9 ,因此结果为真。
(s.equals(9)) , 在进行 equals 比较之前,会对 9 调用 Integer.valueOf 方法,进行自动装箱 , 由于 IntegerCache 中已经存在 9 ,所以,直接返回其引用,引用相同, equals 就自然相同了。所以结果为真。
(s.equals( new Integer(9)) ,直接创建了一个新的 Integer 实例,但且值也为 9 ,所以,满足条件,返回真。
A.JSP会先解释成Servlet源文件,然后编译成Servlet类文件
B.每当用户端运行JSP时,jsp init()方法都会运行一次
C.每当用户端运行JSP时,jsp service()方法都会运行一次
D.每当用户端运行JSP时,jsp destroy()方法都会运行一次
答案:
AC
解析:
B:init方法:负责初始化Servlet对象。在Servlet的整个生命周期类,init()方法只被调用一次。
D:destroy方法:销毁Servlet对象,释放占用的资源,Servlet要被卸载时调用
A.ThreadLocal存放的值是线程封闭,线程间互斥的,主要用于线程内共享一些数据,避免通过参数来传递
B.从线程的角度看,每个线程都保持一个对其线程局部变量副本的隐式引用,只要线程是活动的并且 ThreadLocal 实例是可访问的;在线程消失之后,其线程局部实例的所有副本都会被垃圾回收
C.在Thread类中有一个Map,用于存储每一个线程的变量的副本
D.对于多线程资源共享的问题,同步机制采用了“以时间换空间”的方式,而ThreadLocal采用了“以空间换时间”的方式
答案:
ABCD
解析:
ThreadLocal不是一个线程而是一个线程的本地化对象。当工作于多线程环境中的对象采用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程分配一个独立的副本。每个线程都可以独立的改变自己的副本,而不影响其他线程的副本。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。