반응형

Q.1 Java의 가장 중요한 특징은 무엇인가요?
플랫폼 독립성은 "한 번 작성하면 어디서든 실행 가능" (WORA) 개념을 통해 가능해지며, 이는 Java의 주요한 장점 중 하나입니다. Java 코드는 바이트코드로 번역되어 어떤 플랫폼에든 Java 가상 머신 (JVM)이 탑재되어 있다면 실행할 수 있습니다. 이로 인해 Java 애플리케이션은 변경 없이 다양한 운영 체제에서 작동할 수 있는 매우 이식성이 높으며, Java는 크로스 플랫폼 개발을 위한 인기 있는 선택지가 됩니다.

Java는 온라인 애플리케이션, 사무실 시스템, 모바일 개발 및 임베디드 기기 등 많은 분야에서 널리 사용되었고 성공적이었습니다. 이는 개발을 한 번만 하고 어디서든 배포할 수 있는 능력 때문입니다.

Q.2 플랫폼 독립성이란 무엇을 의미하나요?
이는 Java 코드를 한 플랫폼 (예: Windows)에서 컴파일하고 작성한 뒤 다른 지원 플랫폼 (예: Linux, Solaris 등)에서 실행할 수 있음을 의미합니다.

Q.3 JVM은 플랫폼 독립적인가요?
JVM은 플랫폼 독립적이지 않습니다. JVM은 플랫폼에 특화된 실행 환경으로, 판매자가 제공합니다.

Q.4 JVM이란 무엇인가요?
Java Runtime Environment (JRE) 또는 JVM 또는 Java 가상 머신으로 알려진 것은 Java 바이트코드를 다양한 시스템에서 실행할 수 있게 해주는 중요한 구성 요소입니다. 이는 Java 컴파일러가 생성한 바이트코드를 Java 바이트코드를 이해하고 실행할 수 있는 기계 코드로 변환하는 가상 머신입니다.

Java 애플리케이션은 플랫폼에 독립적이며, JVM의 추상화 레이어 덕분에 하드웨어 플랫폼이나 운영 체제의 변화에 영향을 받지 않고 작동할 수 있습니다. 메모리 관리, 가비지 수집 및 실행 환경 지원 등의 기능을 제공하기 때문에 Java 생태계의 중요한 구성 요소로 작용하며, "한 번 작성하면 어디서든 실행 가능" (WORA) Java 프로그래밍 모델을 지원합니다.

Q.5 JDK와 JVM의 차이점은 무엇인가요?
JDK는 개발 목적으로 사용되는 Java 개발 키트로, 실행 환경을 포함합니다. 그러나 JVM은 단순히 실행 환경으로, 자체 소스 파일을 JVM을 사용하여 컴파일할 수 없습니다.

Q.6 포인터란 무엇이며, Java는 포인터를 지원하나요?
포인터는 메모리 위치를 참조하는 핸들입니다. 포인터의 잘못된 처리로 인해 메모리 누수나 문제가 발생할 수 있으므로 Java는 포인터 사용을 지원하지 않습니다.

Q.7 모든 클래스의 기본 클래스는 무엇인가요?
java.lang.Object

Q.8 Java는 다중 상속을 지원하나요?
Java는 다중 상속을 지원하지 않습니다.

Q.9 Java는 순수 객체 지향 언어인가요?
Java는 기본 데이터 유형을 사용하므로 순수한 객체 지향 언어는 아닙니다.

Q.10 Java 배열은 기본 데이터 유형인가요?
Java에서 배열은 객체입니다.

경험이 있는 분들을 위한 Java 면접 질문
이 파트에서는 답변과 함께 레벨업된 Java 면접 질문을 다루겠습니다.

Q.11 main 메소드에서 public과 static의 순서가 중요한가요?
아니요, 순서는 중요하지 않지만 void는 항상 main() 앞에 와야 합니다.

Q.12 Java에서 지역 변수란 무엇인가요?
Java에서는 메소드, 생성자 또는 코드 블록 내에서 정의된 변수를 지역 변수라고 합니다. 이러한 변수는 정의된 블록 내에서만 사용되며 제한된 스코프를 가집니다. 일반적으로 메소드나 블록 내에서 특정 작업이나 계산에 필요한 일시적인 데이터를 지역 변수에 저장합니다. 메소드나 블록의 스코프를 벗어나면 지역 변수는 더 이상 사용할 수 없습니다.

지역 변수는 데이터의 캡슐화 수준을 제공하며, 사용하기 전에 명시적으로 초기화해야 하고, 함수나 블록의 연속적인 호출을 통해 값을 유지하지 않는다는 점에서 프로그램의 다른 부분과의 의도하지 않은 상호 작용을 방지합니다.

Q.13 Java 인스턴스 변수란 무엇인가요?
인스턴스 변수는 클래스 레벨에서 정의된 변수입니다. 인스턴스 변수는 자동적으로 기본 값으로 초기화되므로 별도로 초기화할 필요가 없습니다.

Q.14 Java에서 상수 변수를 어떻게 정의할 수 있나요?
변수를 static으로 선언하고 final로 지정해야 합니다. 이렇게 하면 클래스의 모든 인스턴스에 대해 하나의 변수 복사본만 존재하고 값도 변경할 수 없습니다.

Q.15 모든 Java 클래스에서 Main 메소드를 강제로 선언해야 하나요?
아니요, 필수적으로 선언할 필요는 없습니다. 소스 클래스가 Java 응용 프로그램인 경우에만 main 메소드를 정의해야 합니다.

Q.16 main 메소드의 반환 유형은 무엇인가요?
main 메소드는 아무것도 반환하지 않으므로 void로 선언할 수 있습니다.

Q.17 main 메소드가 Java에서 왜 static으로 선언되는가요?
Main 메소드는 클래스의 인스턴스화 이전에 JVM에 의해 호출되기 때문에 static으로 선언됩니다.

Q.18 main 메소드의 인수는 무엇인가요?
main 메소드의 인수는 String 객체의 배열로 전달됩니다.

Q.19 Java에서 main 메소드를 오버로딩할 수 있나요?
예, 클래스 내에서 서로 다른 메소드 시그니처를 가진 여러 main 메소드를 가질 수 있습니다.

Q.20 main 메소드를 final로 선언할 수 있나요?
예, main 메소드는 final로 선언할 수 있으며, 이 경우 상속받는 클래스는 자체 기본 main 메소드를 가질 수 없습니다.

Java 면접 질문
여기서는 새로 입사한 사람 및 경험이 있는 사람 모두에게 적용되는 몇 가지 Java 질문을 제공합니다.

Q.21 main 메소드에서 public과 static의 순서가 중요한가요?
아니요, 순서는 중요하지 않지만 void는 항상 main() 앞에 와야 합니다.

Q.22 소스 파일에는 하나 이상의 클래스 선언이 포함될 수 있나요?
예, 단일 소스 파일에 여러 클래스 선언을 포함시킬 수 있지만 public으로 선언된 클래스는 하나만 허용됩니다.

Q.23 패키지란 무엇인가요?
패키지는 관련된 클래스와 인터페이스의 모음입니다. 패키지 선언은 Java 클래스의 첫 번째 문장이어야 합니다.

Q.24 기본적으로 어떤 패키지를 가져올 수 있나요?
java.lang 패키지는 패키지 선언을 하지 않아도 기본적으로 가져올 수 있습니다.

Q.25 패키지 외부에서 private로 선언된 클래스에 어떻게 접근할 수 있나요?
불가능합니다.

반응형

+ Recent posts