본문 바로가기

Java

(2)
String vs StringBuffer vs StringBuilder 공부하게 된 계기? ▶ 프로젝트를 진행하면서 문자열을 다루는 다양한 Classe들을 접하였습니다. 각 Class의 차이점과 용도에 대해서 의문이 생겼고, 리서치를 통해 알게 된 내용을 회고하고 기록하고자 합니다. 필요성 ▶ 연산이 적을 때는 위에 나열된 어떤 Class를 사용하더라도 이슈가 발생할 가능성이 거의 없습니다. 하지만 연산 횟수가 많아지거나, Multi thread/Race condition 등의 상황이 자주 발생 한다면 각 Class의 특징을 이해하고 상황에 맞게 사용해야 합니다. 더보기 멀티 스레드(Multi thread): 하나의 프로세스 내에서 둘 이상의 스레드가 동시에 작업을 수행하는 것 레이스 컨디션(Race Condition): 한정된 자원을 동시에 이용하려는 여러 프로세스가 자원..
Java의 메모리 영역 JVM 실행 시, OS가 JVM에게 필요한 메모리(Runtime Data Area)영역 할당 ▶JVM(Java Virtual Machine)은 자바 애플리케이션을 클래스 로더를 통해 읽어 들여 자바 API와 함께 실행한다. 메모리 관리, Garbage Collection을 수행하며, 스택 기반의 가상 머신이다. 더보기 ⚠️ Runtime Data Area 영역 Class Area = Method Area = Static Area Stack Area Heap Area Native Method Stack Area PC Register ⚠️ 자바 프로그램 실행 과정 프로그램이 실행되면 JVM은 OS로부터 이 프로그램이 필요로 하는 메모리를 할당 받는다. ⇒ JVM은 이 메모리를 용도에 따라 여러 영역으로 나누..