问一个SCJP 题目# Java - 爪哇娇娃
a*s
1 楼
Test Question [1]
Given:
5. class NoGo implements Runnable {
6. private static int i;
7. public synchronized void run() {
8. if (i%10 != 0) { i++; }
9. for(int x=0; x<10; x++, i++)
10. { if (x == 4) Thread.yield(); }
11. }
12. public static void main(String [] args) {
13. NoGo n = new NoGo();
14. for(int x=0; x<101; x++) {
15. new Thread(n).start();
16. System.out.print(i + " ");
17. } } }
Which is true?
A. The output can never contain the value 10.
B. The output can never contain the value 30.
C. The output can never contain the value 297.
D. The output can never contain the value 820.
E. Making the run method un-synchronized will NOT change the possible
output.
Test Question [2]
Which two about using the java.io.Serializable class are true? (Choose two.)
A. If Dog extends Animal, then Animal must implement java.io.Serializable
in order to serialize an instance of Dog.
B. If Dog has-a Collar, then Collar must implement java.io.Serializable in
order to serialize an instance of Dog.
C. If Dog extends Animal and Animal implements java.io.Serializable but
Dog does NOT implement java.io.Serializable, you can serialize an instance
of Dog.
D. When an instance of a subclass is deserialized, none of the
constructors in it's constructor chain will ever be invoked.
E. If you mark a class's instance variable volatile, and then serialize an
instance of that class, the state of the volatile variable will be lost
during serialization.
I don't think B is right, because Collar can be transient.
Given:
5. class NoGo implements Runnable {
6. private static int i;
7. public synchronized void run() {
8. if (i%10 != 0) { i++; }
9. for(int x=0; x<10; x++, i++)
10. { if (x == 4) Thread.yield(); }
11. }
12. public static void main(String [] args) {
13. NoGo n = new NoGo();
14. for(int x=0; x<101; x++) {
15. new Thread(n).start();
16. System.out.print(i + " ");
17. } } }
Which is true?
A. The output can never contain the value 10.
B. The output can never contain the value 30.
C. The output can never contain the value 297.
D. The output can never contain the value 820.
E. Making the run method un-synchronized will NOT change the possible
output.
Test Question [2]
Which two about using the java.io.Serializable class are true? (Choose two.)
A. If Dog extends Animal, then Animal must implement java.io.Serializable
in order to serialize an instance of Dog.
B. If Dog has-a Collar, then Collar must implement java.io.Serializable in
order to serialize an instance of Dog.
C. If Dog extends Animal and Animal implements java.io.Serializable but
Dog does NOT implement java.io.Serializable, you can serialize an instance
of Dog.
D. When an instance of a subclass is deserialized, none of the
constructors in it's constructor chain will ever be invoked.
E. If you mark a class's instance variable volatile, and then serialize an
instance of that class, the state of the volatile variable will be lost
during serialization.
I don't think B is right, because Collar can be transient.