两个类分别如下:
1.
2.
<pre name="code" class="java">package Demo2;
3.
4.
import java.util.*;
5.
class Demo2
6.
{
7.
private static ArrayList<String> a = new ArrayList<String>();
8.
public static void main(String[] args)
9.
{
10.
a.add("String0");
11.
threadDemo2 thread1 = new threadDemo2(a);
12.
new Thread(thread1).start();
13.
for(int i = 0;i<500; i++){
14.
for(int j = 0;j<500; j++)
15.
;
16.
}
17.
for(String string : a)
18.
{
19.
sop(string);
20.
}
21.
}
22.
23.
public static void sop(Object obj)
24.
{
25.
System.out.println(obj);
26.
}
27.
}
28.
1.
2.
package Demo2;
3.
import java.util.*;
4.
5.
class threadDemo2 implements Runnable
6.
{
7.
private ArrayList<String> b;
8.
threadDemo2(ArrayList<String> a){
9.
this.b = a;
10.
}
11.
12.
public void run()
13.
{
14.
b.add("String");
15.
16.
}
17.
18.
public static void sop(Object obj)
19.
{
20.
System.out.println(obj);
21.
}
22.
}
23.
主函数中输出结果为:
String0
String
也就是在子线程中获得了ArrayList a 的地址,并对地址内的值进行了操作。