
Garbage Collector의 줄임말로, Java 이전의 C나 C++ 같은 언어에서는 개발자가 직접 메모리 할당과 해제를 컨트롤해야했다. 잦은 메모리 이슈가 까다로운 개발환경에서 벗어나기 위해 GC가 등장하였다.stop-the-world란, GC을 실행하기 위해 J

자바 개발키트(Java Development Kit)의 약자로 개발자들이 자바로 개발하는데 사용되는 SDK 키트JDK안에는 자바를 개발 시 필요한 라이브러리들과 javac, javadoc 등의 개발 도구들을 포함되어 있고, 개발을 하려면 자바 프로그램을 실행도 시켜줘야
Java 프로세스에서 사용 가능한 최소 힙 크기를 설정설정하지 않으면 Xmx 와 동일하게 설정Java 프로세스에서 사용 가능한 최대 힙 크기 설정설정하지 않으면 기본적으로 시스템 물리적 메모리 크기에 따라 결정즉, Java heap 메모리는 -Xms 로 지정한 메모리

<Java의 특징>객체지향 프로그래밍 언어기본 자료형(Primitive type : 원시 자료형)을 제외한 모든 것들이 객체로 표현되어 있다.JVM(Java Virtual Machine) 위에서 동작하기 때문에, OS에 독립적이다.GC(Garbage Collect
자바는 OS에 독립적인 특징을 가지고 있다. 그 이유는 JVM(Java Virtual Machine) 덕분이다. 그렇다면 JVM의 어떠한 기능이 작동하여 OS에 독립적으로 실행시킬 수 있는지 자바 컴파일 과정을 통해 알아가보자. 개발자가 자바 소스코트(.java)를 작
자바는 동적 로드, 즉 컴파일 타임이 아니라 런타임(바이트 코드를 실행할 때)에 클래스를 링크하고 로드하는 특징이 있다. 자바의 클래스 로딩은 클래스 참조 시점에 JVM에 코드가 링크되고, 실제 런타임 시점에 로딩되는 동적 로딩을 거친다.런타임에 동적으로 클래스를 로딩
Class Loader에 의해 JVM으로 Load된 Class 파일(바이트코드)들은 Runtime Data Areas의 Method Area에 배치되는데, JVM은 Method Area의 바이트 코드를 Execution Engine에 제공하여, Class에 정의된 내용

함수 호출 방법들인자로 받은 값을 복사하여 처리한다.장점: 복사하여 처리하기 때문에 안전하다. 원래의 값이 보존된다. 단점: 복사하기 때문에 메모리 사용량이 늘어난다. 인자로 받은 값의 주소를 참조하여 직접 값에 영향을 준다. 장점: 복사하지 않고 직접 참조를 하기에

자바의 객체는 기본적으로 힙 영역에 할당되고 스택 영역에 참조값을 갖는 참조 타입 변수를 통해 데이터에 접근한다. 이러한 객체는 Mutable(가변) 객체와 Immutable(불변) 객체로 나눌 수 있다. Mutable은 객체의 수정을 허용하나, Immutable은 객

원시 타입의 값을 해당하는 wrapper 클래스의 객체로 바꾸는 과정을 의미가벼운 데이터를 무거운 데이터에 넣기컴파일러가 primitive Date 를 Object Date로 자동변환 하는 것기본타입의 값을 포장객체로 만드는 과정래퍼 클래스에 기본 자료형의 데이터 대입

컴파일 시 문법적인 오류와 런타임 시 널포인트 참조와 같은 오류로 프로세스에 심각한 문제를 야기 시켜 프로세스를 종료시킬 수 있습니다.컴퓨터 시스템의 동작 도중 예기치 않았던 이상 상태가 발생하여 수행 중인 프로그램이 영향을 받는 것우로 예를 들면, 연산 도중 넘침에
NullPointerException : Null 레퍼런스를 참조할때 발생, 뭔가 동작시킬 때 발생합니다.IndexOutOfBoundsException : 배열과 유사한 자료구조(문자열, 배열, 자료구조)에서 범위를 벗어난 인덱스 번호 사용으로 발생합니다.FormatE
주요 변경사항 Java 8의 주요 변경 사항은 아래와 같다. Lambda expression(람다 표현식) Functional interface(함수형 인터페이스) Default method(디폴트 메서드) Stream(스트림) Optional(옵셔널) 새롭게 추가된
람다식(Lamda Expression)이란 함수를 하나의 식(expression)으로 표현한 것이다. 함수를 람다식으로 표현하면 메소드의 이름이 필요 없기 때문에, 람다식은 익명 함수(Anonymous Function)의 한 종류라고 볼 수 있다.기존 방식으로 함수를
1. Default Method 인터페이스는 기능에 대한 선언만 가능하기 때문에, 실제 코드를 구현한 로직은 포함될 수 없습니다. 하지만 자바8에서 이러한 룰을 깨트리는 기능이 나오게 되었는 데 그것이 Default Method(디폴트 메소드) 입니다. 메소드 선언 시

클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 것을 의미한다. 한마디로 특정(specific) 타입을 미리 지정해주는 것이 아닌 필요에 의해 지정할 수 있도록 일반(Generic) 타입이라는 것이다. 1) 제네릭을 사용하면 잘못된 타입이 들어올 수
구체적인 Class Type을 알지 못하더라도 해당 Class의 method, type, variable들에 접근할 수 있도록 해주는 자바 API이며, 컴파일된 바이트 코드를 통해 Runtime에 동적으로 특정 Class의 정보를 추출할 수 있는 프로그래밍 기법이다.

Map과 HashMap은 모두 Key-Value를 쌍으로 저장하는 자료구조입니다. 하지만 두 자료구조에는 차이점이 있습니다. \- 두개의 차이점은 인터페이스(Map)인지 아니면 인터페이스를 구현하는 클래스(HashMap)인지 여부입니다.Map의 경우는 Key-Valu

해시의 대략적인 개념들 먼저 알아보자.데이터의 효율적 관리를 목적으로 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수해시함수의 해시값이 최대한 균등하게 나오게 하는게 중요하다!키(key) : 매핑 전 원래 데이터의 값해시값(hash value) : 매핑 후