본문 바로가기

java3

Thread(2) - 스레드의 상태 스레드의 상태는 다음과 같다. NEWRUNNABLEBLOCKEDWAITINGTIMED_WAITINGTERMINATED각각의 상태에 대해서 예시코드를 살펴보며 이해해보자. Newpublic class Example { public static void main(String[] args) { Thread thread = new Thread(new ExampleTask()); System.out.println(thread.getState()); thread.start(); System.out.println(thread.getState()); } static class ExampleTask implements Runnable { @O.. 2025. 1. 15.
Thread(1) - java의 메모리 구조, 프로세스의 메모리 구조 자바의 메모리 구조스레드와 프로세스를 배우기 앞서 자바의 메모리 구조를 살펴보자. 크게 3가지의 영역으로 나눌 수 있고, 각각의 영역에 대해 설명과 예시 코드를 들어보려고 한다. 메서드 영역: class 정보, static 변수가 저장된다.Stack 영역: 지역 변수, 매개변수, 객체의 참조값이 저장된다.Heap 영역: 객체, 배열, 인스턴스 변수(필드값)가 저장된다. GC의 대상이다. 공부를 해본 사람들은 알겠지만, 모르는 사람들도 있을 수 있기에 코드와 그림을 통해 조금 더 자세하게 설명하고자 한다.public class Data { private int value; public Data(int value) { this.value = value; } .. 2025. 1. 14.
Java 컬렉션 정리 for 코딩테스트 - Queue 글쓰기에 앞서 해당 포스팅은 기본적인 Queue의 작동 원리에 대해 아주 짧게만 다룬다. Queue, Stack 과 같은 개념은 알고 있다는 가정하에 포스팅을 진행한다.1. Queue란?FIFO (First In First Out) 의 구조를 가진 자료구조.  선입선출을 생각하자. 그림을 통해 쉽게 이해해보자.배열 안에 값이 저장되는 모습이다.  위의 상태에서 1을 삭제하고, 추가로 5,6을 삽입하면 어떻게 될까?아래와 같은 모습이 된다. 마찬가지로 2, 3, 4 를 지우고, 7, 8, 9 를 삽입한다면 해당 배열의 앞 부분의 메모리가 낭비가 된다. 이는 Queue의 명확한 한계점이다. 자바에서는 해당 문제를 개선한 ArrayDeque, LinkedList를 구현체로 사용한다.[ Queue의 구조 ] 이.. 2024. 12. 25.