본문 바로가기
Tech Interview/Java

[자바] 자바 면접 대비 2

by ggyongi 2021. 11. 18.
반응형

Q) 멀티 스레딩은 어떻게 구현하나요?
A) 쓰레드는 두 가지 방법으로 구현할 수 있는데, Thread 클래스를 상속받아 오버라이딩 메서드를 구현하거나 Runnable() 인터페이스를 구현하는 방법이 있습니다. run() 메서드 안에 새로운 쓰레드로 실행할 코드를 작성하고, 메인 쓰레드에서 해당 쓰레드를 생성하고 start()를 이용해 실행해주면 됩니다. 이때 Runnable 객체의 경우 쓰레드를 상속받고 있는 것이 아니기때문에 start()를 실행하기 위해서는 새 쓰레드 객체를 만들어 인자로 Runnable 객체를 넘겨주어야 합니다.
멀티 스레딩의 경우 동기화 문제가 발생하는데 이를 제어하기 위해 synchronized 예약어를 사용하게 됩니다.


Q) 예외 처리 방법에는 무엇이 있으며, throw는 언제 사용하나요?
A) 예외는 try-catch문으로 처리할 수 있습니다. 이때 finally 블록을 사용하면 이 곳에 반드시 실행할 코드를 넣어줄 수 있습니다. throw는 예외 처리를 그 메서드에서 처리하지 않고 미룬 후에, 그 메서드를 호출하는 부분에서 예외를 처리하는 방법입니다.


Q) Wrapper class가 무엇인가요?
A) int, float과 같은 기본자료형에 대한 클래스 표현으로, Integer, Float 등이 있습니다. 객체형으로 감싸는 이유는 제네릭 사용시에 Wrapper class를 사용해야하기 때문입니다. 또한 기본자료형은 널값을 가질 수 없기 때문에 널값으로 할당할 필요가 있을 시 Wrapper class로 감싸주어야 합니다.


Q) 오토박싱과 오토언박싱이란?
A) 기본형을 객체형으로 바꾸는 것을 오토박싱, 객체형을 기본형으로 꺼내는 것을 언박싱이라고 합니다.
ex) 오토박싱 int -> Integer, 언박싱 Integer -> int


Q) List, Set, Map 각각의 특징을 간략히 설명해주세요.
A) List 인터페이스의 구현체로는 ArrayList 등이 존재합니다. List는 객체를 순서에 따라 저장합니다.
Set 인터페이스의 구현체로는 HashSet, TreeSet 등이 존재합니다. Set은 중복을 허용하지 않고 순서를 저장하지 않습니다.
Map 인터페이스의 구현체로는 HashMap 등이 존재합니다. Map은 키, 값 쌍으로 이루어져 있습니다. key값은 중복이 불가능합니다.


Q) 직렬화, 역직렬화란?
A) 직렬화는 객체의 상태를 바이트 스트림으로 변환하는 작업을 의미합니다. 역직렬화는 반대로 바이트 스트림을 다시 객체형태로 변환하는 작업을 의미합니다. 직렬화의 대상에는 Serializable 인터페이스를 표시해주어야 합니다. 버전을 직접 관리하기 위하여 serialVersionUID라는 것을 사용합니다.

Q) Annotation은 무엇인가요?
A)


Q) 가비지 컬렉션(GC)에 대해 설명해주세요.
A)

 

비전공자 네카라 신입 취업 노하우

시행착오 끝에 얻어낸 취업 노하우가 모두 담긴 전자책!

kmong.com

댓글