105题里的两个题不会解!请高手指导!
49. class A implements Runnable{
public int i=1;
public void run(){
this.i=10;
}
}
public class Test{
public static void main(String args){
A a=new A();
11) new Thread(a).start();
int j=a.i;
13)
}
}
what is the value of j at line 13?
A. 1
B. 10
C. the value of j cannot be determined
D. An error at line 11 cause compilation to fail
50. public class SyncTest{
public static void main(String[] args){
final StringBuffer s1=new StirngBuffer();
final StringBuffer s2=new StirngBuffer();
new Thread(){
public void run(){
Synchronized(s1){
s1.append("A");
Synchronized(s2){
s2.append("B");
System.out.print(s1);
System.out.print(s2);
}
}
}
}.start();
new Thread(){
public void run(){
Synchronized(s2){
s2.append("C");
Synchronized(s1){
s1.append("D");
System.out.print(s2);
System.out.print(s1);
}
}
}
}.start();
}
}
what is the result?
A.the result depends on different system and different thread model
B.the result cannot be determined