자바 면접 질문 5

개발자 면접 질문 - 가비지 컬렉션 정의

1. 가비지 컬렉션(Garbage Collection) - 쓰레기(가비지)를 정리해주는 프로그램 - 시스템에서 더 이상 사용하지 않는 동적 할당된 메모리 블록이나 객체를 찾아 자동적으로 다시 사용 가능한 자원으로 회수 2. 가비지 컬렉션 실행시점 - JVM이 메모리가 부족해지면 OS에 추가로 메모리 요청을 할 때 가비지 컬렉션이 실행된다. 3. 가비지 컬렉션 알고리즘 - 마킹 작업 : 사용중인 메모리와 사용하지 않는 메모리 식별 - 일반 삭제 : 참조되지 않는 객체를 제거하고 빈 공간에 대한 포인터를 남긴다. 4. 가비지 컬렉터(Garbage Collector) 종류 - Serial GC : MinorGC, MajorGC를 순차적으로 진행 - Parallel GC : 여러 CPU를 효과적으로 활용하기 위..

면접 - 자바 2020.12.02

개발자 면접 질문 - vector와 list의 차이

1. vector - 연속적인 메모리 - 미래에 저장할 요소를 위해 메모리를 선할당 한다. - 요소 저장 공간은 요소 타입 만큼 필요하다. - 멀티 쓰레드 환경을 지원한다. - 요소 추가가 빈번할 때 효율적이다. - 요소 추가시 메모리 재할당을 해야 한다. - 요소 제거시 iterator 가 무효화 된다. 2. list - 비연속적인 메모리 - 미래에 저장할 요소를 위해 메모리를 선할당 하지 않는다. - 요소 저장 공간은 요소 타입 + 포인트 저장 공간이 필요하다. - 멀티 쓰레드 환경을 지원하지 않는다. - 요소 추가시 메모리 재할당을 하지 않는다. - 요소 제거시 iterator 가 유효하다.

면접 - 자바 2020.12.02

개발자 면접 질문 - Restful 정의

1. Restful - 리소스(url), 메서드(http method), 메세지 3가지 요소로 구성된다. - post : create - get : select - put : update - delete : delete - 특정 언어나 기술에 종속받지 않고 http와 json을 사용할 수 있는 모든 플랫폼에서 사용가능하다 - 무상태성 : http session과 같은 컨텍스트 저장소에 상태 정보를 저장하지 않으므로 구현이 단순해진다. - http 프로토콜 기반의 로드 밸런싱이나 ssl, 캐쉬 기능을 적용할 수 있다.

면접 - 자바 2020.12.02

개발자 면접 질문 - 쓰레드 정의

1. 쓰레드 - 쓰레드는 프로세스 내에서 실행되는 흐름의 단위를 말한다. 2. 멀티 쓰레드 - 하나의 프로세스에서 둘 이상의 쓰레드를 동시에 실행할 수 있는 것을 말한다. - 스케쥴러에 의해 각 쓰레드에게 시간을 할당하여 실행함으로써 여러 쓰레드가 동시에 실행되는 것 처럼 보인다. 3. 특징 - 각 쓰레드는 독립적인 Stack(스택) 영역 갖는다. - 메서드 영역과 힙 영역을 공유한다. - 같은 프로세스 내의 쓰레드들은 스택 이외의 모든 것을 공유한다. - JVM이 운영체제 역할을 한다. - 자바 쓰레드는 JVM에 의해 스케줄되는 실행 단위 코드 블록이다. - 자바에서 쓰레드 스케줄링은 JVM이 관리한다. 4. 구현 방식 - Thread 클래스를 상속 - Runnable 인터페이스를 구현

면접 - 자바 2020.12.02