Programming Language/Java 14

[Java] Java에서의 Thread와 Thread Pool

목차스레드(Thread)란?단일 / 멀티 스레드 작업 예시스레드 풀(Thread Pool)과 사용 예시정리예제 코드이 글에서는 Java에서의 스레드(Thread)와 스레드 풀(Thread Pool)의 개념을 이해하고, 이를 활용하여 프로그램의 성능을 최적화하는 방법을 알아봅니다.또한, 스레드를 무분별하게 생성 및 사용 시 성능 저하로 이어지며 이를 해결하고자 스레드 풀(Thread Pool)을 사용하여 스레드를 효율적으로 관리하는 방법을 소개합니다.1️⃣ 스레드(Thread)란?스레드는 프로그램 내에서 실행되는 하나의 작업 단위✅ 스레드의 특징CPU의 기본 실행 단위 (프로세스 안에서 개별적으로 실행됨)각 스레드는 독립 실행 (하나의 스레드가 멈춰도 다른 스레드는 계속 실행됨)멀티 스레드를 사용하면 프로..

[Java] effectively final

Java를 사용하다 보면 effectively final라는 개념을 접하게 됩니다. 특히 람다 표현식이나 익명 클래스와 같은 구문을 작성할 때, 이 용어가 중요한 역할을 합니다.이번 글에서는 effectively final에 대해 알아보도록 하겠습니다.1. effectively final이란?effectively final은 Java에서 한 번 초기화된 후로 값이 변경되지 않는 변수를 의미합니다.쉽게 말해, final 키워드가 없어도 사실상 final처럼 동작하는 변수입니다.int number = 10; // 초기화Runnable task = () -> System.out.println(number); // 람다에서 number 사용 가능위 코드에서 number는 한 번 초기화된 이후 변경되지 않았기 때..

[Java] Double.MIN_VALUE는 음수가 아니다.

Java의 Double.MIN_VALUE는 종종 오해를 불러일으키는 상수입니다. 이름만 보면 "가장 작은 값"이라는 의미로 해석되어, 음수를 떠올리기 쉽습니다. 하지만 Double.MIN_VALUE는 음수가 아니며, 오히려 0에 가까운 양수입니다. 이를 이해하기 위해 해당 상수의 의미와 사용하는 맥락을 살펴보겠습니다. 1. Double.MIN_VALUE 란?Double.MIN_VALUE는 Java에서 double 타입이 표현할 수 있는 가장 작은 양의 값을 의미합니다. 이는 IEEE 754 표준에 따라 정의된 부동소수점 방식에서 정규화된 가장 작은 값입니다.public class DoubleExample { public static void main(String[] args) { Sys..

[Java] 문자열 + 연산과 StringBuilder 비교

Java에서 문자열 결합 시 많이 사용하는 + 연산은 직관적이고 간단하지만, 성능 측면에서 적절하지 않은 경우가 있습니다. 이번 글에서는 문자열 결합의 효율적인 방법과 이유에 대해 설명하겠습니다.Java에서의 + 연산Java의 String은 immutable(불변)한 객체입니다. 따라서 String 간의 + 연산은 기존 객체를 수정하지 않고, 새로운 String 객체를 생성하게 됩니다. 이는 다음과 같은 코드에서 성능 문제가 발생할 수 있습니다.// 비효율적인 코드 예시String res = "";for (int i = 0; i  위 코드는 for 문이 실행될 때마다 새로운 String 객체를 생성하여 성능 저하를 유발합니다.  + 연산이 효율적인 경우단일 라인의 +연산에서는 Java 컴파일러가 내부적으..