김영한의 실전 자바 - 기본편 강의 | 김영한 - 인프런김영한 | 실무에 필요한 자바 객체 지향의 핵심 개념을 예제 코드를 통해 쉽게 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 문www.inflearn.com 자바 메모리 구조 자바의 메모리 구조는 크게 메서드 영역, 스택 영역, 힙 영역 3개로 나눌 수 있다. 메서드 영역: 클래스 정보를 보관한다. 이 클래스 정보가 붕어빵 틀이다.스택 영역: 실제 프로그램이 실행되는 영역이다. 메서드를 실행할 때 마다 하나씩 쌓인다.힙 영역: 객체(인스턴스)가 생성되는 영역이다. `new` 명령어를 사용하면 이 영역을 사용한다. 쉽게 이야기해서 붕어빵 틀로부터 생성된 붕어빵이 존재하는 공간이다. 참..
김영한의 실전 자바 - 기본편 강의 | 김영한 - 인프런김영한 | 실무에 필요한 자바 객체 지향의 핵심 개념을 예제 코드를 통해 쉽게 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 문www.inflearn.com 접근 제어자자바는 `public`, `private`와 같은 접근 제어자(access modifier)를 제공한다. 접근 제어자를 사용하면 해당 클래스 외부에서 특정 필드나 메서드에 접근하는 것을 허용하거나 제한할 수 있다. 이런 접근 제어자가 왜 필요하는 지 예제를 통해 이유를 알아보자. 스피커 객체를 만들어보자.스피커는 음량을 높이고, 내리고, 현재 음량을 확인할 수 있는 단순한 기능을 제공한다. 요구사항 대로 스피커의..
자원이란?Java에서 자원(resource)이란 일반적으로 프로그램이 실행되는 동안 사용되는 외부의 한정된 시스템 자원을 의미한다. 자원은 다양한 형태로 존재하며, 적절히 관리하지 않으면 누수(resource leak)가 발생하거나 시스템 성능에 악영향을 미칠 수 있다. 따라서 자원을 다 쓰고 난 후에는 close와 같은 자원 해제를 해줘야 한다. Java 7 버전 이전에는 사용하고 난 자원을 반납하기 위해 `try-catch-finally` 구문을 사용했었다. Java 7 버전부터 추가된 `try-with-resources` 구문은 `try` 블록에서 리소스를 선언하고 `try` 블록이 종료되면 자동으로 반납(close)해주는 구문이다. 자원의 예파일: 파일 읽기/쓰기와 관련된 `File` 또는 ..
Stream이란?Java의 Stream API는 일련의 데이터 흐름을 표준화된 방법으로 쉽게 처리할 수 있도록 지원하는 클래스의 집합(패키지)이다. 오라클 공식 문서에서는 Stream 패키지를 요소들의 Stream에 함수형 연산을 지원하는 클래스라고 정의하고 있다. 즉, Java의 Stream을 이용하면 일련의 데이터를 함수형 연산을 통해 표준화된 방법으로 쉽게 가공, 처리할 수 있다. `Stream`는 데이터 요소의 연속된 시퀀스로서, 데이터 소스를 기반으로 필터링, 변환, 집계 등의 작업을 처리할 수 있다.데이터 소스 변경 금지: Stream은 데이터 소스를 직접 수정하지 않는다.목적: 컬렉션과 달리 데이터 요소를 직접 관리하지 않고, 선언전 데이터 처리를 수행하기 위함이다.Stream의 구성 요소..
static`static` 키워드는 주로 메모리 관리를 위해 사용되며, 변수나 메서드와 같은 멤버가 특정 클래스의 인스턴스에 속하는 것이 아니라 클래스 자체에 속함을 의미한다. 따라서 객체의 인스턴스를 생성하지 않고도 정적 멤버에 접근할 수 있다. 일반적으로 우리가 정의한 클래스는 메모리의 Static 영역에 생성되며, `new` 연산자를 통해 생성한 객체는 Heap 영역에 할당된다. Heap 영역에 생성된 객체는 Garbage Collector에 의해 자동으로 관리되지만, Static 영역에 생성된 데이터는 Garbage Collector의 관리 대상이 아니다. Static 영역의 데이터는 프로그램이 종료될 때까지 메모리에 유지되며, 이는 모든 객체가 해당 데이터를 공유할 수 있는 장점을 제공한다. ..
Java Enum은 Java 5에서 처음 도입된 특별한 클래스 타입으로, `java.lang.Enum` 클래스를 확장한다. Enum은 코드 가독성을 높이고, 컴파일 타임에 값이 검증되도록 해준다. 문서 기본 Enum 사용법Java Enum은 관련된 상수들을 집합으로 표현하는 방식이다. 예를 들어 피자 주문 상태를 나타내는 Enum을 정의할 수 있다.public enum PizzaStatus { ORDERED, READY, DELIVERED; }열거 시에는 콤마(`,`), 끝날 시에는 세미콜론(`;`) 이와 같이 Enum으로 정의된 상수는 코드 가독성을 높이고, 잘못된 값이 전달되는 예외 사항을 방지할 수 있다. 또한 유용한 메서드들이 많이 제공된다. 커스텀 Enum 메서드기본 Enum에..