반응형 공부용/JAVA3 JVM (Java Virtual Machine) JVM (Java Virtual Machine) 1. JVM 이란 무엇인가? JVM(Java Virtual Machine) 이란 자바가상머신으로, 자바기반으로 만들어진 프로그램이 Window, Linux등 어느 운영체제에서도 실행될 수 있도록 해주는 프로그램이다. 2. JVM의 구조 & 실행과정 프로그램 실행 시 OS로부터 필요한 메모리를 할당받은 후, 해당 메모리를 각 영역별 나누어 관리한다. Java Compiler는 .Java 확장자로 된 자바 소스 파일을 .Class 형식으로 컴파일 한다. 바이트 코드로 변환 된 파일을 Class Loader를 통해 Runtime Data Areas영역으로 로딩한다. 로딩된 Class파일은 Excution Engine을 통해 해석된다. 해석된 바이트코드는 Runt.. 2022. 11. 19. Garbage Collection (GC) Garbage Collection (GC) 첫 회사에 입사 후, 자바 개발을 3년정도 했지만 돌이켜보니 그냥 생각없이 기존 코드따라 개발을 해왔을 뿐, 실제 어떻게 동작을 하고 더 좋은 성능을 내기 위해선 어떻게 해야하는지 모르고 일을 해왔다. 이번에 이직준비를 하면서 조금이나마 공부하고 정리를 해놓기 위해 이 문서를 작성한다. GC란 ? GC란 Garbage Collection 의 약어로 자바의 메모리 관리를 위해 할당 된 메모리를 자동으로 해제 해주는 역할을 한다. 때문에 자바에서는 프로그램 코드에서 메모리를 명시적으로 지정하여 해제하지 않는다. stop-the-world stop-the-world란, GC를 실행하기 위해서 JVM이 어플리케이션의 실행을 멈추는 것이다. stop-the-world가 .. 2022. 11. 19. JAVA - 문자열 클래스 문자열 클래스 분류 String StringBuffer StringBuilder 변경 immutable mutable mutable 동기화 Synchronized 가능(Thread-safe) Synchronized 불가능 1. String 클래스 new 연산으로 통해 생성된 메모리의 공간은 변하지 않음! (immutable) GC로 제거되어야 함 문자열 연산 시 새로 객체를 만드는 Overhead 발생 객체가 불변하므로, MultiThread에서 동기화를 신경 쓸 필요가 없음! (조회 연산에 매우 큰 강점) String 클래스는 연산이 적고, 조회가 많은 MultiThread 환경에서 좋음 2. StringBuffer 클래스 문자열 연산 시 새로 객체를 만들지 않고, 크기를 변경시킴 Thread Safe.. 2022. 11. 19. 이전 1 다음 반응형