💡 Interface란?
- 일종의 추상클래스이다.
- 오직 추상메소드와 상수만을 멤버로 가진다.
- Implements 키워드 사용한다.
- 상속의 관계가 없는 클래스간에 서로 공통되는 로직을 구현하여 쓸 수 있도록함.
- Extends는 하나의 클래스만 상속가능하나 인터페이스는 다중상속 가능하다.
💡 Abstract 란?
- 추상메소드를 하나 이상 가진 클래스.
- 자신의 생성자로 객체 생성 불가능.
- 하위 클래스를 참조하여 상위 클래스의 객체를 생성.
- 하위 클래스를 제어하기 위해 사용.
💡 Interface vs. Abstract Class 용도는?
공통점
- new로 인스턴스 생성이 안됨.
- 프로토타입만 있는 메소드를 가짐.
- 사용하기 위해서는 하위클래스에서 확장/구현 해야 한다.
차이점
- 사용하는 키워드가 다르다.
- Abstract는 일반 메소드를 사용할 수 있지만 interface는 메소드 선언만 가능하다.
- Interface는 다중상속이 가능하다.
💡 Reflection이란?
클래스의 이름으로부터 클래스의 정보를 취득하고 그 인스턴스를 생성하는 방법.
jdbc드라이버 로드 방법도 리플렉션 패키지를 사용한 방법임. 그 외 Struts의 다이나믹 액션폼, 스프링에서 쓰임.
💡 Static의 의미는?
: 클래스가 로딩될 때 메모리 공간을 할당하는데 처음 설정된 메모리 공간이 변하지 않음을 의미
- 객체를 아무리 많이 만들어도 해당 변수는 하나만 존재.
- 객체와 무관한 키워드!
📌 static 멤버변수의 메모리는 한 번 만들어지므로 전체 객체에서 공유 할 수 있음.
💡 Heap이란?
: 실행되는 동안 동적으로 할당 되는 메모리 영역.
- 객체나 배열 new 키워드로 할당된 객체들이 저장된다.
- 모든 객체들이 저장되는 공간이다. (인스턴스와 배열)
- JVM의 모든 스레드들이 공유하며, JVM이 시작될 때 생성된다.
💡 Stack 이란?
: 메서드가 호출될 때마다, 스택 프레임(stack frame)이라고 불리는 새로운 데이터 영역이 생성된다.
- 스택 프레임이 모여 자바 스택(java stack)을 생성한다.
- 스택의 최상단에 존재하는 스택 프레임은 활성화된 스택 프레임(active stack frame)이라고 부른다.
📌 heap & stack 이해를 돕기 위한 링크첨부
💡 Spring Framework란?
스프링 프레임워크는 자바 개발을 편리하게 해주는 오픈소스 프레임워크 입니다.
동적인 웹 사이트 개발하기 위한 여러 가지 서비스를 제공해줍니다.
대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술.
- POJO(Plain Old Java Object) : 오래된 방식의 자바 오브젝트의 줄임말
- 일반적인 J2EE 프레임워크에 비해 특정 라이브러리를 사용할 필요가 없어 개발이 쉬움
- 기존 라이브러리의 지원이 용이
- 제어의 반전(IoC)이라는 기술을 통해 어플리케이션의 느슨한 결합을 도모
- 인스턴스의 생성부터 소멸까지 개발자가 아닌 컨테이너가 대신 관리해주는 것
- 인스턴스 생성의 제어를 시블릿과 같은 bean을 관리해주는 컨테이너가 관리
- 의존성 주입(DI, Dependency Injection)을 지원
- 설정 파일이나 어노테이션을 통해 객체간의 의존 관계를 설정하여 개발자가 직접 의존하는 객체를 생성할 필요없음
- 관점 지향 프로그래밍(AOP, Aspect-Oriented Programming)을 지원
- 트랜잭션, 로깅, 보안 등 여러 모듈, 여러 계층에서 공통으로 필요로 하는 기능의 경우 해당 기능을 분리하여 관리.
💡 Call by reference, Call by value
값에 의한 호출 (Call by value)
- 인자로 받은 값을 복사하여 처리를 한다.
- 장점 : 복사하여 처리하기 때문에 안전하다. 원래의 값이 보존된다.
- 단점 : 직접 참조를 하기 때문에 메모리가 사용량이 늘어난다.
참조에 의한 호출(Call by reference)
- 인자로 받은 값의 주소를 참조하여 직접 값에 영향을 준다.
- 장점 : 복사하지 않고 직접 참조를 하므로 빠르다.
- 단점 : 직접 참조를 하기 때문에 원래 값이 영향을 받는다.
'📌ETC > Tech Interview' 카테고리의 다른 글
신입 개발자 기술면접 질문 정리 #6 (0) | 2022.09.20 |
---|---|
신입 개발자 기술면접 질문 정리 #5 (1) | 2022.09.16 |
신입 개발자 기술면접 질문 정리 #3 (2) | 2022.09.16 |
신입 개발자 기술면접 질문 정리 #2 (0) | 2022.09.16 |
신입 개발자 기술면접 질문 정리 #1 (1) | 2022.09.15 |