- 그럼, 자바 말고 다른 언어는 JVM 위에 올릴 수 없나요?
- 반대로 JVM 계열 언어를 일반적으로 컴파일해서 사용할 순 없나요?
- VM을 사용함으로써 얻을 수 있는 장점과 단점에 대해 설명해 주세요.
- JVM과 내부에서 실행되고 있는 프로그램은 부모 프로세스 - 자식 프로세스 관계를 갖고 있다고 봐도 무방한가요?
- 의미만 들어보면 리플렉션은 보안적인 문제가 있을 가능성이 있어보이는데, 실제로 그렇게 생각하시나요? 만약 그렇다면, 어떻게 방지할 수 있을까요?
- 리플렉션을 언제 활용할 수 있을까요?
- static 을 사용하면 어떤 이점을 얻을 수 있나요? 어떤 제약이 걸릴까요?
- 컴파일 과정에서 static 이 어떻게 처리되는지 설명해 주세요.
- 예외처리를 하는 세 방법에 대해 설명해 주세요.
- CheckedException, UncheckedException 의 차이에 대해 설명해 주세요.
- 예외처리가 성능에 큰 영향을 미치나요? 만약 그렇다면, 어떻게 하면 부하를 줄일 수 있을까요?
- Synchronized 키워드가 어디에 붙는지에 따라 의미가 약간씩 변화하는데, 각각 어떤 의미를 갖게 되는지 설명해 주세요.
- 효율적인 코드 작성 측면에서, Synchronized는 좋은 키워드일까요?
- Synchronized 를 대체할 수 있는 자바의 다른 동기화 기법에 대해 설명해 주세요.
- Thread Local에 대해 설명해 주세요.
- Stream과 for ~ loop의 성능 차이를 비교해 주세요,
- Stream은 병렬처리 할 수 있나요?
- Stream에서 사용할 수 있는 함수형 인터페이스에 대해 설명해 주세요.
- 가끔 외부 변수를 사용할 때, final 키워드를 붙여서 사용하는데 왜 그럴까요? 꼭 그래야 할까요?
- finalize() 를 수동으로 호출하는 것은 왜 문제가 될 수 있을까요?
- 어떤 변수의 값이 null이 되었다면, 이 값은 GC가 될 가능성이 있을까요?
- 본인이 hashcode() 를 정의해야 한다면, 어떤 점을 염두에 두고 구현할 것 같으세요?
- 그렇다면 equals() 를 재정의 해야 할 때, 어떤 점을 염두에 두어야 하는지 설명해 주세요.
- 후보 없이 특정 기능을 하는 클래스가 딱 한 개하면, 구체 클래스를 그냥 사용해도 되지 않나요? 그럼에도 불구하고 왜 Spring에선 Bean을 사용 할까요?
- Spring의 Bean 생성 주기에 대해 설명해 주세요.
- 프로토타입 빈은 무엇인가요?
- 설명만 들어보면 인터셉터만 쓰는게 나아보이는데, 아닌가요? 필터는 어떤 상황에 사용 해야 하나요?
- 여러 요청이 들어온다고 가정할 때, DispatcherServlet은 한번에 여러 요청을 모두 받을 수 있나요?
- 수많은 @Controller 를 DispatcherServlet은 어떻게 구분 할까요?
- @Transactional(readonly=true) 는 어떤 기능인가요? 이게 도움이 되나요?
- 그런데, 읽기에 트랜잭션을 걸 필요가 있나요? @Transactional을 안 붙이면 되는거 아닐까요?
- 별 기능이 없는 것 같은데, 어떻게 Spring 에서는 Annotation 이 그렇게 많은 기능을 하는 걸까요?
- Lombok의 @Data를 잘 사용하지 않는 이유는 무엇일까요?