static
Java의 멤버 ( static
필드 또는 static
메서드)는이 클래스의 개체가 아닌 해당 클래스와 연결됩니다. 다음 코드는 null
참조 의 정적 필드에 액세스를 시도합니다 .
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);
}
}
main.getNull()
반환 하지만 null
작동하고 표시합니다 value = 10
. 이 코드는 어떻게 작동합니까?
Main main = null; main.getNull().value
.
new Thread[]{}[-1].sleep(10);
sleep ()이 정적 메소드 인 곳을 상기시켜줍니다 . 이것은 일부 이전 Java 버전에서 성공했습니다.