100개 이상의 Java 인터뷰 질문 및 답변(2024)

꿈의 직업을 얻기 위한 신입 지원자와 경험 많은 지원자를 위한 Java 면접 질문과 답변은 다음과 같습니다.

 

신입생을 위한 Java 프로그래밍 인터뷰 질문 및 답변

1) 내부 클래스와 하위 클래스의 차이점은 무엇입니까?

내부 클래스는 다른 클래스 내에 중첩된 클래스입니다. 내부 클래스는 자신을 중첩하는 클래스에 대한 액세스 권한을 가지며 외부 클래스에 정의된 모든 변수 및 메서드에 액세스할 수 있습니다.

하위 클래스는 슈퍼 클래스라는 다른 클래스를 상속받은 클래스입니다. 하위 클래스는 상위 클래스의 모든 공개 및 보호 메서드와 필드에 액세스할 수 있습니다.

👉 무료 PDF 다운로드: Java 인터뷰 인터뷰 질문 및 답변 >>


2) Java 클래스에 대한 다양한 액세스 지정자는 무엇입니까?

Java에서 액세스 지정자는 액세스 범위를 정의하는 클래스 이름 앞에 사용되는 키워드입니다. 클래스에 대한 액세스 지정자의 유형은 다음과 같습니다.

1) 공개: 클래스, 메소드, 필드는 어디에서나 접근 가능합니다.

2) 보호: Method,Field는 자신이 속한 클래스나 하위 클래스, 동일한 패키지의 클래스에서 액세스할 수 있지만 외부에서는 액세스할 수 없습니다.

3) 기본값: Method,Field,class는 동일한 패키지에서만 액세스할 수 있으며 기본 패키지 외부에서는 액세스할 수 없습니다.

4) 비공개: Method,Field는 자신이 속한 동일한 클래스에서 액세스할 수 있습니다.


3) 정적 메소드와 정적 변수의 목적은 무엇입니까?

각 개체에 대해 별도의 복사본을 만드는 대신 클래스의 여러 개체 간에 메서드나 변수를 공유해야 하는 경우 static 키워드를 사용하여 메서드나 변수를 모든 개체에 공유하도록 만듭니다.


4) 데이터 캡슐화란 무엇이며 그 의미는 무엇입니까?

캡슐화는 속성과 메서드를 단일 단위로 결합하기 위한 객체 지향 프로그래밍의 개념입니다.

캡슐화는 각 개체가 고유한 메서드 및 변수 세트를 갖고 다른 개체와 독립적으로 해당 기능을 제공하므로 프로그래머가 소프트웨어 개발을 위한 모듈식 접근 방식을 따를 수 있도록 도와줍니다. 캡슐화는 데이터 숨기기 목적으로도 사용됩니다.


5) 싱글톤 클래스란 무엇입니까? 실제 사용 예를 들어보세요.

Java의 싱글톤 클래스는 단 하나의 인스턴스만 가질 수 있으므로 모든 메소드와 변수는 단 하나의 인스턴스에 속합니다. 싱글톤 클래스 개념은 클래스의 개체 수를 제한해야 하는 상황에 유용합니다.

싱글톤 사용 시나리오의 가장 좋은 예는 일부 드라이버 제한이나 라이센스 문제로 인해 데이터베이스에 대한 연결이 하나만 제한되는 경우입니다.


6) Java의 루프란 무엇입니까? 세 가지 유형의 루프는 무엇입니까?

루프는 프로그래밍에서 명령문이나 명령문 블록을 반복적으로 실행하는 데 사용됩니다. 세 가지가 있습니다 Java의 루프 유형:

1) For 루프

For 루프는 Java에서 지정된 횟수만큼 반복적으로 명령문을 실행하는 데 사용됩니다. For 루프는 명령문을 실행하는 횟수가 프로그래머에게 알려져 있을 때 사용됩니다.

2) while 루프

while 루프는 조건이 충족될 때까지 특정 명령문을 반복적으로 실행해야 할 때 사용됩니다. while 루프에서는 명령문을 실행하기 전에 조건을 먼저 확인합니다.

3) While 루프를 수행합니다.

Do While 루프는 문장 블록 실행 후 조건을 확인한다는 차이점만 있는 While 루프와 동일합니다. 따라서 do while 루프의 경우 명령문은 적어도 한 번 실행됩니다.


7) 무한 루프란 무엇입니까? 무한 루프는 어떻게 선언되나요?

무한 루프는 조건 없이 실행되며 무한히 실행됩니다. 명령문 블록의 본문에 중단 논리를 정의하여 무한 루프를 중단할 수 있습니다.

무한 루프는 다음과 같이 선언됩니다.

for (;;)
{
    // Statements to execute

    // Add any loop breaking logic
}

8) 계속문과 중단문의 차이점은 무엇입니까?

break와 continue는 루프에서 사용되는 두 가지 중요한 키워드입니다. 루프에 break 키워드를 사용하면 루프가 즉시 중단되고 continue 키워드를 사용하면 현재 반복이 중단되고 루프가 다음 반복으로 계속됩니다.

아래 예에서는 카운터가 4에 도달하면 루프가 중단됩니다.

for (counter = 0; counter & lt; 10; counter++)
    system.out.println(counter);

if (counter == 4) {

    break;
}

}

아래 예에서 카운터가 4에 도달하면 루프는 다음 반복으로 점프하고 continue 키워드 뒤의 모든 명령문은 현재 반복에서 건너뜁니다.

for (counter = 0; counter < 10; counter++)
    system.out.println(counter);

if (counter == 4) {

    continue;
}
system.out.println("This will not get printed when counter is 4");
}

9) 차이점은 무엇입니까? double Java의 부동 변수?

Java에서 float는 메모리에서 4바이트를 사용하지만 Double 메모리는 8바이트를 차지합니다. Float는 단정밀도 부동 소수점 십진수입니다. Double is double 정밀 십진수.


10) Java의 Final 키워드란 무엇입니까? 예를 들어보세요.

Java에서는 Final 키워드를 사용하여 상수를 선언합니다. 값은 한 번만 지정할 수 있으며, 지정 후에는 상수 값을 변경할 수 없습니다.

아래 예에서는 이름이 const_val인 상수가 선언되고 값이 할당됩니다.

비공개 최종 int const_val=100

메서드가 final로 선언되면 하위 클래스에서 재정의할 수 없습니다. 이 방법은 컴파일된 시간에 해결되므로 다른 방법보다 빠릅니다.

수업이 종료될 때ares 최종적으로 하위 분류될 수 없습니다. 예제 문자열, 정수 및 기타 래퍼 클래스.


11) 삼항이란 무엇입니까? opera토르? 예를 들어보세요.

세 개 한 벌 operator , 조건부라고도 함 operator는 부울 값 평가를 기반으로 변수에 할당할 값을 결정하는 데 사용됩니다. 로 표시됩니다.

아래 예에서 순위가 ​​1이면 상태에는 "완료" 값이 할당되고 그렇지 않으면 "보류 중"이 할당됩니다.

public class conditionTest {
    public static void main(String args[]) {
        String status;
        int rank = 3;
        status = (rank == 1) ? "Done" : "Pending";
        System.out.println(status);
    }
}

12) 어떻게 랜덤을 생성할 수 있나요? numbers 자바?

  • Math.random()을 사용하면 무작위를 생성할 수 있습니다. numbers 0.1 이상 1.0 미만의 범위에서
  • java.util 패키지에서 Random 클래스 사용

13) 기본 스위치 케이스란 무엇입니까? 예를 들어보세요.

안에 switch 문, 다른 스위치 조건이 일치하지 않을 때 기본 사례가 실행됩니다. 기본 케이스는 선택적 케이스입니다. 다른 모든 스위치 케이스가 코딩된 후에만 선언할 수 있습니다.

아래 예에서는 점수가 1 또는 2가 아닌 경우 기본 사례가 사용됩니다.

public class switchExample {
    int score = 4;
    public static void main(String args[]) {
        switch (score) {
            case 1:
                system.out.println("Score is 1");
                break;
            case 2:
                system.out.println("Score is 2");
                break;
            default:
                system.out.println("Default Case");
        }
    }
}

14) 모든 클래스가 파생되는 Java의 기본 클래스는 무엇입니까?

java.lang.object


15) Java의 main() 메소드가 어떤 데이터든 반환할 수 있습니까?

Java에서는 main() 메소드가 데이터를 반환할 수 없으므로 항상 void 반환 유형으로 선언됩니다.


16) 자바 패키지란 무엇입니까? 패키지의 중요성은 무엇입니까?

Java에서 패키지는 서로 관련되어 함께 묶인 클래스와 인터페이스의 모음입니다. 패키지를 사용하면 개발자가 코드를 모듈화하고 적절한 재사용을 위해 코드를 그룹화하는 데 도움이 됩니다. 코드가 패키지로 패키징되면 다른 클래스로 가져와 사용할 수 있습니다.


17) 추상 메서드 없이 클래스를 Abstract로 선언할 수 있나요?

예, 추상 메서드가 없더라도 클래스 이름 앞에 abstract 키워드를 사용하여 추상 클래스를 만들 수 있습니다. 그러나 클래스에 추상 메소드가 하나라도 있으면 다른 메소드는 추상 메소드로 선언해야 합니다.wise 오류가 발생합니다.


18) Java에서 추상 클래스와 인터페이스의 차이점은 무엇입니까?

추상 클래스와 인터페이스의 주요 차이점은 인터페이스는 구체적인 구현 없이 공용 정적 메서드 선언만 소유할 수 있는 반면, 추상 클래스는 구체적인 구현 여부에 관계없이 모든 액세스 지정자(공용, 개인 등)가 있는 멤버를 가질 수 있다는 것입니다.

추상 클래스와 인터페이스 사용의 또 다른 주요 차이점은 인터페이스를 구현하는 클래스는 인터페이스의 모든 메서드를 구현해야 하는 반면, 추상 클래스에서 상속되는 클래스는 상위 클래스의 모든 메서드 구현이 필요하지 않다는 것입니다.

클래스는 여러 인터페이스를 구현할 수 있지만 하나의 추상 클래스만 확장할 수 있습니다.


19) 추상 클래스에 대한 인터페이스의 성능 영향은 무엇입니까?

인터페이스에는 추가 간접 참조가 필요하므로 인터페이스는 추상 클래스에 비해 성능이 느립니다. 개발자가 고려해야 할 또 다른 주요 요소는 클래스가 여러 인터페이스를 구현할 수 있는 반면 모든 클래스는 하나의 추상 클래스만 확장할 수 있다는 것입니다.

인터페이스를 사용하면 인터페이스가 클래스에 구현될 때마다 개발자에게 추가적인 부담이 됩니다. 개발자는 인터페이스의 모든 메소드를 구현해야 합니다.


20) 패키지를 가져오면 해당 하위 패키지도 Java로 가져오나요?

Java에서는 패키지를 가져올 때 해당 하위 패키지를 가져오지 않으며 필요한 경우 개발자가 별도로 가져와야 합니다.

예를 들어 개발자가 University.* 패키지를 가져오면 University라는 패키지의 모든 클래스가 로드되지만 하위 패키지의 클래스는 로드되지 않습니다. 하위 패키지(예: 부서)에서 클래스를 로드하려면 개발자는 다음과 같이 클래스를 명시적으로 가져와야 합니다.

University.department.* 가져오기


21) 우리 클래스의 메인 메소드를 비공개로 선언할 수 있나요?

Java에서 애플리케이션을 올바르게 실행하려면 기본 메소드가 공개 정적이어야 합니다. 기본 메소드가 비공개로 선언되면 개발자는 컴파일 오류가 발생하지 않지만 실행되지 않고 런타임 오류가 발생합니다.


22) 값으로 전달하는 대신 참조로 함수에 인수를 전달할 수 있는 방법은 무엇입니까?

자바에서는 참조가 아닌 값으로만 ​​함수에 인수를 전달할 수 있습니다.


23) 자바에서는 객체가 어떻게 직렬화되나요?

Java에서는 직렬화를 통해 객체를 바이트 스트림으로 변환하기 위해 클래스에서 Serialized라는 이름의 인터페이스를 구현합니다. 직렬화 가능 인터페이스를 구현하는 클래스의 모든 객체는 직렬화되고 해당 상태는 바이트 스트림에 저장됩니다.


24) 언제 직렬화를 사용해야 합니까?

직렬화는 네트워크를 통해 데이터를 전송해야 할 때 사용됩니다. 직렬화를 사용하면 객체의 상태가 저장되고 바이트 스트림으로 변환됩니다. 바이트 스트림은 네트워크를 통해 전송되고 객체는 대상에서 다시 생성됩니다.


25) 예외 처리를 위해 Java에서 Try 블록 뒤에 Catch 블록이 따라오는 것이 필수입니까?

Try 블록 뒤에는 Catch 블록이나 finally 블록 또는 둘 다가 와야 합니다. try 블록에서 발생한 모든 예외는 catch 블록에서 포착되거나 코드 중단 전에 수행할 특정 작업이 finally 블록에 배치되어야 합니다.


경력자를 위한 Java 인터뷰 질문 및 답변

26) 예외 블록에서 어떤 예외가 발생하더라도 예외 블록의 finally 블록을 건너뛸 수 있는 방법이 있습니까?

Try 블록에서 예외가 발생하면 다른 블록이 있으면 제어가 catch 블록으로 전달됩니다.wise 드디어 차단합니다. finally 블록은 예외가 발생할 때 항상 실행되며 finally 블록의 명령문 실행을 방지하는 유일한 방법은 다음을 작성하여 코드를 강제로 중단하는 것입니다.wing try 블록 끝에 있는 코드 줄:

System.exit(0);

27) 클래스의 생성자가 언제 호출됩니까?

클래스의 생성자는 new 키워드를 사용하여 객체가 생성될 때마다 호출됩니다.

예를 들어 다음글에서wing 클래스 XNUMX 객체는 new 키워드를 사용하여 생성되므로 생성자가 두 번 호출됩니다.

public class const_example {

    const_example() {

        system.out.println("Inside constructor");
    }
    public static void main(String args[]) {

        const_example c1 = new const_example();

        const_example c2 = new const_example();
    }
}

28) 클래스에 여러 생성자가 있을 수 있나요?

예, 클래스에는 매개변수가 다른 여러 생성자가 있을 수 있습니다. 객체 생성에 사용되는 생성자는 객체를 생성하는 동안 전달된 인수에 따라 달라집니다.


29) 클래스의 정적 메서드를 재정의할 수 있나요?

정적 메서드를 재정의할 수 없습니다. 정적 메서드는 개별 개체가 아닌 클래스에 속하며 컴파일 시(런타임이 아님) 해결됩니다. 정적 메서드를 재정의하려고 해도 컴파일 오류가 발생하지 않으며 실행 시 재정의로 인한 영향도 없습니다. 암호.


30) 아래 예에서 출력은 무엇입니까?

public class superclass {

    public void displayResult() {

        system.out.println("Printing from superclass");

    }

}

public class subclass extends superclass {

    public void displayResult() {

        system.out.println("Displaying from subClass");

        super.displayResult();

    }

    public static void main(String args[]) {

        subclass obj = new subclass();

        obj.displayResult();

    }

}

ANS: 출력은 다음과 같습니다:

하위 클래스에서 표시

슈퍼클래스에서 인쇄


31) 문자열은 자바의 데이터 유형인가요?

문자열은 Java의 기본 데이터 유형이 아닙니다. Java에서 문자열이 생성되면 실제로 생성되는 Java.Lang.String 클래스의 객체입니다. 이 문자열 객체를 생성한 후에는 String 클래스의 모든 내장 메서드를 문자열 객체에서 사용할 수 있습니다.


32) 아래 예에서는 얼마나 많은 String Object가 생성됩니까?

String s1="I am Java Expert";

String s2="I am C Expert";

String s3="I am Java Expert";

위의 예에서는 Java.Lang.String 클래스의 두 객체가 생성됩니다. s1과 s3은 동일한 객체에 대한 참조입니다.


33) Java에서 문자열을 불변(Immutable)이라고 부르는 이유는 무엇입니까?

Java에서 문자열 개체는 문자열에 값이 할당되면 변경할 수 없으며 변경되면 새 개체가 생성되므로 불변이라고 합니다.

아래 예에서 참조 str은 값이 "값 XNUMX"인 문자열 개체를 나타냅니다.

String str="Value One";

새 값이 할당되면 새 String 객체가 생성되고 참조가 새 객체로 이동됩니다.

str="New Value";

34) 배열과 벡터의 차이점은 무엇입니까?

배열은 동일한 기본 유형의 데이터를 그룹화하고 본질적으로 정적이지만 벡터는 본질적으로 동적이며 다양한 데이터 유형의 데이터를 보유할 수 있습니다.


35) 멀티스레딩이란 무엇입니까?

멀티 스레딩은 단일 프로그램 내에서 동시에 여러 작업을 실행하는 프로그래밍 개념입니다. 스레드는 동일한 프로세스 스택을 공유하고 병렬로 실행됩니다. 모든 프로그램의 성능 향상에 도움이 됩니다.


36) Java에서 Runnable Interface를 사용하는 이유는 무엇입니까?

Runnable 인터페이스는 다중 스레드 애플리케이션을 구현하기 위해 Java에서 사용됩니다. Java.Lang.Runnable 인터페이스는 멀티스레딩을 지원하는 클래스로 구현됩니다.


37) Java에서 멀티스레딩을 구현하는 두 가지 방법은 무엇입니까?

다중 스레드 애플리케이션은 다음 중 하나를 사용하여 Java로 개발할 수 있습니다.wing 두 가지 방법론:

1) Java.Lang.Runnable 인터페이스를 사용합니다. 클래스는 멀티스레딩을 활성화하기 위해 이 인터페이스를 구현합니다. 이 인터페이스에는 Run() 메소드가 구현되어 있습니다.

2) Java.Lang.Thread 클래스를 확장하는 클래스를 작성합니다.


38) 데이터에 많은 변경이 필요할 때 어떤 것을 우선적으로 사용해야 합니까? 문자열 또는 문자열Buffer?

문자열 이후Buffers는 본질적으로 동적이므로 String의 값을 변경할 수 있습니다.Buffer 불변인 String과 달리 객체는 항상 String을 사용하는 것이 좋습니다.Buffer 데이터가 너무 많이 변경될 때. 이러한 경우에 String을 사용하면 데이터가 변경될 때마다 새로운 String 개체가 생성되어 추가 오버헤드가 발생합니다.


39) Switch문의 각 경우에 Break를 사용하는 목적은 무엇입니까?

Break는 스위치의 각 사례(마지막 사례 제외) 뒤에 사용되므로 코드는 유효한 사례 이후에 중단되고 진행 사례에서도 흐르지 않습니다.

각 사례 뒤에 break를 사용하지 않으면 유효한 사례 이후의 모든 사례도 실행되어 잘못된 결과가 발생합니다.


40) Java에서는 가비지 수집이 어떻게 이루어지나요?

Java에서는 객체가 더 이상 참조되지 않을 때 쓰레기 수거 발생하고 객체는 파괴됩니다.yed 자동으로. 자동 가비지 수집을 위해 Java는 System.gc() 메서드 또는 Runtime.gc() 메서드를 호출합니다.


41) 메인 메소드 이전에도 코드를 어떻게 실행할 수 있나요?

클래스 로드 시 객체를 생성하기 전에 명령문을 실행하려면 클래스에서 정적 코드 블록을 사용할 수 있습니다. 이 정적 코드 블록 내의 모든 명령문은 기본 메소드에서 객체를 생성하기 전에도 클래스를 로드할 때 한 번 실행됩니다.


42) 클래스가 동시에 슈퍼클래스이자 서브클래스가 될 수 있나요? 예를 들어보세요.

상속 계층 구조가 사용되는 경우 클래스는 동시에 다른 클래스의 슈퍼 클래스이자 다른 클래스의 하위 클래스가 될 수 있습니다.

아래 예에서 대륙 클래스는 월드 클래스의 하위 클래스이고 국가 클래스의 슈퍼 클래스입니다.

public class world {

..........

}
public class continenet extends world {

............

}
public class country extends continent {

......................

}

43) 클래스에 생성자가 정의되어 있지 않으면 클래스의 객체는 어떻게 생성됩니까?

Java 클래스에 명시적인 생성자가 정의되지 않은 경우에도 객체 생성에 기본 생성자가 암시적으로 사용되므로 객체가 성공적으로 생성됩니다. 이 생성자에는 매개변수가 없습니다.


44) 멀티스레딩에서 리소스가 여러 스레드에 의해 동시에 사용되지 않도록 어떻게 보장할 수 있습니까?neo보통?

멀티스레딩에서는 여러 스레드가 공유하는 리소스에 대한 액세스를 다음 개념을 사용하여 제어할 수 있습니다. sync동시화. 사용 sync번역된 키워드, 우리는 한 번에 하나의 스레드만 공유 리소스를 사용할 수 있고 다른 스레드가 리소스를 사용하는 다른 스레드로부터 자유로워진 후에만 다른 스레드가 리소스를 제어할 수 있도록 보장할 수 있습니다.


45) 객체에 대해 클래스 생성자를 두 번 이상 호출할 수 있나요?

new 키워드를 사용하여 객체를 생성하면 생성자가 자동으로 호출됩니다. 객체 생성 시 객체에 대해 한 번만 호출되므로 생성 후에 객체에 대해 생성자를 다시 호출할 수 없습니다.


46) classA와 classB라는 두 개의 클래스가 있습니다. 두 클래스 모두 동일한 패키지에 있습니다. classA의 private 멤버에 classB의 객체가 접근할 수 있나요?

클래스의 전용 멤버는 해당 클래스 범위 외부에서 액세스할 수 없으며 동일한 패키지에 있는 다른 클래스에서도 액세스할 수 없습니다.


47) 같은 이름을 가진 클래스에 두 개의 메서드를 가질 수 있나요?

이름은 동일하지만 매개변수의 개수/유형이 다른 두 개의 메서드를 클래스에 정의할 수 있습니다. 호출할 메소드는 전달된 매개변수에 따라 달라집니다.

예를 들어 아래 클래스에는 이름은 같지만 매개변수가 다른 두 개의 인쇄 메소드가 있습니다. 매개변수에 따라 적절한 매개변수가 호출됩니다.

public class methodExample {

    public void print() {

        system.out.println("Print method without parameters.");

    }

    public void print(String name) {

        system.out.println("Print method with parameter");

    }

    public static void main(String args[]) {

        methodExample obj1 = new methodExample();

        obj1.print();

        obj1.print("xx");

    }

}

48) 자바 객체의 복사본을 어떻게 만들 수 있나요?

복제 개념을 사용하여 개체의 복사본을 만들 수 있습니다. 클론을 사용하여 객체의 실제 상태로 복사본을 만듭니다.

Clone()은 Cloneable 인터페이스의 메소드이므로 객체 복사본을 만들기 위해서는 Cloneable 인터페이스를 구현해야 합니다.


49) 상속을 사용하면 어떤 이점이 있나요?

상속 사용의 주요 이점은 상속을 통해 하위 클래스가 상위 클래스의 코드를 재사용할 수 있으므로 코드 재사용이 가능하다는 것입니다. 다형성(확장성)은 기존 파생 클래스에 영향을 주지 않고 새로운 기능을 도입할 수 있는 또 다른 큰 이점입니다.


50) 클래스의 변수와 메소드에 대한 기본 액세스 지정자는 무엇입니까?

변수 및 메소드에 대한 기본 액세스 지정자는 패키지로 보호됩니다. 즉, 변수 및 클래스는 다른 클래스에서 사용할 수 있지만 패키지 외부가 아닌 동일한 패키지에 있습니다.


51) Java 클래스에서 포인터를 사용하는 예를 들어보세요.

Java에는 포인터가 없습니다. 따라서 Java에서는 포인터 개념을 사용할 수 없습니다.


52) 어떤 클래스도 상속받을 수 없도록 클래스의 상속을 어떻게 제한할 수 있나요?

클래스가 어떤 클래스에 의해 더 이상 확장되지 않도록 하려면 키워드를 사용할 수 있습니다. 수업 이름으로.

팔로우에서wing 예를 들어 Stone 클래스는 Final 클래스이므로 확장할 수 없습니다.

public Final Class Stone {
	// Class methods and Variables
}

53) 보호 액세스 지정자의 액세스 범위는 무엇입니까?

Protected 액세스 지정자를 사용하여 메서드나 변수를 선언하면 동일한 클래스, 동일한 패키지의 다른 클래스 및 하위 클래스에서 액세스할 수 있게 됩니다.

편집 클래스 묶음 아강 세계
공개 Y Y Y Y
보호 Y Y Y N
수정자 없음 Y Y N N
사설 Y N N N

54) 스택과 큐의 차이점은 무엇입니까?

스택과 큐는 모두 데이터 수집을 위한 자리 표시자로 사용됩니다. 스택과 큐의 주요 차이점은 스택은 LIFO(후입선출) 원칙을 기반으로 하고 큐는 FIFO(선입선출) 원칙을 기반으로 한다는 것입니다.


55) 자바에서 변수 직렬화를 어떻게 허용하지 않을 수 있나요?

클래스의 특정 변수를 직렬화하지 않으려면 키워드를 사용할 수 있습니다. 과도 현상 선언하는 동안. 예를 들어 아래의 trans_var 변수는 임시 변수이므로 직렬화할 수 없습니다.

public class transientExample { 
	private transient trans_var; 
    // rest of the code 
}

56) 기본 데이터 유형을 객체로 어떻게 사용할 수 있습니까?

int와 같은 기본 데이터 유형은 해당 래퍼 클래스를 사용하여 객체로 처리될 수 있습니다. 예를 들어 Integer는 기본 데이터 유형 int에 대한 래퍼 클래스입니다. 다른 객체와 마찬가지로 래퍼 클래스에도 다양한 메서드를 적용할 수 있습니다.


57) 컴파일 타임에 어떤 유형의 예외가 포착되나요?

프로그램 컴파일 시 확인된 예외를 포착할 수 있습니다. 코드를 성공적으로 컴파일하려면 코드에서 try catch 블록을 사용하여 확인된 예외를 처리해야 합니다.


58) 스레드의 다양한 상태를 설명하세요.

Java의 스레드는 다음 중 하나에 있을 수 있습니다.wing 상태 :

  • 준비: 스레드가 생성되면 준비 상태입니다.
  • 실행 중: 현재 실행 중인 스레드가 실행 중 상태입니다.
  • 대기 중: 다른 스레드가 특정 리소스를 해제하기를 기다리는 스레드가 대기 상태에 있습니다.
  • Dead: 실행 후 죽은 스레드는 죽은 상태입니다.

59) 명시적 생성자가 정의되어 있어도 클래스의 기본 생성자를 사용할 수 있나요?

Java 클래스에 명시적 생성자가 정의되지 않은 경우 Java는 인수가 없는 기본 생성자를 제공합니다. 그러나 명시적 생성자가 정의된 경우에는 기본 생성자를 호출할 수 없으며 개발자는 클래스에 정의된 생성자만 사용할 수 있습니다.


60) 동일한 메소드 이름과 인수를 사용하지만 다른 반환 유형을 사용하여 메소드를 재정의할 수 있습니까?

메소드 오버라이딩의 기본 조건은 메소드 이름, 인수, 반환 유형이 오버라이드되는 메소드와 정확히 동일해야 한다는 것입니다. 따라서 다른 반환 유형을 사용해도 메서드가 재정의되지는 않습니다.


61) follo의 출력은 무엇입니까?wing 코드 조각?

public class operatorExample {

    public static void main(String args[]) {

        int x = 4;

        system.out.println(x++);
	}
}

이 경우 접미사 ++ opera먼저 값을 반환한 다음 증가시키는 tor가 사용됩니다. 따라서 출력은 4가 됩니다.


61) 메인 메소드 없이도 자바 클래스를 성공적으로 컴파일했다고 말하는 사람이 있나요? 가능합니까?

main 메소드는 Java 클래스의 진입점이며 프로그램 실행에 필요합니다. 클래스는 메인 메소드가 없더라도 성공적으로 컴파일됩니다. 그래도 실행할 수는 없습니다.


62) 정적 메서드 내부에서 비정적 메서드를 호출할 수 있나요?

비정적 메서드는 클래스 개체가 소유하고 개체 수준 범위를 가지며 정적 블록(예: 정적 기본 메서드)에서 비정적 메서드를 호출하려면 먼저 클래스 개체를 만들어야 합니다. 그런 다음 개체 참조를 사용하여 이러한 메서드를 호출할 수 있습니다.


63) Java 프로그램을 실행하기 위해 설정해야 하는 두 가지 환경 변수는 무엇입니까?

Java 프로그램은 기계에서 한 번만 실행될 수 있습니다.wing 두 가지 환경 변수가 올바르게 설정되었습니다.

  1. 경로 변수
  2. CLASSPATH 변수

64) 초기화 없이 Java에서 변수를 사용할 수 있나요?

Java에서는 유효한 값으로 사전 초기화하지 않고 코드에 변수를 사용하면 Java에서는 변수에 기본값이 할당되지 않아 프로그램이 컴파일되지 않고 오류가 발생합니다.


65) Java의 클래스는 둘 이상의 클래스에서 상속될 수 있습니까?

Java에서는 클래스가 여러 클래스가 아닌 하나의 클래스에서만 파생될 수 있습니다. 다중 상속은 Java에서 지원되지 않습니다.


66) 생성자는 Java의 클래스 이름과 다른 이름을 가질 수 있습니까?

Java의 생성자는 클래스 이름과 동일한 이름을 가져야 하며, 이름이 다를 경우 생성자 역할을 하지 않으며 컴파일러는 이를 일반 메소드로 간주합니다.


67) Round(3.7)와 Ceil(3.7)의 출력은 어떻게 되나요?

Round(3.7)는 4를 반환하고 Ceil(3.7)은 4를 반환합니다.


68) Java에서 goto를 사용하여 특정 줄로 이동할 수 있나요?

Java에는 goto 키워드가 없으며 Java는 특정 레이블이 지정된 행으로 이동하는 이 기능을 지원하지 않습니다.


69) 죽은 스레드를 다시 시작할 수 있나요?

Java에서는 데드 상태에 있는 스레드를 다시 시작할 수 없습니다. 죽은 스레드를 다시 시작할 수 있는 방법은 없습니다.


70) 다음은 다음과 같습니다wing 클래스 선언이 맞나요?

public abstract final class testClass {
	// Class methods and variables
}

답변: 추상 클래스는 Final로 선언할 수 없으므로 위의 클래스 선언은 올바르지 않습니다.


71) Java 프로그램을 실행하려면 각 컴퓨터에 JDK가 필요합니까?

JDK는 Java 개발 키트이며 개발에만 필요하며 시스템에서 Java 프로그램을 실행하는 데에는 JDK가 필요하지 않습니다. JRE만 필요합니다.


72) 같음 방법으로 수행된 비교와 == 비교의 차이점은 무엇입니까? opera토르?

Java에서는 equals() 메소드를 사용하여 두 문자열 객체의 내용을 비교하고 두 객체의 값이 같을 경우 true를 반환합니다. opera토르 컴프ares 두 문자열 객체의 참조.

팔로우에서wing 예를 들어, equals()는 두 문자열 객체가 동일한 값을 가지므로 true를 반환합니다. 그러나 == opera두 문자열 객체가 서로 다른 객체를 참조하므로 tor는 false를 반환합니다.

public class equalsTest {

    public static void main(String args[]) {

        String str1 = new String("Hello World");

        String str2 = new String("Hello World");

        if (str1.equals(str2))

        { // this condition is true

            System.out.println("str1 and str2 are equal in terms of values");

        }

        if (str1 == str2) {

            //This condition is true

            System.out.println("Both strings are referencing same object");

        } else

        {

            // This condition is NOT true

            System.out.println("Both strings are referencing different objects");

        }

    }

}

73) Java 클래스에서 메소드를 정의하지만 C와 같은 다른 언어의 코드에서 구현을 제공하는 것이 가능합니까?

예, 네이티브 메소드를 사용하여 이를 수행할 수 있습니다. 네이티브 메소드 기반 개발의 경우 구현 없이 Java 클래스에 공용 정적 메소드를 정의한 후 별도로 C와 같은 다른 언어로 구현을 수행합니다.


74) Java에서 소멸자는 어떻게 정의됩니까?

Java에서는 클래스에 소멸자가 정의되어 있지 않으므로 그렇게 할 필요가 없습니다. Java에는 더 이상 참조되지 않는 개체를 자동으로 삭제하여 작업을 수행하는 자체 가비지 수집 메커니즘이 있습니다.


5년 이상의 경험에 대한 Java 인터뷰 질문 및 답변

75) 변수가 로컬이면서 동시에 정적일 수 있나요?

변수는 정적이면서 동시에 로컬일 수 없습니다. 지역 변수를 정적으로 정의하면 컴파일 오류가 발생합니다.


76) 인터페이스에 정적 메소드를 가질 수 있습니까?

정적 메서드는 어떤 클래스에서도 재정의될 수 없지만 인터페이스의 모든 메서드는 기본적으로 추상이며 인터페이스를 구현하는 클래스에서 구현되어야 합니다. 따라서 Java의 인터페이스에 정적 메소드를 갖는 것은 의미가 없습니다.


77) 인터페이스를 구현하는 클래스에서 인터페이스에 정의된 변수의 값을 변경할 수 있나요?

아니요, 인터페이스에 정의된 모든 변수는 기본적으로 공용, 정적 및 최종 변수이므로 구현 클래스에서 인터페이스의 변수 값을 변경할 수 없습니다. 최종 변수는 변경할 수 없는 상수와 같습니다. later.


78) Java의 가비지 수집 기능으로 인해 Java 프로그램의 메모리가 부족해지지 않는다고 말하는 것이 맞습니까?

Java에서 자동 가비지 수집 기능을 제공하더라도 가비지 수집에 비해 Java 객체 생성이 더 빠른 속도로 수행되어 메모리가 채워질 가능성이 있기 때문에 Java 프로그램의 메모리가 부족해지는 것을 보장하지 않습니다. 사용 가능한 모든 메모리 리소스.

따라서 가비지 수집은 프로그램의 메모리 부족 가능성을 줄이는 데 도움이 되지만 이를 보장하지는 않습니다.


79) 메인 메소드에 대해 void 이외의 다른 반환 유형을 가질 수 있나요?

아니요, Java 클래스 기본 메소드는 프로그램이 성공적으로 실행되기 위해 void 반환 유형만 가질 수 있습니다.

그럼에도 불구하고, 메인 메소드가 완료될 때 반드시 값을 반환해야 한다면 System.exit(int status)를 사용할 수 있습니다.


80) 가비지 수집된 개체에 다시 접근하여 사용하고 싶습니다. 어떻게 가능합니까?

객체가 파괴되면yed 가비지 수집기에 의해 더 이상 힙에 존재하지 않으며 다시 액세스할 수 없습니다. 다시 참조할 방법이 없습니다.


81) Java 스레드 프로그래밍에서 모든 스레드에 대해 반드시 구현해야 하는 방법은 무엇입니까?

Run()은 모든 스레드에서 구현해야 하는 Runnable 인터페이스의 메서드입니다.


82) 내 프로그램에서 데이터베이스 연결을 제어하고 한 번에 하나의 스레드만 데이터베이스 연결을 만들 수 있기를 원합니다. 이 논리를 어떻게 구현할 수 있나요?

답변: 이는 다음 개념을 사용하여 구현할 수 있습니다. sync동시화. 데이터베이스 관련 코드는 다음과 같은 메소드에 배치될 수 있습니다. sync청동화된 한 번에 하나의 스레드만 액세스할 수 있도록 하는 키워드입니다.


83) 프로그래머가 수동으로 예외를 발생시키는 방법은 무엇입니까?

코드 블록에서 수동으로 예외를 발생시키려면, 던져 키워드가 사용됩니다. 그런 다음 이 예외가 catch 블록에서 포착되어 처리됩니다.

public void topMethod() {
    try {
        excMethod();
    } catch (ManualException e) {}
}

public void excMethod {
    String name = null;
    if (name == null) {
        throw (new ManualException("Exception thrown manually ");
        }
    }

84) 나는 내 클래스가 다른 클래스(파생 클래스라도)가 객체를 생성할 수 없는 방식으로 개발되기를 원합니다. 어떻게 해야 합니까?

클래스의 생성자를 비공개로 선언하면 다른 클래스에서 액세스할 수 없으므로 다른 클래스는 이를 인스턴스화할 수 없으며 해당 객체의 형성은 자체적으로만 제한됩니다.


85) Java에서는 객체가 어떻게 저장되나요?

Java에서는 생성된 각 객체가 힙에서 메모리 공간을 가져옵니다. 객체가 파괴될 때yed 가비지 수집기에 의해 힙에서 할당된 공간은 힙에 다시 할당되고 새 개체에 사용할 수 있게 됩니다.


86) 힙에 있는 객체의 실제 크기를 어떻게 알 수 있나요?

Java에서는 힙에 있는 객체의 정확한 크기를 알아낼 수 있는 방법이 없습니다.


87) 다음 중 어느 것입니까?wing 클래스에 더 많은 메모리가 할당됩니까?

클래스 A: 메소드 XNUMX개, 변수 XNUMX개, 객체 없음

클래스 B: XNUMX개의 메소드, XNUMX개의 변수, 객체 없음

객체를 생성하기 전에는 메모리가 할당되지 않습니다. 두 클래스 모두 생성된 개체가 없으므로 모든 클래스의 힙에 메모리가 할당되지 않습니다.


88) 프로그램에서 예외가 처리되지 않으면 어떻게 되나요?

try catch 블록을 사용하여 프로그램에서 예외가 처리되지 않으면 프로그램이 중단되고 예외를 발생시킨 명령문 이후에는 명령문이 실행되지 않습니다.wing.


89) 한 클래스에 여러 생성자가 정의되어 있습니다. 다른 생성자의 본문에서 생성자를 호출할 수 있습니까?

클래스에 여러 생성자가 있는 경우 다음을 사용하여 다른 생성자의 본문에서 하나의 생성자를 호출할 수 있습니다. 이().


90) 익명 클래스란 무엇을 의미하나요?

익명 클래스는 new 키워드를 사용하여 코드 한 줄에 이름 없이 정의된 클래스입니다.

예를 들어, 아래 코드에서는 한 줄의 코드로 익명 클래스를 정의했습니다.

public java.util.Enumeration testMethod()

{

    return new java.util.Enumeration()

    {

        @Override

        public boolean hasMoreElements()

        {

            // TODO Auto-generated method stub

            return false;

        }

        @Override

        public Object nextElement()

        {

            // TODO Auto-generated method stub

            return null;

        }

    }

91) 배열 선언 후 배열 크기를 늘릴 수 있는 방법이 있나요?

배열은 정적이므로 일단 크기를 지정하면 변경할 수 없습니다. 크기 변경(항목 없음)이 필요한 컬렉션을 사용하려면 배열보다 벡터를 선호해야 합니다.


92) 애플리케이션에 여러 클래스가 있는 경우 두 개 이상의 클래스에 기본 메서드를 포함해도 괜찮습니까?

Java 애플리케이션의 두 개 이상의 클래스에 기본 메소드가 있는 경우 모든 애플리케이션의 진입점이 특정 클래스가 되고 코드는 해당 특정 클래스의 기본 메소드에서만 시작되므로 문제가 발생하지 않습니다.


93) 개체의 데이터를 계속 유지하고 싶습니다. later 사용. 그렇게 하는 가장 좋은 방법은 무엇입니까?

나중에 사용할 수 있도록 데이터를 유지하는 가장 좋은 방법은 직렬화 개념을 사용하는 것입니다.


94) Java의 Local 클래스란 무엇입니까?

Java에서는 특정 블록 내에 새 클래스를 정의하는 경우 이를 로컬 클래스라고 합니다. 이러한 클래스는 로컬 범위를 가지며 정의된 블록 외부에서는 사용할 수 없습니다.


95) 문자열과 문자열Buffer 둘 다 String 객체를 나타냅니다. 문자열과 문자열을 비교할 수 있나요?Buffer 자바?

비록 문자열과 문자열Buffer 둘 다 String 개체를 나타내므로 서로 비교할 수 없으며 비교하려고 하면 오류가 발생합니다.


96) Java에서 제공하는 API는 무엇입니까? opera개체 집합에 대한 설명이 있나요?

Java는 일련의 개체에 적용할 수 있는 많은 유용한 메서드를 제공하는 컬렉션 API를 제공합니다. Collection API에서 제공하는 중요한 클래스로는 ArrayList, HashMap, TreeSet 및 TreeMap이 있습니다.


97) 타입 캐스팅을 사용하여 다른 유형을 부울 유형으로 캐스팅할 수 있나요?

아니요, 다른 기본 유형을 부울 데이터 유형으로 변환할 수 없으며 부울 데이터 유형을 다른 기본 데이터 유형으로 변환할 수도 없습니다.


98) 재정의될 때 메소드에 대해 다른 반환 유형을 사용할 수 있습니까?

Java에서 메서드 재정의의 기본 요구 사항은 재정의된 메서드가 동일한 이름과 매개 변수를 가져야 한다는 것입니다. 그러나 새 반환 유형이 원본을 확장하는 한 다른 반환 유형으로 메서드를 재정의할 수 있습니다.

예를 들어 메소드는 참조 유형을 반환합니다.

Class B extends A {

    A method(int x) {

        //original method

    }

    B method(int x) {

        //overridden method

    }

}

99) 모든 예외 클래스의 기본 클래스는 무엇입니까?

자바에서는 Java.lang.Throwable 모든 예외 클래스의 슈퍼 클래스이며 모든 예외 클래스는 이 기본 클래스에서 파생됩니다.


100) 상속에서 생성자를 호출하는 순서는 무엇입니까?

상속의 경우 파생 클래스의 새 객체가 생성되면 상위 클래스의 생성자가 먼저 호출되고 파생 클래스의 생성자가 호출됩니다.

취업 면접을 준비하세요!!! 통과 자바 튜토리얼 더 잘 준비하기 위해.

이 상세한 Java 모의 테스트 퀴즈는 Java 인터뷰 질문에 대한 의심을 없애고 인터뷰를 통과하는 데도 도움이 될 것입니다.

이들 자바와 자바 8 면접 질문 당신의 비바 (구강)에도 도움이 될 것입니다