Java 인터뷰 - 정적

Java의 static 키워드에 대해 이야기하고 static과 관련된 Java 인터뷰에서 질문할 수 있는 것은 무엇입니까?

정적 블록 및 정적 초기화 프로그램은 무엇입니까?



정적 블록은 정적 초기화 블록이라고도 하며, 클래스는 정적 블록을 얼마든지 가질 수 있으며 Java 클래스 내부 어디에나 나타날 수 있습니다. 클래스에서 정적 필드를 초기화하려는 경우 정적 블록을 선언합니다. 정적 블록은 클래스가 로드될 때 정확히 한 번 실행됩니다. 정적 블록은 생성자가 실행되기 전에도 실행됩니다.

public class Solution{  
    public static void main(String[] args){  
        System.out.println("Main Method");  
    }
    static {  
        System.out.println("Static block - 1");  
    }
}  

Static block - 1
Main Method

Java에서 정적 메서드를 동기화할 수 있습니까?



예 ✅ 동기화된 방법은 동시에 액세스되는 리소스에 대한 액세스를 보호하는 데 사용됩니다. 동시에 액세스되는 리소스가 클래스의 각 인스턴스에 속할 때 동기화된 인스턴스 메서드를 사용합니다. 리소스가 모든 인스턴스에 속하는 경우(즉, 정적 변수에 있는 경우) 동기화된 정적 메서드를 사용하여 액세스합니다.

정적 메소드가 Java의 인스턴스 변수에 액세스할 수 있습니까?



아니요 ❌ 정적 메서드에서는 인스턴스 변수에 액세스할 수 없습니다. 정적 메서드에서 인스턴스 변수에 액세스하려고 하면 컴파일 오류가 발생합니다. 오류는 다음과 같습니다.Cannot make a static reference to the non static field name

Java에서 정적 멤버에 어떻게 액세스합니까?



정적 변수는 개별 객체가 아닌 클래스가 소유합니다. 클래스 외부에서 정적 변수를 참조하는 것은 ClassName.myStaticVariable에 의한 것이지만 클래스 내부에서는 다른 인스턴스 변수와 유사합니다.

Java에서 정적 메서드를 재정의할 수 있습니까?



No ❌ 메서드 오버라이딩은 런타임에 동적 바인딩을 기반으로 하고 정적 메서드는 컴파일 타임에 정적 바인딩을 사용하여 결합되기 때문입니다.

인터페이스 내부에 정적 메서드를 정의할 수 있습니까?



✅ Java8부터 인터페이스(본문 포함)에 정적 메서드를 가질 수 있습니다. 인터페이스 내에서 정적 메서드를 정의하는 것은 클래스에서 정의하는 것과 동일합니다. 또한 다른 정적 및 기본 메서드 내에서 정적 메서드를 호출할 수 있습니다.

Java에서 생성자가 정적일 수 있습니까?



일반적으로 정적 메서드는 "메서드가 특정 개체가 아닌 클래스에 속한다"는 의미이지만 생성자는 항상 개체와 관련하여 호출되므로 생성자가 정적인 것은 의미가 없습니다.

좋은 웹페이지 즐겨찾기