Java 프로그래머 직책 에 대한 인터뷰를 준비했거나 인증 시험(반드시 프로그래밍에 관한 것은 아님)에 합격한 적이 있다면 그곳에서 묻는 질문이 매우 구체적이라는 것을 이미 눈치챘을 것입니다. 그들 중 다수는 언어의 디자인에 대해 생각하도록 강요합니다. 일부는 지식의 깊이를 조사하도록 설계되었습니다. 무엇보다 퍼즐처럼 보이는 질문이 있는 반면, 연습 없이는 인식하기 매우 어려운 언어의 뉘앙스와 관련된 질문도 있습니다. 이 기사에서 개발자 Sarans Sing은 Java에 대한 몇 가지 질문을 제시합니다. 물론 답변과 함께. 1. try/catch 블록에 return 문이나 System.exit()를 넣으면 어떻게 됩니까? 이것은 매우 인기 있고 미묘한 Java 질문입니다. 트릭은 많은 프로그래머가
finally
블록이 항상 실행된다고 믿는다는 것입니다. return
문을 블록에 넣거나 블록 내부에서 try/catch
호출 함으로써 질문은 이러한 믿음에 의문을 제기합니다. 이 까다로운 질문에 대한 대답은 다음과 같습니다. 문이 블록에 배치되면 블록 이 실행되지만 블록 내에서 가 호출되면 실행되지 않습니다 . 2. Java는 다중 상속을 지원합니까? 이것은 매우 까다로운 질문입니다. 면접관은 종종 "C++이 직접 다중 상속을 지원한다면 Java는 왜 지원하지 않습니까?"라고 묻습니다. 대답 _System.exit()
try/catch
finally
return
try/catch
System.exit()
try/catch
Java는 다중 유형 상속을 지원하기 때문에 보기보다 약간 더 복잡합니다. 결국 Java 인터페이스는 다른 인터페이스를 확장할 수 있습니다. 즉, Java는 구현의 다중 상속을 지원하지 않습니다. 3. 부모 클래스의 메서드가 NullPointerException
s를 throw하는 경우 s를 throw하는 메서드로 재정의할 수 있습니까 RuntimeException
? 이것은 과부하 및 재정의와 관련된 또 다른 까다로운 질문입니다. 대답: 재정의된 메서드는 NullPointerException
의 부모 클래스인 RuntimeException을 안전하게 throw할 수 있지만 Exception
. 4. 스레드가 교착 상태 없이 리소스 에 액세스할 수 있다는 것을 어떻게 보장합니까 ?N
N
다중 스레드 코드를 작성하는 것이 자신의 장점이 아닌 경우 이 질문에 정말 걸려 넘어질 수 있습니다. 교착 상태 및 경합 상태를 경험하지 않은 숙련된 프로그래머에게도 어려울 수 있습니다. 여기에서 전체 요령은 순서에 있습니다. 리소스를 획득한 역순으로 리소스를 해제하여 교착 상태를 방지할 수 있습니다. 5. Java에서 및 클래스 의 차이점은 무엇입니까 ? StringBuffer
StringBuilder
이것은 일부 개발자가 까다롭다고 생각하는 고전적인 Java 언어 질문이고 다른 개발자는 매우 간단합니다. 이 StringBuilder
클래스는 JDK 1.5에 등장했습니다. 이러한 클래스 간의 유일한 차이점은 , 및 와 StringBuffer
같은 의 메서드가 동기화되는 반면 의 해당 메서드는 동기화된다는 것입니다.length()
capacity()
append()
StringBuilder
아니다. 이 근본적인 차이점은 문자열 연결이 with StringBuilder
보다 빠르다는 것을 의미합니다 StringBuffer
. 실제로 StringBuffer
문자열 연결은 99%의 시간 동안 동일한 스레드에서 수행되므로 사용하지 않는 것이 좋습니다. 6. 식 1.0/0.0을 평가한 결과는 무엇입니까? 예외 또는 컴파일 오류가 발생합니까? 이것은 수업에 관한 또 다른 까다로운 질문입니다 . Java 개발자는 원시 double 데이터 유형 및 클래스의 존재를 알고 있지만 부동 소수점 연산을 수행할 때 , , 및 관련 산술 계산을 제어하는 규칙 에 충분히 주의를 기울이지 않습니다 . 이 질문에 대한 대답은 간단합니다 .Double
Double
Double.POSITIVE_INFINITY
Double.NEGATIVE_INFINITY
NaN
-0.0
ArithmeticException
던지지 않을 것입니다. 식은 로 평가됩니다 Double.POSITIVE_INFINITY
. 7. 이미 해당 키가 포함된 에 키를 삽입하려고 하면 어떻게 됩니까 HashMap
? HashMap
이 까다로운 질문은 자주 묻는 또 다른 질문인 Java에서 작동하는 방식의 일부입니다 . HashMap
Java에 대한 혼란스럽고 까다로운 질문의 인기 있는 소스입니다. 대답은 다음과 같습니다. a 에 키를 다시 삽입하려고 하면 클래스가 중복 키를 허용하지 않기 HashMap
때문에 이전 키가 대체됩니다 . HashMap
그리고 동일한 키는 동일한 해시 코드를 갖게 됩니다. 즉, 해시 버킷의 동일한 위치에 있게 됩니다. Quora 자료 기반
GO TO FULL VERSION