본문 바로가기

Java 오류 & 개발/Java 기본 문법 & 오류

(15)
[Java] 멀티스레드(Thread) 기초와 동기화(Synchronization) [Java] 멀티스레드(Thread) 기초와 동기화(Synchronization)1. 멀티스레드란?Java에서는 하나의 프로그램 안에서여러 작업을 동시에 처리할 수 있도록 Thread를 지원합니다.멀티스레드는 CPU 자원을 효율적으로 사용하게 하며,UI 응답성 향상이나 병렬 작업 처리에 적합합니다.2. Thread 생성 방법✔ 방법 1: Thread 클래스 상속class MyThread extends Thread { public void run() { System.out.println("Thread 실행 중"); }}public class Main { public static void main(String[] args) { MyThread t1 = new MyTh..
[Java] Java try-with-resources 문법과 자원 자동 해제 [Java] Java try-with-resources 문법과 자원 자동 해제1. try-with-resources란?try-with-resources는 Java 7부터 도입된 기능으로,파일, 네트워크, 데이터베이스 연결 등 자원을 사용한 후 자동으로 해제하는 기능을 제공합니다.기존에는 finally 블록을 사용해야 했지만,이 문법을 활용하면 코드가 간결해지고 예외 처리도 더욱 안정적이 됩니다.2. 기존의 try-finally 방식 (비효율적 방식)기존에는 자원을 사용한 후 반드시 finally 블록에서 close()를 호출해야 했습니다.import java.io.*;public class TryFinallyExample { public static void main(String[] args) { ..
[Java 기본 문법 & 오류] Java 인터페이스(Interface)와 추상 클래스(Abstract Class) 비교 [Java] Java 인터페이스(Interface)와 추상 클래스(Abstract Class) 비교1. 인터페이스(Interface)와 추상 클래스(Abstract Class)란?Java에서 인터페이스(Interface)와추상 클래스(Abstract Class) 는 객체 지향 프로그래밍에서코드의 구조를 설계 할 때 사용됩니다.두 개념 모두 상속(Inheritance) 을 활용하지만,**사용 목적과 방식이 다릅니다.**2. 인터페이스(Interface)란?인터페이스는 **추상 메서드**(구현되지 않은 메서드)만을 포함하며,**다중 상속이 가능**한 특징을 가집니다.이를 통해 **클래스 간 결합도를 낮추고 유연한 코드 설계**가 가능합니다.🔹 **인터페이스 기본 예제**interface Animal { ..
[Java] Java의 메모리 관리: Stack vs Heap 개념과 차이점 [Java] Java의 메모리 관리: Stack vs Heap 개념과 차이점1. Java의 메모리 구조Java 프로그램이 실행될 때, JVM(Java Virtual Machine)은Stack과 Heap이라는 두 가지 주요 메모리 영역을 사용하여 데이터를 관리합니다.각 메모리 영역은 서로 다른 역할을 수행하며, 효율적인 메모리 사용을 위해 각각의 특성을 이해하는 것이 중요합니다.2. Stack과 Heap의 차이점항목StackHeap저장하는 데이터메서드 호출 시 생성되는 지역 변수(Primitive Type) 및 참조 변수객체 및 배열 (new 키워드로 생성된 데이터)메모리 할당 방식LIFO (Last In First Out) 구조동적 할당 (Garbage Collector가 관리)생명주기메서드 실행이 끝나..
[Java 기본 문법 & 오류] Java ArrayList와 LinkedList 차이 및 활용법 [Java] ArrayList와 LinkedList 차이 및 활용법1. ArrayList와 LinkedList란?Java에서 ArrayList와 LinkedList는 대표적인 리스트(List) 자료구조입니다.두 컬렉션 클래스는 서로 다른 방식으로 데이터를 저장하며, 특정 연산에서 성능 차이가 발생합니다.2. ArrayList와 LinkedList 기본 사용법먼저 두 리스트를 생성하는 기본 코드입니다.import java.util.ArrayList;import java.util.LinkedList;import java.util.List;public class ListExample { public static void main(String[] args) { List arrayList = n..
[Java 기본 문법 & 오류] Java Optional 사용법 및 활용 사례 [Java] Optional 사용법 및 활용 사례1. Optional이란?Java 8에서 도입된 Optional은 null 값으로 인해 발생하는 NullPointerException을 방지하기 위해 사용되는 래퍼 클래스입니다. 기존에는 변수가 null인지 직접 체크해야 했지만, Optional을 사용하면 더 안전하게 코드 작성을 할 수 있습니다.2. Optional 생성 방법Optional 객체는 여러 가지 방법으로 생성할 수 있습니다.Optional.of(value) - null이 아닌 값을 Optional로 감쌉니다. (null일 경우 예외 발생)Optional.ofNullable(value) - 값이 null일 수도 있는 경우 사용합니다.Optional.empty() - 빈 Optional 객체를 ..
[Java] String, StringBuilder, StringBuffer 차이점과 성능 비교 1. String, StringBuilder, StringBuffer란?Java에서 문자열을 다룰 때, 가장 많이 사용하는 클래스는 String, StringBuilder, StringBuffer입니다.이 세 가지 클래스는 문자열을 처리하는 기능을 제공하지만, 동작 방식과 성능 면에서 차이가 있습니다.✅ 각 클래스의 특징클래스특징멀티쓰레드 지원성능String불변(Immutable) 객체, 값이 변하면 새로운 객체 생성지원 안함속도가 느림 (새로운 객체 생성 비용 발생)StringBuilder가변(Mutable) 객체, 문자열 변경 가능지원 안함빠름 (객체 재사용 가능)StringBuffer가변(Mutable) 객체, Thread-Safe (동기화 지원)지원함StringBuilder보다 느림 (동기화 비용..
[Java] Optional 클래스 활용법 및 NullPointerException 방지하기 1. Optional 클래스란?Optional은 Java 8에서 도입된 클래스이며, NullPointerException(NPE) 발생을 방지하기 위해 사용된다.기본적으로 Optional은 값이 있을 수도 있고 없을 수도 있는 컨테이너 역할을 한다.✅ NullPointerException이란?NullPointerException(NPE)은 Java에서 가장 흔한 런타임 오류 중 하나이다.null 값을 참조하는 객체의 메서드를 호출할 경우 발생한다.String name = null;int length = name.length(); // NullPointerException 발생위와 같은 코드에서 name이 null이므로 length()를 호출할 수 없어 NPE가 발생한다.2. Optional 클래스 생성..
[Java 기본 문법 & 오류] CheckedException vs UncheckedException 차이점 및 활용법 CheckedException vs UncheckedException 차이점 및 활용법1. 예외(Exception)란? Java에서 예외(Exception)는 프로그램 실행 중에 발생할 수 있는 **비정상적인 상황**을 의미합니다. 예외 처리를 올바르게 하지 않으면 프로그램이 갑자기 종료될 수 있기 때문에, 예외를 적절히 처리하는 것이 중요합니다.2. CheckedException vs UncheckedException 차이 구분 CheckedException UncheckedException 정의 컴파일 타임에 체크되는 예외 실행 중(Runtime) 발생하는 예외 ..
[Java] Checked Exception vs Unchecked Exception 차이점 ✅ [Java] Checked Exception vs Unchecked Exception 차이점1️⃣ 예외(Exception)란?Java에서 예외(Exception) 는 프로그램 실행 중 예상치 못한 상황이 발생할 때 이를 처리하는 메커니즘입니다.예외는 크게 두 가지로 나뉩니다.Checked Exception: 컴파일 시점에 반드시 예외 처리를 해야 하는 예외Unchecked Exception: 런타임(Runtime)에 발생하며, 예외 처리가 강제되지 않는 예외2️⃣ Checked Exception (검사 예외)✔ 컴파일 타임에 체크됨 (Compile-time Exception)✔ 예외 처리가 필수적 (try-catch 또는 throws 사용)✔ 파일 I/O, 네트워크 통신, DB 연결과 같은 외부 자원..