이번 글은 면접 시 자주 접하게 되는 기술적인 문제들을 정리해 놓았는데, 도움이 되셨으면 좋겠습니다.
(관련 영상 추천 : java 강좌)
1. ".java" 소스 파일에 여러 클래스(내부 클래스 아님)가 포함될 수 있나요? 제한 사항은 무엇입니까?
여러 클래스를 가질 수 있지만 공개 클래스는 하나만 있을 수 있으며 공개 클래스 이름은 파일 이름과 일치해야 합니다.
2. Java에는 goto가 있나요?
Java의 예약어는 이제 Java에서 사용되지 않습니다.
3. &와 &&의 차이점에 대해 이야기해 보세요.
& 및 &&는 모두 논리 AND(and)를 나타내는 논리 AND 연산자로 사용할 수 있습니다. 연산자의 양쪽 표현식 결과가 true이면 그렇지 않은 경우 전체 연산 결과가 true입니다. false 이면 결과는 false입니다. &&에는 단락 기능도 있습니다. 즉, 첫 번째 표현식이 거짓이면 두 번째 표현식이 더 이상 평가되지 않습니다. &는 비트 연산자로도 사용할 수 있습니다. & 연산자의 양쪽 표현식이 부울 유형이 아닌 경우 &는 비트 AND 연산을 나타냅니다.
4. 현재 JAVA의 다중 중첩 루프에서 벗어나는 방법은 무엇입니까?
Java에서는 여러 루프에서 벗어나고 싶다면 외부 루프 문 앞에 레이블을 정의한 다음 내부 루프 본문의 코드에 레이블이 있는 break 문을 사용하여 외부 루프에서 빠져나올 수 있습니다. .
5. 스위치 문은 byte, long 또는 String에서 작동할 수 있나요?
스위치(expr1)에서 expr1은 정수 표현식 또는 열거형 상수(더 큰 글꼴)만 가능하고 정수 표현식은 int 기본 유형 또는 정수 래퍼 유형 byte, short 및 char은 암시적으로 int로 변환될 수 있으므로 이러한 유형과 이러한 유형의 래퍼 유형도 가능합니다. 당연히 long 유형은 switch 구문을 따르지 않고 암시적으로 int 유형으로 변환할 수 없으므로 switch 문에서 사용할 수 없습니다. 문자열은 jdk1.7 이후에 사용할 수 있습니다.
6. char형 변수에 한자를 저장할 수 있나요?
Char형 변수는 유니코드로 인코딩된 문자를 저장하는 데 사용됩니다. 유형 변수는 한자를 저장할 수 있습니다. 그러나 유니코드 인코딩 문자 집합에 특수 한자가 포함되어 있지 않으면 해당 특수 한자를 이 char 변수에 저장할 수 없습니다. 추가 설명: 유니코드 인코딩은 2바이트를 차지하므로 char 유형의 변수도 2바이트를 차지합니다.
(추가 면접 질문 추천 : java 면접 질문 및 답변)
7. final 키워드를 사용하여 변수를 수정할 때 참조를 변경할 수 없는 건가요, 아니면 참조된 객체를 변경할 수 없는 건가요?
final 키워드를 사용하여 변수를 수정한다는 것은 참조 변수는 변경할 수 없지만 참조 변수가 가리키는 객체의 내용은 여전히 변경할 수 있다는 의미입니다.
8. 정적 변수와 인스턴스 변수의 차이점은 무엇인가요?
문법적 정의의 차이점: static 키워드는 정적 변수 앞에 추가해야 하지만 인스턴스 변수 앞에는 추가하면 안 됩니다.
프로그램 실행 시 차이점: 인스턴스 변수는 객체의 속성에 속합니다. 인스턴스 객체가 생성되어야 그 안에 있는 인스턴스 변수에 공간이 할당되고, 이 인스턴스 변수를 사용할 수 있습니다. 정적 변수는 인스턴스 객체에 속하지 않고 클래스에 속하므로 클래스 변수라고도 합니다. 프로그램이 인스턴스 객체를 생성하지 않고 클래스의 바이트코드를 로드하는 한 정적 변수에는 공간이 할당되며 정적 변수를 사용할 수 있습니다.
9. 정적 메서드 내에서 비정적 메서드를 호출하는 것이 가능합니까?
아니요. 비정적 메서드는 개체와 연결되므로 개체에 대한 메서드 호출을 수행하기 전에 개체를 만들어야 합니다. 그러나 정적 메서드는 호출 시 개체를 만들 필요가 없으며 직접 호출할 수 있습니다.
즉, 정적 메서드가 호출될 때 인스턴스 개체가 생성되지 않았을 수 있습니다. 정적 메서드에서 비정적 메서드에 대한 호출이 실행되는 경우 연결된 비정적 메서드는 무엇입니까? 이 논리는 설정할 수 없으므로 정적 메서드는 내부적으로 비정적 메서드를 호출합니다.
10. Java에서 다형성을 구현하는 메커니즘은 무엇입니까?
상위 클래스나 인터페이스에서 정의한 참조 변수에 의존하면 하위 클래스나 특정 구현 클래스의 인스턴스 객체를 가리킬 수 있으며, 프로그램에서 호출한 메소드는 런타임에 동적으로 바인딩되는데, 이는 특정 인스턴스 객체의 메소드입니다. 즉, 참조변수의 타입에 정의된 메소드가 아닌 메모리에서 실행중인 객체의 메소드를 가리킨다.
11. 내부 클래스는 해당 클래스의 멤버를 참조할 수 있나요? 제한사항이 있나요?
물론이죠. 정적 내부 클래스가 아니면 제한이 없습니다!
정적 중첩 클래스를 내부 클래스의 특별한 경우로 처리하는 경우 이 경우 외부 클래스의 일반 멤버 변수에 액세스할 수 없고 외부 클래스의 정적 멤버에만 액세스할 수 있습니다.
11가지 자주 묻는 질문(FAQ)이 있으신가요? 다음 번에 면접을 보러 갈 때 이런 질문이 생긴다면, 유창하게 대답하고 가능한 한 빨리 좋아하는 회사로부터 제안을 받을 수 있기를 바랍니다!
관련 권장 사항: Java 시작하기
위 내용은 자바 면접에서 흔히 겪는 기술적인 어려움이 무엇인지 아시나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!