Study/면접 준비

내가 보려고 정리하는 신입 개발자 면접 질문 및 답변 - JAVA#2

긷뚜 2021. 5. 12. 18:11
728x90

이전과 이어집니다...

#####내가 보려고 정리하는 신입 개발자 면접 질문 및 답변 - JAVA#1


  1. interface와 abstract의 차이를 설명하시오.
    • 먼저 abstract 부터 설명 드리면
      • 추상클래스는 추상메서드와 일반 메서드, 멤버필드, 생성자는 정의 할 수 있지만 추상메서드는 내용을 정의 할 수 없습니다.
      • 그리고 추상클래스를 상속받은 클래스는 추상 메서드 사용시 반드시 Override를 하여 정의해야 합니다
      • 마지막으로 추상클래스는 extends로 상속 받기때문에 다중 상속이 불가능 합니다.
    • 다음으로 interface를 설명 드리면
      • 인터페이스는 멤버필드와 추상메서드만 정의 할 수 있습니다. 그렇기 때문에 생성자를 가질 수 없으며 객체화가 불가능 합니다.
      • 그리고 인터페이스는 implements를 사용하기 때문에 다중상속이 가능합니다.

  1. StringBuilder와 StringBuffer의 차이에 대해 설명하시오.
    • StringBuilder, StringBuffer모두 String과는 다르게 수정이나 삭제를 해도 새로운 메모리를 할당하지 않고 동일 객체 내에서 변경되기 때문에 Garbage가 생기지 않는다는 공통점이 있습니다.
    • 그리고 같은 API를 가지고 있는 이 둘의 차이점은 Thread-safe 하는가? 즉 멀티쓰레드 환경에서 안전 하는가의 차이가 존재합니다.
    • StringBuffer는 Syschronized 키워드 즉 동기화를 지원하기 때문에 멀티 쓰레드 환경에서 무결성을 보장해주며
    • StringBuilder는 동기화는 지원하지 않지만 싱글쓰레드 환경에서는 가장 빠른 속도를 보여줍니다

  1. try-with-resources에 대해 설명하시오.
    • 기존 try-catch 문은 꼭 catch 블록이나 finally 블록을 별도로 선언해줘 종료 처리를 해야했습니다.
      • try-with-resources는 try에 자원 객체를 전달하면, try 코드 블록이 끝나면 자동으로 자원을 종료해주는 기능이 있습니다.
    • 즉 별도의 finally나 catch 문을 통해 종료 처리를 하지 않아도 됩니다

  1. Synchronize에 대해 설명하시오.

  1. Synchronize를 하기 위한 방법은 무엇이 있나요?

reference

https://ryan-han.com/post/java/try_with_resources/
728x90