static
các thành viên ( static
trường hoặc static
phương thức) trong Java được liên kết với lớp tương ứng của chúng hơn là các đối tượng của lớp này. Đoạn mã sau cố gắng truy cập một trường tĩnh trên một null
tham chiếu.
public class Main
{
private static final int value = 10;
public Main getNull()
{
return null;
}
public static void main(String[] args)
{
Main main=new Main();
System.out.println("value = "+main.getNull().value);
}
}
Mặc dù main.getNull()
trả về null
, nó hoạt động và hiển thị value = 10
. Mã này hoạt động như thế nào?
Main main = null; main.getNull().value
.
new Thread[]{}[-1].sleep(10);
nơi sleep () là một phương thức tĩnh. Điều này đã từng thành công trên một số phiên bản Java cũ hơn.