728x90
반응형
이전에 작성했던 자바 인터뷰 질문 - 기본기 파트를 마저 작성해보았습니다.(이전 글 : https://developer-youn.tistory.com/51)피드백은 댓글로 부탁드립니다.
11. Typecasting(형 변환)이 무엇인가요? 부모와 자식간의 상속으로 예시를 들어서 설명해주세요.
A : 부모 클래스와 자식 클래스간의 형변환은 upcasting과 downcasting이 있을 수 있습니다.
자식 클래스에서 부모 클래스로의 형변환을 upcasting이라 합니다. 자식은 이미 부모 클래스의 모든 데이터를 가졌기 때문에 아무런 문제가 없습니다. 그러나 부모 클래스에서 자식 클래스로의 downcasting은 이미 자식 클래스가 부모 클래스보다 더 많은 데이터를 가지기 때문에 에러를 발생시킬 수 있습니다.
12. 자바 플랫폼이 독립적인 이유는?
A: JVM위에서 돌기 때문입니다. JVM 포팅이 가능한 곳이면 어디든 사용할 수 있습니다.
13. 자바에서 객체를 생성하는 방법에는 어떤 것들이 있나요?
A: 5가지가 있는걸로 알고있습니다.
- new 키워드를 사용하여 객체를 생성하는 방법
- Class에 있는 newInstacne 메서드를 사용하여 생성하는 방법
- Constructor 클래스에 있는 newInstacne메서드를 사용하여 생성하는 방법
- clone()을 사용하여 기존 객체의 모든 데이터를 복제한 새로운 객체를 생성하는 방법
- 직렬화된 객체를 저장한 뒤(.obj file) 파일을 읽으면서 역직렬화를 통해 생성하는 방법
14. Collections 프레임워크가 무엇인가요?
A : 데이터를 저장하고 처리하기 편하게 하기 위해 구현해놓은 클래스들을 말합니다. 자바에서는 Interface로 정의한 뒤 이를 상속받아 구현합니다.
15. static, this, super 키워드에 대해 설명해주세요.
A :
- static 키워드를 사용한 것들은 runtime이 아닌 compile time에 메모리에 딱 한번 올라갑니다. 클래스 입장에서 사용적인 측면에서는 이미 메모리에 올라가 있어 별도로 객체의 생성 없이 해당 필드, 메서드를 호출할 수 있습니다.
- this 키워드는 현재 자기 자신 클래스를 지칭합니다.
- super 키워드는 상속 받았을 때 부모 클래스를 지칭합니다.
16. finally, finalize, final 키워드에 대해 설명해주세요.
A :
- finally 는 try - catch 구문에서 추가적으로 붙여 사용할 수 있습니다. finally구문 내 코드는 어떠한 상황에서도 반드시 수행하게 되어있습니다.
- finalize는 객체가 소멸될때 불리는 소멸자 키워드입니다. 기본적으로는 GC에서 호출하여 사용하지만 사용자가 재정의를 할 수 있습니다. 그러나 GC의 호출 시점이 불분명하기 때문에 이를 권장하지 않습니다.
- final 키워드는 불변 객체, 상수를 만드는 키워드입니다. 필드나 원시타입 변수에 붙으면 흔히 말하는 상수처럼 값을 변경할 수 없고 객체에 붙으면 다른 객체로 변경할 수 없습니다. 또한 final이 붙은 필드는 생성자 호출 이전에 메모리에 올라갑니다. static final은 static 키워드로 인해 compile time에 올라갑니다.
reference
[1] : https://www.javatpoint.com/how-many-ways-to-create-an-object-in-java
728x90
반응형
'JAVA' 카테고리의 다른 글
짤막한 개발 메모 - watchdog (0) | 2021.11.23 |
---|---|
자바 인터뷰 질문 - 심화(1) (0) | 2021.07.16 |
자바 인터뷰 질문 - 기본기 (1) (0) | 2021.06.17 |
JAVA - Garbage Collection (0) | 2021.06.17 |
[JAVA] new와 ""의 차이 / string constant pool (0) | 2021.06.06 |