2022. 5. 1. 23:13ㆍCS 스터디
참고 링크 : https://github.com/ksundong/backend-interview-question
jvm
자바 가상 머신
자바 어플리케이션을 클래스 로더를 통해 읽어 자바 API와 함께 실행하는 것
메모리 관리를 수행하며 스택기반의 가상머신이다.
gc
HEAP 영역에 존재하는 사용하지 않는 객체들을 제거하는 작업을 수행한다.
개발자가 직접 메모리를 해제할 수 없기 때문에 필요하다.
mark를 통해 사용하지 않는 객체를 표시하고, sweep을 통해 지운다. 그 후 단편화된 메모리를 compact한다.
gc동안은 gc를 하는 스레드 이외의 모든 스레드는 정지한다.
컬렉션 프레임워크
- 객체, 데이터 등을 효율적으로 관리할 수 있는 자료구조들이 있는 라이브러리
제너릭
자바의 타입안정성을 보장하는 역할
컴파일 단계에서 타입체킹을 통해 타입 안정성을 높히고 형변환의 번거로움을 줄여준다.
어노테이션
- 인터페이스 기반의 문법으로 특별한 의미를 부여하거나 기능을 주입하는 역할을 한다.
오버라이딩 & 오버로딩
오버라이딩 : 상위 클래스의 메소드를 재정의하는 것을 의미한다.
오버로딩 : 하나의 메소드명이 매개변수의 개수나 타입에 따라서 여러 개의 메소드로 구현될 수 있는 것을 의미한다.
인터페이스 & 추상클래스
추상클래스 : 객체의 추상적인 상위 개념으로 공통된 개념을 표현할 때 사용된다. 하위 클래스간 연관관계가 존재한다.
인터페이스 : 구현 객체가 동일한 기능을 한다는 것을 보장하기 위해 사용한다. 다중상속이 가능하며 하위 클래스간 연관관계가 존재하지 않을 수도 있다.
클래스 & 객체
객체 : 식별 가능한 개체 또는 사물로, 클래스에서 정의된 것을 바탕으로 실제 메모리에 할당되는 것을 의미한다.
클래스 : 데이터를 추상화하여 객체의 상태나 행위를 변수와 메소드로 정의한 것, 즉 객체를 표현하기 위한 메타변수에 해당한다.
정적(static)
클래스 멤버라고도 하며, 클래스 로더가 클래스를 로딩해서 메소드 메모리 영역에 적재할 때 클래스별로 관리된다.
permGen또는 metaspace에 저장되며 모든 객체가 공유하고 하나의 멤버를 어디서든지 참조할 수 있다.
GC의 관리 영역밖에 존재하기 때문에 프로그램 종료시까지 메모리를 할당한 채로 존재한다.
접근 제어자
public : 전체 영역에서 접근 가능
protected : 상속한 클래스에서 접근 가능
default : 해당 패키지에서 접근 가능
private : 해당 클래스에서 접근 가능
객체지향
프로그래밍에 필요한 데이터를 추상화하여 상태와 행위를 가지는 객체를 만들고 객체들의 유기적인 상호작용을 통해 로직을 구현하는 프로그래밍 방법
추상화 : 클래스를 설계하는 것 자체, 공통의 속성과 기능을 묶어 이름을 붙이는 것
캡슐화 : 속성과 메소드를 클래스라는 캡슐에 논리적으로 분류하여 넣는 것.
상속 : 부모클래스의 속성과 기능을 이어받아 사용할 수 있게하고 기능의 일부분을 재정의하여 사용할 수 있게하는 것.
다형성 : 하나의 변수명, 함수명이 상황에 따라 다른 의미로 해석될 수 있다. 오버로딩과 오버라이딩이 이에 해당됨.
원시타입 & 참조타입
원시타입 : 자바에 8개만 존재하는 타입(boolean, char, byte, short, int, float, long, double)
참조타입 : 원시타입 이외의 모든 타입으로 object 클래스거나 이를 상속하는 클래스들
원시타입은 초기화시 default값을 가지지만, 참조 타입은 null로 초기화된다.
원시타입은 반드시 값이 존재해야하지만 참조 타입은 null 포인터를 가질 수 있다.
java8 추가 기능
optional : null-safety를 제공
lambda : 함수형 프로그래밍 지원
stream : 병렬 처리 지원, 가독성 향상, 다양한 데이터의 처리에 대한 동일한 표현 방식 제공
jpa N + 1
'CS 스터디' 카테고리의 다른 글
| [CS : DB] BE 면접 대비 질문 리스트(1) (0) | 2022.04.27 |
|---|---|
| [CS : DB] 관계 데이터 연산 - 관계 대수 (1) | 2022.02.02 |
| [CS : DB] SQL 개요 (0) | 2022.01.18 |
| [CS : WEB] OAuth & JWT(JSON Web Token) (0) | 2021.06.06 |
| [CS : OS] 파일 시스템 (0) | 2021.05.26 |