2025/06 41

자바 입출력 API 정리

✅ 자바 입출력 API 정리자바에서는 콘솔, 파일 등을 통해 데이터를 입력받거나 출력할 수 있도록 다양한 API를 제공합니다. 여기서는 콘솔 입력에 사용되는 System.in, 출력에 사용되는 System.out, 그리고 보다 편리한 입력을 위한 Scanner, 파일 정보를 다루는 File 클래스에 대해 정리합니다.🔹 System.in – 콘솔 입력 스트림System.in은 자바에서 키보드 입력을 받기 위한 기본 스트림입니다. InputStream 타입으로, 바이트 단위 입력을 처리합니다.기본 개념항목 설명정체System 클래스의 정적 필드타입InputStream역할키보드로부터 입력을 받음특징1바이트 단위 처리, 문자 입력은 불편사용 예시 (직접 사용)int input = System.in.read()..

자바 2025.06.07

Java 보조 스트림(Filter Stream) 정리

📘 Java 보조 스트림(Filter Stream) 정리자바에서 데이터를 입출력할 때, 기본 스트림만으로는 부족할 수 있습니다. 이럴 때 기본 스트림에 다양한 기능을 덧붙이는 보조 스트림을 활용하면 성능 향상이나 데이터 처리 편의성이 크게 향상됩니다.✅ 보조 스트림이란?혼자 입출력 못 함 → 반드시 기본 스트림과 연결해야 작동역할: 버퍼링, 데이터 형식 처리, 문자 인코딩, 객체 입출력 등 추가 기능 제공구분 설명기본 스트림파일, 키보드, 네트워크 등과 직접 연결되는 스트림보조 스트림기본 스트림에 기능을 추가하는 스트림 (단독 사용 불가)✅ 보조 스트림 분류 및 기능 요약종류 주요 클래스 기능 요약성능 향상BufferedInputStream, BufferedOutputStreamBufferedReade..

자바 2025.06.07

자바 입출력 스트림(IO Stream) 완벽 정리

💾 자바 입출력 스트림(IO Stream) 완벽 정리자바에서는 외부에서 데이터를 입력받거나, 데이터를 외부로 내보낼 때 **스트림(Stream)**이라는 개념을 사용합니다. 예를 들어, 키보드 입력, 파일 읽기, 네트워크 통신 등 다양한 상황에서 스트림이 쓰입니다.🔁 스트림(Stream)이란?스트림이란 "데이터가 흐르는 통로"를 의미하며, 한 방향으로 연속적인 흐름처럼 동작합니다.입출력의 방향에 따라 **입력 스트림(InputStream/Reader)**과 **출력 스트림(OutputStream/Writer)**으로 나뉩니다.📥 입력 스트림: 외부 → 프로그램📤 출력 스트림: 프로그램 → 외부🧩 스트림 분류 기준분류 기준 종류 설명데이터 단위바이트 스트림1바이트 단위 (영상, 이미지 등 이진 데..

자바 2025.06.07

LIFO vs FIFO 자료구조

🔹 LIFO vs FIFO 자료구조 개요자바 컬렉션 프레임워크는 대표적인 두 가지 자료 구조를 지원합니다:LIFO (Last-In, First-Out, 후입선출): 나중에 들어온 데이터가 먼저 처리됨FIFO (First-In, First-Out, 선입선출): 먼저 들어온 데이터가 먼저 처리됨자바에서는 Stack 클래스가 LIFO 구조를, Queue 인터페이스가 FIFO 구조를 각각 담당합니다.✅ Stack (후입선출)📌 Stack 이란?Stack은 나중에 넣은 데이터가 가장 먼저 나오는 구조로, 뒤로 가기 기능이나 실행 취소, 재귀 호출 관리 등에 사용됩니다.🧩 주요 기능메서드 설명push(item)데이터를 스택에 추가pop()가장 위의 데이터를 꺼내면서 제거peek()가장 위의 데이터를 확인만 (..

자바 2025.06.07

자바 컬렉션 프레임워크 정리

📦 자바 컬렉션 프레임워크 정리 🔸 컬렉션 프레임워크란?자바에서는 객체들을 효율적으로 관리하기 위해 **컬렉션(Collection)**이라는 자료 구조를 제공합니다. 배열로도 객체를 담을 수 있지만, 배열은 크기가 고정되어 있고 삽입/삭제 시 직접 인덱스를 다뤄야 하는 불편함이 있습니다. 이를 보완하기 위해 자바는 다양한 자료 구조를 구현한 컬렉션 클래스들을 제공하며, 이 전체 구조를 컬렉션 프레임워크라고 부릅니다.컬렉션(Collection): 데이터를 담는 그릇프레임워크(Framework): 일관된 사용 규칙과 구조를 갖춘 라이브러리자바의 컬렉션 프레임워크는 java.util 패키지에 포함되어 있으며, 대표적인 인터페이스로는 다음이 있습니다:List: 순서 있는 데이터 저장, 중복 허용Set: 순서..

자바 2025.06.07

자바 스레드 제어 완전 정복

💡 자바 스레드 제어 완전 정복멀티스레드 프로그래밍은 자바에서 필수적인 기술입니다. 특히 스레드의 상태 변화와 이를 제어하는 방법을 이해하면 안정적인 병렬 처리가 가능합니다. 이 글에서는 스레드의 상태 변화 흐름부터 안전한 종료 방법, 데몬 스레드까지 한 번에 정리해 드립니다.🔄 스레드의 상태란?자바에서 스레드는 실행 중에 여러 가지 상태로 전환됩니다. 다음 표는 대표적인 상태와 의미입니다:상태 설명NEWnew Thread()로 생성된 초기 상태RUNNABLEstart() 호출 후, 실행 준비가 된 상태RUNNING실제로 run() 메소드가 실행되는 상태WAITING / TIMED_WAITING일시 정지 상태 (예: sleep, join, wait)BLOCKED동기화(lock)를 획득하지 못하고 대기..

자바 2025.06.06

자바 멀티 스레드 개념 정리

💡 자바 멀티 스레드 개념 정리✅ 프로세스 vs 스레드 개념 이해프로세스: 실행 중인 하나의 프로그램 단위로, 운영체제가 메모리를 따로 할당해 관리합니다.스레드: 프로세스 내에서 실제 작업을 수행하는 실행 흐름. 하나의 프로세스는 여러 개의 스레드를 가질 수 있습니다.📝 예: 메모장을 두 개 실행하면 두 개의 프로세스가 생기고, 각 프로세스 내부에는 메인 스레드가 있습니다.✅ 멀티 스레드란?하나의 프로세스 내에서 **여러 작업 흐름(스레드)**을 동시에 수행하는 구조입니다.음악을 들으며 채팅하거나, 대용량 데이터를 동시에 처리하는 기능은 모두 멀티스레드 덕분입니다.🔹 멀티 스레드 특징항목 설명실행 방식한 프로세스 내에서 여러 작업을 동시에 실행자원 공유동일한 메모리 공간을 공유하므로 협업이 빠르지만..

자바 2025.06.06

Java 날짜/시간 클래스 완전 정복 (Date, Calendar, LocalDateTime, OffsetDateTime, ZonedDateTime)

📦 Java 날짜/시간 클래스 완전 정복 (Date, Calendar, LocalDateTime, OffsetDateTime, ZonedDateTime)Java에서 날짜와 시간을 다루는 클래스들은 java.util, java.time 패키지에 걸쳐 다양하게 존재합니다. 오래된 클래스부터 최신 클래스까지 개념과 사용법을 정리해두면 프로젝트에서도 헷갈리지 않게 사용할 수 있습니다.🔹 java.util 패키지: Date & Calendar🕓 Date 클래스란?Date는 Java에서 날짜와 시간을 다루기 위한 가장 초기의 클래스입니다. 객체 내부에는 특정 시점을 기준으로 한 연도, 월, 일, 시, 분, 초 등의 정보가 들어갑니다.📌 데이터베이스 연동 시 날짜를 전달하거나 받아올 때 여전히 많이 쓰입니다...

자바 2025.06.06

java.lang 패키지 완전 정리

📦 java.lang 패키지 완전 정리 (티스토리용 콘텐츠)✅ java.lang 패키지란?java.lang은 자바에서 가장 기본이 되는 클래스들이 모여 있는 패키지로, 별도로 import하지 않아도 자동으로 사용할 수 있습니다.우리가 평소에 자주 쓰는 String, System, Object 클래스 등이 이 패키지에 포함되어 있어요.✅ 주요 클래스 정리클래스 역할Object자바의 모든 클래스의 최상위 부모. 기본 기능 제공 (equals(), hashCode() 등)String문자열을 다루는 클래스 (불변 객체)StringBuilder문자열을 동기화 없이 빠르게 변경StringBufferStringBuilder와 유사하지만, 스레드 안전Math수학 함수 제공 (제곱, 절댓값, 랜덤 등)Integer, ..

자바 2025.06.06

자바 예외 처리 완전 정리 (try-catch, throws, 다중 catch 등)

✅ 자바 예외 처리 완전 정리 (try-catch, throws, 다중 catch 등)📌 예외(Exception)란?프로그램 실행 도중 예상치 못한 상황이나 오류가 발생하면 프로그램이 갑자기 종료될 수 있습니다. 이러한 상황을 "예외"라고 하며, 자바에서는 예외가 발생해도 프로그램이 중단되지 않도록 예외 처리 코드를 작성할 수 있습니다.1. 예외 처리란?예외가 발생했을 때 프로그램의 비정상 종료를 방지하고, 안정적으로 실행을 이어가도록 도와주는 것이 예외 처리입니다.일반 예외(Checked Exception): 컴파일 시점에 예외 처리를 강제함실행 예외(Unchecked Exception): 컴파일러가 체크하지 않음, 개발자가 직접 대비 필요2. try-catch-finally 블록자바에서는 예외 처리..

자바 2025.06.06