Java(32)
-
break와 continue 상세 설명
기본 이해break와 continue는 제어문에만 사용되는 개념이다.제어문이라는 것은 for 루프, while 루프, do-while 루프, switch 문 같은 것을 의미한다.정의break: 현재 실행 중인 반복문이나 switch문을 즉시 종료continue: 현재 반복을 건너뛰고 다음 반복으로 진행비유break: 영화관에서 영화가 마음에 들지 않아 중간에 퇴장continue: TV 채널에서 광고가 나오면 다음 내용으로 건너뛰기작동방식break: 제어문의 블록을 완전히 벗어남continue: 현재 반복만 중단하고 다음 반복 조건 검사로 이동존재 이유와 목적제어문을 사용하는 중에 특정 조건의 동작을 컨트롤 하고 싶을 경우 사용한다. 사실 if문만으로도 모든 제어가 가능하지만 break와 continue를..
13:54:16 -
자바의 제어문(조건문, 반복문, 분기문)
기본 이해정의: 프로그램의 실행 흐름을 제어하는 문장비유:조건문 = 교차로의 신호등반복문 = 회전 교차로분기문 = 비상구/탈출로작동방식:순차적 실행 흐름을 조건/반복/분기에 따라 변경코드 블록 단위로 실행 여부 결정핵심 구성요소조건문if문: 단일 조건 검사if-else문: 양자 택일if-else if문: 다중 조건 검사switch-case문: 값 기반 다중 분기반복문for: 정해진 횟수 반복while: 조건 기반 반복do-while: 최소 1회 실행 보장enhanced for: 컬렉션 순회분기문break: 반복문/switch문 탈출continue: 현재 반복 건너뛰기return: 메소드 종료존재 이유와 목적동적 프로그램 흐름 제어 필요성코드 재사용성 향상조건별 다른 처리 가능반복 작업 자동화주의사항과 일..
13:47:54 -
명시적 형변환 vs 암시적 형변환
기본 이해명시적 형변환(Explicit Type Casting):프로그래머가 직접 데이터 타입을 변환하도록 지정코드에서 변환 의도가 명확히 보임(int), Integer.valueOf() 암시적 형변환(Implicit Type Casting):컴파일러가 자동으로 수행하는 타입 변환데이터 손실이 없는 안전한 변환만 수행작은 타입에서 큰 타입으로의 변환일상생활 비유명시적: 물을 얼음틀에 부어 얼음으로 만드는 것 (의도적 변환)암시적: 얼음이 상온에서 자연스럽게 물이 되는 것 (자연스러운 변환)명시적 형변환(Explicit Type Casting)명시적 이라는 말에서부터 알 수 있지만 직접 코드를 만들어서 형변환을 하는 방식을 뜻한다.핵심 구성요소캐스팅 연산자 () 사용가장 기본적이고 간단한 형변환 방식이다...
00:45:41 -
지역변수와 멤버변수
기본 이해멤버변수클래스 내부에서 선언된 변수지역변수메서드 내부에서 선언된 변수로, 해당 메서드 내에서만 사용class House { furniture = "침대"; // 멤버변수: 집에 계속 있는 가구 clean() { let vacuum = "청소기"; // 지역변수: 청소할 때만 꺼내 쓰는 도구 console.log(`${vacuum}로 ${this.furniture} 청소`); } // 메서드가 끝나면 vacuum은 사라짐, furniture는 계속 존재}핵심 구성요소멤버변수접근제어자 사용 가능 (public, private 등)클래스 전체에서 접근 가능객체의 상태를 저장지역변수접근제어자 사용 불가 - 메서드 내부에서만 사용 가능하기때문선언된 블록 ..
2025.05.17 -
2. 메모리 - 3. 가비지 컬렉션 기본
자바의 가비지 컬렉션(Garbage Collection)기본 이해개념: 자바의 자동 메모리 관리 시스템으로, 더 이상 사용되지 않는 객체를 자동으로 감지하고 제거하는 프로세스비유: 집안 정리와 비슷함. 더 이상 필요 없는 물건(미참조 객체)을 정기적으로 치우는 청소부작동방식:Mark: 사용중인 객체 식별Sweep: 미사용 객체 제거Compact: 남은 메모리 조각 정리핵심 구성요소Young GenerationEden SpaceSurvivor Space (S0, S1)Old GenerationMetaspace (Java 8 이후)GC 알고리즘Serial GCParallel GCCMS GCG1 GC존재 이유와 목적메모리 누수 방지개발자의 메모리 관리 부담 감소안정적인 장기 실행 보장자동화된 메모리 최적화주의..
2025.05.14 -
2. 메모리 - 2. 메서드 영역(Method Area)
메서드 영역(Method Area)기본 이해개념 정의JVM의 메모리 구조 중 하나로, 클래스 구조, 메서드, 정적 변수 등을 저장하는 영역모든 스레드가 공유하는 영역일상생활 비유도서관의 책장처럼 모든 사람이 공유하며 참고할 수 있는 공간작동 방식클래스 로더가 클래스를 로딩할 때 생성JVM 시작 시 생성되어 종료 시까지 유지정적 데이터를 포함한 클래스 정보 저장핵심 구성요소Type Information클래스와 인터페이스의 정보메서드와 필드 정보타입 관련 상수풀Runtime Constant Pool클래스와 인터페이스의 상수메서드와 필드에 대한 레퍼런스Field Datastatic 변수상수 변수(final)Method Data메서드 바이트코드메서드 시그니처존재 이유와 목적클래스 정보의 중앙 집중화메모리 효율성..
2025.05.12 -
2. 메모리 - 1. 스택(Stack)과 힙(Heap)
기본 이해개념 정의스택: LIFO(Last In First Out) 구조의 메모리 영역으로, 정적 메모리 할당에 사용힙: 동적 메모리 할당을 위한 자유로운 영역으로, 크기가 불규칙한 데이터 저장일상생활 비유스택: 접시 쌓기 (마지막에 쌓은 접시를 먼저 사용)힙: 도서관 책장 (필요한 공간에 자유롭게 책을 배치)작동 방식스택: 함수 호출과 지역변수 저장, 컴파일 시점에 크기 결정힙: 런타임에 동적으로 메모리 할당/해제핵심 구성요소스택:프레임: 함수 호출마다 생성되는 독립적 영역포인터: 현재 실행 위치 추적지역변수 저장소힙:가용 메모리 풀메모리 블록메모리 관리자존재 이유와 목적메모리 효율적 관리빠른 액세스 속도 (스택)유연한 메모리 할당 (힙)스코프와 생명주기 관리주의사항과 일반적 오류스택 오버플로우메모리 ..
2025.05.12 -
1. 자바 플랫폼 - 3. 바이트코드의 개념
바이트코드(Bytecode) 기본 이해정의: 가상머신이 이해할 수 있는 중간 레벨의 명령어 집합비유: 여러 나라 사람들이 이해할 수 있는 국제 공용어와 같음작동방식: 소스코드 → 컴파일러 → 바이트코드 → 가상머신 → 기계어핵심 구성요소명령어 세트: 가상머신이 실행할 수 있는 기본 연산들상수 풀: 문자열, 숫자 등의 상수값 저장소메타데이터: 클래스, 메서드, 필드 정보스택 맵 프레임: 실행 시점의 스택 상태 정보존재 이유와 목적플랫폼 독립성 확보실행 효율성 향상보안성 강화 (소스코드 보호)동적 최적화 가능주의사항과 일반적 오류바이트코드 조작 시 검증 오류버전 호환성 문제성능 최적화 미고려메모리 관리 실수비교 분석특성바이트코드네이티브 코드실행속도중간빠름이식성높음낮음크기작음큼디버깅용이어려움플랫폼 의존성낮음높..
2025.05.12 -
1. 자바 플랫폼 - 2. 자바의 컴파일과 실행 과정
기본 이해정의: 자바 소스코드(.java)를 JVM이 실행할 수 있는 바이트코드(.class)로 변환하고 실행하는 과정비유: 외국어 번역과 실행소스코드 = 원어컴파일 = 번역바이트코드 = 중간언어JVM = 각 나라의 통역사작동방식:소스코드 작성 (.java)컴파일러가 바이트코드로 변환 (.class)JVM이 바이트코드를 실행핵심 구성요소자바 컴파일러(javac)소스코드를 바이트코드로 변환문법 검사 수행JVM(Java Virtual Machine)바이트코드를 실행플랫폼 독립성 제공클래스로더필요한 클래스를 메모리에 로드JIT 컴파일러자주 사용되는 코드를 기계어로 변환존재 이유와 목적플랫폼 독립성 확보타입 안정성 보장성능 최적화 가능메모리 관리 자동화주의사항과 일반적 오류컴파일 에러문법 오류타입 불일치런타임 ..
2025.05.12 -
1. 자바 플랫폼 - 1. JDK, JRE, JVM의 차이
기본 이해JDK (Java Development Kit): 자바 개발에 필요한 전체 도구 패키지JRE (Java Runtime Environment): 자바 프로그램 실행 환경JVM (Java Virtual Machine): 자바 바이트코드를 실행하는 가상 머신비유:JDK: 요리사의 전체 주방 도구세트JRE: 음식을 데우고 먹을 수 있는 주방JVM: 실제 요리를 하는 조리기구핵심 구성요소JDK:컴파일러 (javac)디버거 (jdb)문서 생성기 (javadoc)JREJRE:JVM자바 클래스 라이브러리실행 도구JVM:클래스 로더실행 엔진가비지 컬렉터런타임 데이터 영역존재 이유와 목적JDK: 개발자가 자바 애플리케이션을 개발하기 위함JRE: 개발된 자바 프로그램을 실행하기 위함JVM: "Write Once, ..
2025.05.12