code2772 2023. 3. 24. 19:18
728x90
반응형

객체 지향의 특징

현실세계의 객체를 필드와 메서드로 정의한 Class를 기반으로 실제 메모리가 잡혀 만들어진 부품과 같은 객체들을 조합해 전체 프로그램을 완성해 나가는 개발 기법 특징

캡슐화, 은닉화 : 외부 객체에서 구현방식은 알 수 없도록 숨기고 별도로 접근할 수 있는 getter/setter 메서드를 통해 접근하도록 하는 방식

상속 : 부모 Class를 자식이 접근할 수 있도록 물려 받는 방식 다형성 : 부모 클래스 타입으로 해당 부모를 상속받는 여러 자식 class를 대입할 수 있는 성질 등을 들 수 있다. 

 

 

자바 가비지 컬렉션

시스템에서 더이상 사용하지 않는 동적 할당된 메로리 블럭을 찾아 자동으로 다시 사용 가능한 자원으로 회수하는 것으로 시스템에서 가비지컬렉션을 수행하는 부분을 가비지 컬렉터라 부른다.

 

 

의존성 주입

프로그램 디잔인의 결합도를 느슨하게 되도록하고 의존관계 역전 원칙단일 책임 원칙을 따르도록 클라이언트의 생성에 대한 의존성을 클라이언트의 행위로부터 분리, 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다

 

 

컬렉션 프레임워크

 다수의 요소를 하나의 그룹으로 묶어 효율적으로 저장하고, 관리할 수 있는 기능을 제공하는 일종의 컨테이너

배열은 크기가 고정되어 있는데에 반해, 컬렉션 프레임워크는 가변적인 크기

데이터 삽입, 탐색, 정렬 등 편리한 API 를 다수 제공

프로그램의 유지보수를 쉽게 

 

 

스택

후입 선출(LIFO) 스택은 객체들의 집합소로써, 데이터를 기록

  1. 웹 브라우저 방문 기록 (뒤로가기)
  2. 실행 취소 (undo)

 

쉽게 설명하면 선입 선출 (FIFO)이다. 큐는 집합에서 가장 오랜 시간 존재했던 원소를 삭제한다.

  1. 우선순위가 같은 작업 예약 (프린터 출력)

  2. 대기열(커피 주문 대기열)

 

 

직렬화

자바 직렬화란 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 바이트(byte) 형태로 데이터 변환하는 기술과 바이트로 변환된 데이터를 다시 객체로 변환하는 기술(역직렬화)을 아울러서 말합니다.

시스템 적으로는 JVM(Java Virtual Machine)의 메모리에 상주(heap 또는 stack) 되어 있는 객체 데이터를 바이트 형태로 변환하는 기술과 직렬화된 바이트 형태의 데이터를 객체로 변환해서 JVM으로 상주시키는 형태를 말합니다.

 

 

List, Map, Set

List : 순서가 있고 중복 허용, 인덱스를 통해 원소에 접근, 크기는 가변적

Map : Key, Value 한쌍의 데이터 집합, Key 중복이 없고 순서 보장하지 않음, 빠른 검색, 인덱스는 존재하지 않고 iterator 사용 , Value는 중복 허용

Set : 데이터 집합으로 순서가 없고 데이터 중복을 허용하지 않음, 주로 중복되지 않은 데이터 구하는 경우 많이 사용, 빠른 검색과 인덱스가 따로  없어 iterator사용

 

 

public protect private

public : 모든 접근을 허용합니다. 어떠한 클래스가 접근을 하든 모두 허용됩니다.

protected : 상속받은 클래스 또는 같은 패키지에서만 접근이 가능합니다.

private : 외부에서 접근이 불가능합니다. 즉, 같은 클래스 내에서만 접근이 가능합니다.

default : 기본 제한자로써 아무것도 붙지 않고, 자신 클래스 내부와 같은 패키지 내에서만 접근이 가능.

 

 

동기 비동기

동기는 설계 간단 그러나 결과가 주어지 때까지 아무것도 못하고 대기

비동기 설계시 복잡 그러나 결과가 주저지는데 시간이 걸리더라도 그 시간 동안 작업 가능으로 자원을 효율적 사용

반응형