|
模拟试题:SCJP035经典104题分析笔记(三) |
|
|
作者: 发布时间:2008-05-21 11:32:21 来源:育路计算机考试频道 |
|
|
a. i=6 j=5 b. i=5 j=5 c. i=6 j=4 d. i=5 j=6 e. i=6 j=6 题意: 执行结束后,i和j的值分别是什么? 分析: 说实话,我开始以为这题还有点复杂,是考x++和++x的区别以及continue语句的作用,可是经过分析发现其实知不知道以上两个知识点对答案并没有影响,简单的计算一下就ok了,i和的值经过循环依次为:2、9;3、8;4、7;5、6。此时i<5不成立,程序结束,而已。 解答: i=5,j=6 。答案为d 注意: 还是要注意一下x++和++x的区别,x++表达式的值为x原值,++x表达式的值为x经+1计算后的值。但经过x++或++x后x本身的值都比原值增加了1。例如:int a=1,b=1; int c=a++;int d=++b;最后a为2,b为2,c为1,d为2。还有就是continue用于循环块内表示本次循环结束(注意不是循环结束!)下次循环开始,它后面的语句就不执行了。 示例: w08.java 9. 1)public class x{ 2) public object m(){ 3) object o=new float(3.14f); 4) object[] oa=new object[1]; 5) oa[0]=o; 6) o=null; 7) oa[0]=null; system.out.println(oa[0]); 9) } 10) } which line is the earliest point the object a refered is definitely elibile to be garbage collectioned? a.after line 4 b.after line 5 c.after line 6 d.after line 7 e.after line 9(that is,as the method returns) 题意: (此题有拼写错误大概意思是)哪一行是引用对象明确的允许被垃圾收集机收集的最早的位置 分析: 一个对象成为垃圾有两种情况,一是失去引用;一是离开了作用域。 解答: 程序在第3行new了一个值为3.14的float对象,并用object引用类型o指向它。第4行声明一个大小为1的object类型的数组oa,第5行将o的引用传递给oa的第一个成员oa[0]。注意此时有两个引用o和oa[0]指向实际值为3.14的float对象。第6行让o为空,既o失去对象的引用,也就是float对象失去一个引用o。此时float对象还有一个引用oa[0],用oa[0]依然可以访问。第7行,oa[0]置空,此时float对象已经没有引用指向它,既变为垃圾,可以被收集。所以答案是d。 注意: 注意对象和对象的引用的区别。 示例: 无 育路网 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
课程咨询热线:010-51268840 51268841 |
|
|
|
| | |