Java

· Java
왜 자바에서 GC를 직접 호출하면 안되는지 알아보도록 하자.GC란?자바(Java)는 개발자가 메모리 관리에 신경 쓰지 않아도 되는 편리한 언어입니다. 이 "자동 메모리 관리"의 핵심에는 바로 가비지 컬렉션(Garbage Collection, GC)이 있습니다. GC는 프로그램이 더 이상 사용하지 않는 객체를 자동으로 찾아 제거하여 메모리 공간을 확보해 주는 자바의 핵심 기능입니다. JAVA 힙(Heap) 메모리 구조GC를 이해하기 위해서는 자바 힙(Heap) 메모리 구조를 먼저 알아야 합니다. 힙 영역은 크게 다음 두 영역으로 나뉩니다.Young Generation (영역): 새롭게 생성된 대부분의 객체가 이 영역에 할당됩니다. 이 영역은 수명이 짧은 객체들이 주로 존재하여 GC가 빈번하게 일어납니다...
· Java
🔥 공정성(Fairness)이란?공정한 잠금(Fair Lock)이란 오래 기다린 스레드가 먼저 락을 획득할 수 있도록 보장하는 방식을 의미즉, FIFO(First In, First Out) 방식으로 락을 관리✅ ReentrantLock에서 공정성 모드 설정Java의 ReentrantLock은 공정성(Fair) 모드를 지원하며, 생성자에서 설정할 수 있어.// 공정한 락 (FIFO 방식)ReentrantLock lock = new ReentrantLock(true);// 비공정한 락 (기본값)ReentrantLock lock = new ReentrantLock(false);true → 공정한 락 (Fair Lock)false → 비공정한 락 (Unfair Lock, 기본값) ✅ 공정한 락(Fair Loc..
· Java
소프트웨어 개발에서 "동시성(Concurrency)"과 "병렬성(Parallelism)"은 자주 혼용되지만, 개념적으로는 확실한 차이가 있습니다.이 글에서는 두 개념을 자세히 설명하고, 각각의 특징과 활용 사례, 그리고 구현 방식에 대해 다뤄보겠습니다.1. 동시성(Concurrency)과 병렬성(Parallelism)의 개념 개념설명예시동시성(Concurrency)하나의 프로세서(또는 CPU)가 여러 작업(Task)을 빠르게 번갈아가며 실행하여 동시에 실행되는 것처럼 보이게 하는 방식싱글 코어 CPU에서 멀티태스킹(ex. 웹 브라우저에서 여러 탭을 빠르게 전환하며 사용)병렬성(Parallelism)여러 개의 프로세서(또는 CPU)가 여러 작업을 실제로 동시에 실행하는 방식멀티코어 CPU에서 비디오 렌더링..
· Java
DP(다이나믹 프로그래밍) 다이나믹 프로그래밍(Dynamic Programming)은 최적화 문제를 해결하는 데 사용되는 알고리즘 디자인 기법 중 하나입니다. 이 기법은 주어진 문제를 작은 하위 문제로 나누어 해결하고, 그 결과를 저장해 나중에 동일한 하위 문제가 발생할 때 다시 계산하지 않고 저장된 값을 사용함으로써 중복 계산을 피하는 방법입니다. 다이나믹 프로그래밍은 주로 최적 부분 구조(Optimal Substructure)와 중복 부분 문제(Overlapping Subproblems)라는 두 가지 조건이 만족될 때 사용됩니다. 최적 부분 구조는 큰 문제의 최적해가 작은 문제의 최적해로 구성되는 성질을 나타내며, 중복 부분 문제는 작은 문제들 간에 중복된 계산이 발생하는 성질을 나타냅니다. 장점: ..
Denes
'Java' 카테고리의 글 목록