10. Primitive type과 Reference type
∎ Primitive type - 변수에 값 자체를 저장
정수형 byte, short, int, long
실수형 float, double
문자형 char 논리형 boolean
* Primitive type은 Wrapper Class를 통해 객체로 변형할 수 있다.
∎ Reference type - 메모리상에 객체가 있는 위치를 저장
종류 - Class, Interface, Array 등
11. Wrapper Class
Primitive type으로 표현할 수 있는 간단한 데이터를 객체로 만들어야 할 경우가 있는데 그러한 기능을 지원하는 클래스
12. 접근제한자(public > protected > default > private)
public - 접근 제한이 없다. (같은 프로젝트 내에 어디서든 사용가능)
protected - 같은 패키지 내, 다른 패키지에서 상속받아 자손클래스에서 접근 가능
default - 같은 패키지 내에서만 접근 가능
private - 같은 클래스 내에서만 접근 가능
13. 소켓 통신(TCP/UDP)
TCP(Transmission Control Protocol)
- 연결형 서비스 제공
- 높은 신뢰성 보장
- 연결의 설정(3-way handshaking)
- 연결의 해제(4-way handshaking)
- 데이터 흐름 제어, 혼잡 제어
- 전이중, 점대점 서비스(양방향 송수신 서비스)
UDP(User Datagram Protocol)
- 비연결형 서비스 제공
- 신뢰성이 낮음
- 데이터의 전송 순서가 바뀔 수 있음
- 데이터 수신 여부 확인 안함(3-way handshaking과 같은 과정 X)
- TCP보다 전송속도가 빠름
14. Stack, Queue
STACK
- LIFO(Last In First Out)의 후입선출 구조
- push();를 이용한 데이터 입력, pop();을 이용한 데이터 출력
- 예) 시스템 스택 : 함수의 호출과 복귀 순서는 스택의 구조를 응용하여 관리
- 역순 문자열 만들기, 수식의 괄호 검사, 수식의 후위 표기법 변환
QUEUE
- FIFO(First In First Out)의 선입선출 구조
- enQueue();를 이용한 데이터 입력, deQueue();를 이용한 데이터 출력
- 예) 우선순위가 같은 작업 예약(인쇄 대기열), 선입선출이 필요한 대기열(티켓 카운터)
* Linear Queue(선형큐)는 메모리 재사용이 불가능 이러한 문제점을 보완하여 Circular Queue(원형 큐)가 나옴
15. Singleton Design Patter(싱글톤 디자인 패턴, 싱글톤 패턴)
- 클래스 인스턴스가 하나만 만들어지도록 하고, 그 인스턴스에 대한 전역 접근을 제공한다.
16. 제네릭
다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능
잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거할 수 있다.
클래스 내부에서 사용할 데이터 타입을 나중에 인스턴스를 생성할 때 확정하는 것
17. 람다식
(매개변수) -> {실행코드} 형태로 작성
런타임 시 인터페이스의 익명 구현 개체로 생성됨. (람다식은 인터페이스 변수에 대입됨)
하나의 추상 메소드가 선언된 인터페이스만이 람다식의 타켓 타입이 될 수 있음
>> 이런 인터페이스 = 함수적 인터페이스 : 함수적 인터페이스 작성 시 두 개 이상의 추상 메소드가 선언되지 않도록 컴파일러가 체킹해주는 기능이 있는데, 인터페이스 선언 시 @FunctionalInterface 어노테이션을 붙이면 됨.
장점
코드 간결, 가독성 향상, 코딩 시간이 줄고 병렬프로그래밍 용이
단점
재사용 불가, 디버깅 까다로움
18. 스트림
컬렉션의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자
Iterator와 비슷한 역할, but 차이점
➀ 내부 반복자를 사용하므로 병렬처리가 쉽다.
- 외부 반복자란 개발자가 코드로 직접 컬렉션의 요소를 반복해서 가져오는 코드 패턴.
: index를 이용하는 for문, Iterator를 이용하는 while문 등.
- 내부 반복자는 컬렉션 내부에서 요소들을 반복시키고, 개발자는 요소당 처리해야 할
코드만 제공하는 코드패턴. so 코드 간결, 병렬처리가 컬렉션 내부에서 처리 됨.
➁ 요소 처리 코드를 제공
- 요소 처리 내용을 매개값으로 전달할 수 있음.
'IT > CS' 카테고리의 다른 글
개발 CS 지식 기술 면접 정리 (4) - 자바 (0) | 2022.05.28 |
---|---|
개발 CS 지식 기술면접 질문 정리 (3)- 파이썬, 데이터베이스, 비동기 프로그래밍, react native (0) | 2022.05.27 |
웹 프로그래머 단골 질문, 기술 면접 모음 (1) - java, oop, Overloading vs Overriding, 프레임 워크 등 (0) | 2022.05.25 |
IT개발/ 서버 직무 기술면접 질문 정리 - rest api, was, JSP, Servlet, MVC패턴, get/post 방식 등 (0) | 2022.05.24 |
개발 CS 지식 기술면접 질문 정리 (2)- Iterator, 컴파일러, 인터프리터, 프로세스, 스레드 등 (0) | 2022.05.23 |