本帖最后由 杨_扬 于 2012-7-6 11:04 编辑
好吧,我承认我又犯迷糊了,上期竟然发出来6道问题。
为了保持队形,这次只给出4道新问题
之前的几期,感兴趣的同学可以在论坛中查找,或者访问我的Blog
http://blog.csdn.net/crazybass81/article/details/7713792
第十六题:
当前目录是一个空目录,假设当前用户拥有对此目录读和写的权限,并执行如下代码
11. import java.io.*;
12. public class DOS {
13. public static void main(String[] args){
14. File dir = new File("dir");
15. dir.mkdir();
16. File f1 = new File(dir "f1.txt");
17. try {
18. f1.createNewFile();
19. } catch (IOException e) { ; }
20. File newDir = new File("newDir");
21. dir.renameTo(newDir);
22. }
23. }
下列哪种情况是正确的?
A. 编译失败
B. 当前目录下创建了一个名为“dir”的空目录
C. 当前目录下创建了一个名为“newdir”的空目录
D. 当前目录下创建了一个名为“dir”的目录,在这个目录中包含了一个名为f1.txt的文件
E. 当前目录下创建了一个名为“newdir”的目录,在这个目录中包含了一个名为f1.txt的文件
答案 E
知识点
文件操作,File类,没啥说的,基本操作而已
第十七题:
11. class Converter {
12. public static void main(String[] args){
13. Integer i = args[0];
14. int j = 12;
15. System.out.println("Itis " + (j==i) + " that j==i.");
16. }
17. }
当程序员试图通过执行命令“java Converter 12”来编译并运行该程序时会出现哪种结果?
A. It is true that j==i.
B. It is false that j==i.
C. 抛出一个异常
D. 编译失败,因为第13行存在错误
答案 D
知识点
args[0]是String型的,不能给Integer型的J赋值
第十八题:
11. String test ="Test A. Test B. Test C.";
12. // insert code here
13. String[] result =test.split(regex);
在第12行插入下列哪个正则表达式可以将test分割为"Test A" "Test B" and "Test
C"?
A. String regex ="";
B. String regex = "";
C. String regex =".*";
D. String regex ="\\s";
E. String regex ="\\.\\s*";
F. String regex ="\\w[ \.] +";
答案 E
知识点
正则表达式,首先“.”需要“\”来转译,之后,如果没注意看可能会看漏前两个点后面的空格,\s表示匹配任意的空格,因此答案是E。这里多说一句,正则表达式我相信是很多人的烦恼,网上我看到一篇文章介绍的很好很相信,由浅入深一步步的讲,有兴趣的可以去看看,收藏也挺好的随时备查。正则表达式谁都恶心,能一下子就学会并且记住的人只有超人,但是我个人认为,正则表达式起码比英文单词好背吧,呵呵。对了,网上那篇文章叫《正则表达式30分钟入门教程》,百度一搜就有了,这篇文章不是我写的,作者我也不认识,请大家不要怀疑我在打广告。
第十九题:
5. import java.util.Date;
6.import java.text.DateFormat;
21.DateFormat df;
22. Date date = newDate();
23. // 此处插入代码
24. String s =df.format(date);
在第23行填入代码使得上述代码可以被编译通过
A. df = new DateFormat();
B. df = Date.getFormat();
C. df = date.getFormat();
D. df =DateFormat.getFormat();
E. df =DateFormat.getInstance();
答案 E
知识点
DateFormat 是日期/时间格式化子类的抽象类,要格式化一个当前语言环境下的日期,可使用某个静态工厂方法:
myString = DateFormat.getDateInstance().format(myDate);
这个问题照我看来就是为了考试而出的题目,基本没有使用价值。建议大家使用DateFormat的子类SimpleDateFormat
第二十题
有一个名为Repetition的类:
1. package utils;
2
3. public class Repetition{
4. public static String twice(String s) { return s + s; }
5. }
又有另一个名为Demo的类
1. // 此处插入代码
2
3. public class Demo {
4. public static void main(String[] args) {
5. System.out.println(twice("pizza"));
6. }
7. }
在类Demo的第一行插入那条代码可以打印出pizzapizza?
A. import utils.*;
B. static import utils.*;
C. importutils.Repetition.*;
D. static importutils.Repetition.*;
E. importutils.Repetition.twice();
F. import staticutils.Repetition.twice;
G. static importutils.Repetition.twice;
答案 F
知识点:
静态导入,不明白的看张孝祥老师的JAVA基础强化,里面有专门的讲解
第二十一题:
3. interface Animal { voidmakeNoise(); }
4. class Horse implementsAnimal {
5. Long weight = 1200L;
6. public void makeNoise() {System.out.println("whinny"); }
7. }
8. public class Icelandicextends Horse {
9. public void makeNoise() {System.out.println("vinny"); }
10. public static void main(String[] args){
11. Icelandic i1 = newIcelandic();
12. Icelandic i2 = newIcelandic();
13. Icelandic i3 = new Icelandic();
14. i3 = i1; i1 = i2; i2 = null;i3 = i1;
15. }
16. }
当程序运行到第15行是,一共产生多少个可以被垃圾回收器回收的对象
A. 0
B. 1
C. 2
D. 3
E. 4
F. 6
答案 E
这个题目我也迷糊了,还是论坛上的葛奎同学回答了我的问题,特此感谢
在子类Icelandic被实例化的同时父类Horse也同样被实例化了,因此是4个
我也觉得这是唯一可行的解释,但是,问题有来了,大家都知道,JAVA中所有的类都是Object类的子类,那是不是还同时实例化了2个Object的实例,那么问题的答案就应该是6了呢?显然不是,但为什么不是呢?谁知道,JVM有很多怪异的行为,我的一位前辈大牛曾经说过“越高级的编程语言越诡异”,因此此君至今还在用C和汇编做嵌入式开发。那钱赚的,老了去了。
--------------------------------------------------------分割线-----------------------------------------------
本期问题:
第二十二题
下面的类被定义在两个不同的文件中
1. package util;
2. public class BitUtils {
3. private static void process(byte[] b) {}
4. }
1. package app;
2. public class SomeApp {
3. public static void main(String[] args) {
4. byte[] bytes = new byte[256];
5. // insert code here
6. }
7. }
在SomeApp的第五行插入那条代码可以允许主方法调用BitUtils类的process方法?
A. process(bytes);
B. BitUtils.process(bytes);
C. app.BitUtils.process(bytes);
D. util.BitUtils.process(bytes);
E. import util.BitUtils.*; process(bytes);
F.无法实现.
第二十三题
13. public class Pass {
14. public static void main(String []args) {
15. int x = 5;
16. Pass p = new Pass();
17. p.doStuff(x);
18. System.out.print(" main x = " + x);
19. }
20
21. void doStuff(int x) {
22. System.out.print(" doStuff x = " + x++);
23. }
24. }
程序的运行结果是?
A. 编译失败.
B. 运行时抛出异常.
C. doStuff x = 6 main x = 6
D. doStuff x = 5 main x = 5
E. doStuff x = 5 main x = 6
F. doStuff x = 6 main x = 5
第二十四题
1. public class GC {
2. private Object o;
3. private void doSomethingElse(Object obj) { o = obj; }
4. public void doSomething() {
5. Object o = new Object();
6. doSomethingElse(o);
7. o = new Object();
8. doSomethingElse(null);
9. o = null;
10. }
11. }
如果方法doSomething被调用,在代码的哪一行之后,在第五行创建的Object对象变为可被garbage collector所回收的对象
A. Line 5
B. Line 6
C. Line 7
D. Line 8
E. Line 9
F. Line 10
第二十五题
11. public static void test(String str) {
12. int check = 4;
13. if (check = str.length()) {
14. System.out.print(str.charAt(check -= 1) +" ");
15. } else {
16. System.out.print(str.charAt(0) + " ");
17. }
18. }
并且调用
21. test("four");
22. test("tee");
23. test("to");
结果是什么?
A. r t t
B. r e o
C. 编译失败.
D.运行时抛出异常.
|