This should not compile, yet it does. Note that x is not static, yet
main() is.
public class t {
int x = 0;
public static void main() {
new Thread() {
public void run() {
x = 5;
}
}.start();
}
}
javac gives this error:
t.java:6: non-static variable x cannot be referenced from a static context
x = 5;
^
- a