一个朋友准备去考OCP Java认证,即原来的SCJP。心血来潮也想测测自己什么水平。找了本McGraw.Hill.OCP.Java.SE.6.Programmer.Practice.Exams,开盘就是两套自测题。14个题目,给了42分钟,按书中说法是过了8个就可以去考了。掐上秒表,开工了。等我做完,一看时间才10分钟,不由有些得意。也没再检查,直接对起答案,结果仅对了7个。虽然懊恼,但总得搞清楚自己错在哪里。

1. 问下面这段程序的输出结果?

public class Bunnies {
    static int count = 0;

Bunnies() {
        while (count < 10)
            new Bunnies(++count);
    }

Bunnies(int x) {
        super();
    }

public static void main(String[] args) {
        new Bunnies();
        new Bunnies(count);
        System.out.println(count++);
    }
}

A. 9
B. 10
C. 11
d. 12
E. Compilation fails.
F. An exception is thrown at runtime.

再一细看,没把我给气死。明明算出来是10,却选了C,又是粗心大意。这题就是考自增自减嘛,++放在变量前与变量后的区别。另外就是在构造方法里是可以用new关键字的。

2. 问下面这段程序的输出结果?

public class Twine {
    public static void main(String[] args) {
        String s = "";
        StringBuffer sb1 = new StringBuffer("hi");
        StringBuffer sb2 = new StringBuffer("hi");
        StringBuffer sb3 = new StringBuffer(sb2);
        StringBuffer sb4 = sb3;
        if (sb1.equals(sb2)) s += "1 ";
        if (sb2.equals(sb3)) s += "2 ";
        if (sb3.equals(sb4)) s += "3 ";
        String s2 = "hi";
        String s3 = "hi";
        String s4 = s3;

if (s2.equals(s3)) s += "4 ";
        if (s3.equals(s4)) s += "5 ";
        System.out.println(s);
    }
}

A. 1 3
B. 1 5
C. 1 2 3
D. 1 4 5
E. 3 4 5
F. 1 3 4 5
G. 1 2 3 4 5
H. Compilation fails.

StringBuffer 并没有重载equals方法,不要想当然的以为比较的是字符串的值。正解:E。

3. 下面哪些是正确的?

A. All classes of Exception extend Error.
B. All classes of Error extend Exception.
C. All Errors must be handled or declared.
D. All classes of Exception extend Throwable.
E. All Throwables must be handled or declared.
F. All Exceptions must be handled or declared.
G. RuntimeExceptions need never be handled or declared.

这题错的实在有些不应该。我咋就选成FG了呢?这两个答案明显是矛盾的啊。F说所有的异常都必须被处理,G却讲运行时异常是个例外。作者给42分钟还是挺有道理的,仔细检查是很有必要的。正解:DG。

4. 问运行结果:java Birthdays Draumur?

public class Birthdays {
    public static void main(String[] args) {
        Map&lt;Friends, String> hm = new HashMap<Friends, String>();
        hm.put(new Friends("Charis"), "Summer 2009");
        hm.put(new Friends("Draumur"), "Spring 2002");
        Friends f = new Friends(args[0]);
        System.out.println(hm.get(f));
    }
}

class Friends {
    String name;

Friends(String n) {
        name = n;
    }
}

A. null
B. Draumur
C. Spring 2002
D. Compilation fails.
E. The output is unpredictable.
F. An exception is thrown at runtime.
G. Friends@XXXX (where XXXX is a representation of a hashcode)

再看此题时,猛然想起Think In Java里提到过,要作为HashMap的Key必须重载equals()和hashCode()方法,HashMap基于它们来判断两个对象是否相等。这个Friends 没有重载equals()和hashCode(),因而直接以对象的引用作为Key,而不是Name,当然用hm.get(f)就什么也得不到啦。正解:A。

5. 下面哪些是正确的?

A. Compilation succeeds.
B. Compilation fails due to an error on line 6.
C. Compilation fails due to an error on line 7.
D. Compilation fails due to an error on line 8.
E. Compilation fails due to an error on line 9.
F. Compilation fails due to an error on line 10.
G. Compilation fails due to an error on line 11.

这题主要考泛型不支持多态。正解:BDEFG。

6. 下面哪行代码插入打下图42行处可以正常编译运行?

37. boolean b = false;
38. int i = 7;
39. double d = 1.23;
40. float f = 4.56f;
41.
42. // insert code here

A. System.out.printf(" %b", b);
B. System.out.printf(" %i", i);
C. System.out.format(" %d", d);
D. System.out.format(" %d", i);
E. System.out.format(" %f", f);

考的是格式化参数,忘却了就记忆一下http://hi.baidu.com/giml/blog/item/c6b1d0fa4a5bded9b48f31dd.html 。

正解:ADE。

7. 下面哪个是正确的?

public class MyPancake implements Pancake {
    public static void main(String[] args) {
        List<String> x = new ArrayList<String>();
        x.add("3");
        x.add("7");
        x.add("5");
        List<String> y = new MyPancake().doStuff(x);
        y.add("1");
        System.out.println(x);
    }

List<String> doStuff(List<String> z) {
        z.add("9");
        return z;
    }
}

interface Pancake {
    List<String> doStuff(List<String> s);
}

A. [3, 7, 5]
B. [3, 7, 5, 9]
C. [3, 7, 5, 9, 1]
D. Compilation fails.
E. An exception is thrown at runtime.

这题设置了一个陷阱,接口里的方法默认都是Public的,子类实现后,访问控制权限只能放大不能缩小,所以要在doStuff方法声明处加上Public。正解:D。

看看自己犯的错误,除了第五个和第六个,确实不是很清楚,其他都是可以避免的。相关源代码:

http://javaforge.com/svn/RoaringTiger/trunk/OCP 。

转载于:https://blog.51cto.com/lovespss/534047

OCP Java 自测相关推荐

  1. Java 单测 回滚

    Java 单测 回滚 Java 在单测的时候 需要做回滚 设置如下: 需要添加以下 注解 在类上 defaultRollback = true : 为 默认全部回滚 defaultRollback = ...

  2. java压测请求线程数_程序员撕开京东 618 大促压测的另一面 | 原力计划

    作者 | 天涯泪小武 责编 | 王晓曼 出品 | CSDN博客 前天618大促演练进行了全链路压测,在此之前刚好我的热key探测框架也已经上线灰度一周了,小范围上线了几千台服务器,每秒大概接收几千个k ...

  3. 测开基础串讲-Java基础-测开常用API之Random类

    在日常的测试开发工作中,Random类算是使用比较频繁的一个类了,有时候创建测试数据,可能需要随机生成一些姓名.年龄.号码.编号等,这个时候我们可能就会在固定的名称后面加上随机数字.字符等:下面就来看 ...

  4. java中测代码段运行时间及内存的方法

    1.测运行时间 long startTime = System.currentTimeMillis(); //获取开始时间 代码段- long endTime = System.currentTime ...

  5. java压测服务器_Java简单模拟设备压测服务器(Rabbitmq)

    进入idea,新建一个maven项目 主要是模拟150个设备同时并发,并发时间持续15min 1.创建客户端,构造请求发送到对应的rabbitmq的队列,用的protobuf协议. importcom ...

  6. java 压测工具_几款常用压测工具推荐

    ab ab是apache自带的压力测试工具,使用起来非常方便. 安装 如果安装了apache, 那么ab已经安装好了,如果不想安装apache的话,可以通过以下方式安装ab # ubuntu sudo ...

  7. Java中测长函数_Core Java测试题

    } 问:类Person和类Student的关系是( B ). A.包含关系 B.继承关系 C.关联关系 D.无关系,上述类定义有语法错误 9.设有下面的两个类定义: class AA { void S ...

  8. java如何测controller层_用MockMvc对Spring mvc中的controller层进行单元测试

    参考:http://sishuok.com/forum/posts/list/7981.html  ;  http://www.tuicool.com/articles/6nqeIbm 用下面的这种方 ...

  9. java中测长度的方法,java获取文件大小的几种方法

    目前java获取文件大小的方法有两种: 1.通过file的length()方法获取: 2.通过流式方法获取: 通过流式方法又有两种,分别是旧的java.io.*中fileinputstream的ava ...

最新文章

  1. JMS学习十 ActiveMQ支持的传输协议
  2. 【python】Macbook的Anaconda查看、创建和管理python环境
  3. classpath目录
  4. 【招聘】哈工大讯飞联合实验室2022届提前批校园招聘
  5. 阿里影业“灯塔平台”今日正式启动,阿里影视云解决方案强势推出
  6. 兼容sdk7iOS7的issue解决小片段总结
  7. 推荐系统专利:一种信息推荐方法、系统及存储介质和终端设备
  8. 家里还装摄像头?看完B站直播毛骨悚然!
  9. 学习日记day36 平面设计 字体设计
  10. Insyde uefi 隐藏设置_vivo手机怎么隐藏应用 vivo手机怎样把软件隐藏起来?
  11. GitLab强制关闭双因素认证
  12. waves服务器系统盘,waves服务器:Waves现场声音解决方案
  13. C语言绘画示例-进度条
  14. ESP8266 WIFI kill 2021版教程(小白0基础)
  15. Android开发之使用createFromStream加载图片发现图片变小
  16. 高德地图 scale
  17. 光猫+路由器双工配置
  18. 茶文化网站html模板,茶文化网页模板图片
  19. Java程序员推荐书目
  20. [一天一项目]120+项目构思

热门文章

  1. php 自定义格式化,PHP自定义函数格式化json数据示例
  2. 手机安卓学习 内核开发
  3. STL源码剖析 配接器
  4. C++ STL list添加(插入)元素方法详解
  5. 中科大 计算机网络1 课程主要内容大概介绍
  6. C语言 指针自增自减加减运算 p++ p+i
  7. 英语口语 week12 Thursday
  8. codeforces 617A-C语言解题报告
  9. Android Studio 安装ASM插件
  10. OpenCL 第7课:旋转变换(1)