본문 바로가기
개발자 양성과정 필기노트

신입개발자 기술면접 준비_JAVA

by jono 2022. 1. 11.

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()로 시작시킨다.

댓글