1. 기본 특징
- 객체지향 프로그래밍 언어: 기본 자료형을 제외한 모든 요소들이 '객체'로 표현된다
- 멀티쓰레딩: 다양한 작업을 작게
- 가비지컬렉터가 있어 자동적으로 메모리공간 관리가 된다.
2. A/P/I/E 의 특징을 가진다 (추상성, 다형성, 상속성, 은닉성)
1) 추상성: 추상메서드 & 추상클래스
- 추상메서드: 구현부가 없는 메서드.
- 추상클래스: 서브클래스에서 해당클래스를 구현하도록 강제하는 용도로 사용한다.
: 객체생성이 불가능하다.
2) 다형성: 하나의 슈퍼클래스타입으로 여러 서브클래스와 인스턴스를 참조하는 것
-> 업캐스팅후에도 오버라이딩 된 메서드가 호출되는 특징을 나타낸다.
3) 상속성: 부모요소를 상속받은 자식클래스는 별도의 메서드 정의의 필요없이 부모요소의 자원을 사용할 수 있다.
4) 은닉성(캡슐화): 상세구조를 숨길 수 있다. private 접근제한자와 getter/setter를 활용한다.
3. 객체지향 프로그래밍의 장점
- 코드의 재사용성, 수정에 용이하다
- 상속개념의 활용 -> 코드최소화, 개발속도 향상
4. 오버로딩과 오버라이딩
- 오버로딩: 같은 이름의 메서드를 여러개로 재정의하는 것. -> 매개변수의 타입이나 갯수를 변경하여 지정한다.
- 오버라이딩: 부모클래스에서 정의된 메서드를 자식클래스에서 재정의하는것.
5. JAVA의 추상클래스와 인터페이스의 차이
추상클래스 | 인터페이스 |
extends | implements |
1:1의 상속관계만 가능 | 하나의 클래스가 여러개의 인터페이스를 구현하는 것이 가능 |
일반메서드 사용가능 | 메서드 정의만 가능 |
6. static
- 클래스가 메모리에 로딩될 때 함께 로딩되는 멤버변수임
- 따라서 별도의 인스턴스생성이 필요없이 클래스명 만으로 접근할 수 있다.
7. 싱글톤 디자인패턴
- 클래스의 인스턴스가 하나만 만들어지도록 설정하고, 해당 인스턴스에 대한 전역접근이 가능하도록 하는 디자인패턴임.
8. 접근제한자
public > protected > default > private
- public: 접근에 제한이 없음
- protected: 해당 패키지 or 패키지를 import한 패키지에서 접근가능
- default: 해당 패키지에서만 접근가능
- private: 해당 클래스에서만 접근가능
9. stack & queue 비교
- stack: 원통형의 구조. 후입선출
- queue: 터널형의 구조. 선입선출
10. DAO & DTO 설명
- DAO: 데이터베이스의 데이터에 접근하기 위한 객체.
- DTO: 계층(컨트롤러, 뷰 등)간의 데이터 교환을 위한 객체. 각 컬럼명에 private 접근제한자를 사용하여 데이터를 저장하거나 불러올 때 사용함.
11. String & StringBuffer 차이점
1) String - 원본 문자열의 수정이 불가능하다. 문자열의 수정이 빈번한 작업을 하는경우 메모리 낭비 심해짐
2) StringBuffer - String의 단점을 보완할 수 있다. 생성자를 통해서만 사용이 가능하다.
12. 멀티쓰레딩
- 멀티태스킹과 비슷하지만 멀티쓰레딩은 동시작업이 X
- 여러개의 프로세스를 짧은시간동안 번갈아가면서 작업하는 방법이다.
- Thread클래스 상속받기 or Runnable 인터페이스 구현하여 작업을 run()메서드에 정의하고 start()로 시작시킨다.
'개발자 양성과정 필기노트' 카테고리의 다른 글
신입개발자 기술면접준비_ DB (0) | 2022.01.11 |
---|---|
신입개발자 기술면접준비_웹, Spring (0) | 2022.01.11 |
댓글