Study/면접 준비
내가 보려고 정리하는 신입 개발자 면접 질문 및 답변 - JAVA#2
긷뚜
2021. 5. 12. 18:11
728x90
이전과 이어집니다...
- interface와 abstract의 차이를 설명하시오.
- 먼저 abstract 부터 설명 드리면
- 추상클래스는 추상메서드와 일반 메서드, 멤버필드, 생성자는 정의 할 수 있지만 추상메서드는 내용을 정의 할 수 없습니다.
- 그리고 추상클래스를 상속받은 클래스는 추상 메서드 사용시 반드시 Override를 하여 정의해야 합니다
- 마지막으로 추상클래스는 extends로 상속 받기때문에 다중 상속이 불가능 합니다.
- 다음으로 interface를 설명 드리면
- 인터페이스는 멤버필드와 추상메서드만 정의 할 수 있습니다. 그렇기 때문에 생성자를 가질 수 없으며 객체화가 불가능 합니다.
- 그리고 인터페이스는 implements를 사용하기 때문에 다중상속이 가능합니다.
- 먼저 abstract 부터 설명 드리면
- StringBuilder와 StringBuffer의 차이에 대해 설명하시오.
- StringBuilder, StringBuffer모두 String과는 다르게 수정이나 삭제를 해도 새로운 메모리를 할당하지 않고 동일 객체 내에서 변경되기 때문에 Garbage가 생기지 않는다는 공통점이 있습니다.
- 그리고 같은 API를 가지고 있는 이 둘의 차이점은 Thread-safe 하는가? 즉 멀티쓰레드 환경에서 안전 하는가의 차이가 존재합니다.
- StringBuffer는 Syschronized 키워드 즉 동기화를 지원하기 때문에 멀티 쓰레드 환경에서 무결성을 보장해주며
- StringBuilder는 동기화는 지원하지 않지만 싱글쓰레드 환경에서는 가장 빠른 속도를 보여줍니다
- try-with-resources에 대해 설명하시오.
- 기존 try-catch 문은 꼭 catch 블록이나 finally 블록을 별도로 선언해줘 종료 처리를 해야했습니다.
- try-with-resources는 try에 자원 객체를 전달하면, try 코드 블록이 끝나면 자동으로 자원을 종료해주는 기능이 있습니다.
- 즉 별도의 finally나 catch 문을 통해 종료 처리를 하지 않아도 됩니다
- 기존 try-catch 문은 꼭 catch 블록이나 finally 블록을 별도로 선언해줘 종료 처리를 해야했습니다.
- Synchronize에 대해 설명하시오.
- Synchronize를 하기 위한 방법은 무엇이 있나요?
reference
https://ryan-han.com/post/java/try_with_resources/
728x90