老师好,请教一下,下面这个类,System.out.println(“进入while循环了”);这句话注释和不注释,执行结果为什么会大不一样呢.我自己没有想明白.望指教一下.
import java.util.ArrayList;
@SuppressWarnings("all")
public class Demo {
private static ArrayList<String> list = new ArrayList();
public static void main(String[] args) throws Exception {
new Thread(new Runnable() {
boolean flag = true;
String latestEle = null;
public void run() {
System.out.println("myThread1中的run方法开始执行了");
while (flag) {
/**
如果注释下面这个打印语句("进入while循环了"),下面的if语句("进入if了")也不会打印
如果不注释下面这个打印语句("进入while循环了"),下面的if语句("进入if了")会打印
*/
// System.out.println("进入while循环了");
if (list.size() != 0) {
System.out.println("进入if了");
latestEle =list.get(list.size() - 1);
try {
Thread.sleep(1000L);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
System.out.println("获取最后添加的元素是:" + this.latestEle);
System.out.println();
}
}
}
},"myThread1").start();
Thread.sleep(8L);
list.add("aa");
list.add("bb");
System.out.println("主线程执行完成-----打印list:" + list);
}
}