본문 바로가기

반응형

JAVA

(13)
Byte Code 바이트코드 class 파일(바이트 코드) 읽기 명령어 javap -c X xxx.class 바이트코드 조작 코드 커버리지는 어떻게 측정할까? 코드 커버리지? 테스트 코드가 확인한 소스 코드를 % JaCoCo를 써보자. https://www.eclemma.org/jacoco/trunk/doc/index.html http://www.semdesigns.com/Company/Publications/TestCoverage.pdf pom.xml에 플러그인 추가 org.jacoco jacoco-maven-plugin 0.8.4 prepare-agent report prepare-package report 메이븐 빌드 mvn clean verify Green – Code is tested or covered. Red..
Class Loader 클래스 로더 계층형 ( 부모, 부모의 부모가 있음 ) 동작 원리 : 제일 부모에게 읽어오도록, 못 읽으면, 그 다음 부모, 그 다음 부모, ... 본인이 읽어 오도록! 만약, 본인도 못 읽으면 ClassNotFoundExeption 발생.. org.springframework.boot.devtools.restart.classloader.RestartClassLoader@3c5c4354 sun.misc.Launcher$AppClassLoader@764c12b6 sun.misc.Launcher$ExtClassLoader@4462e14c null // native code로 구현되어 있는 class loader...(부트스트랩 클래스로더) 로딩, 링크, 초기화 순으로 진행된다. 로딩 클래스 로더가 .class..
JVM JVM 구조 클래스 로더 시스템 .class 에서 바이트코드를 읽고 메모리에 저장 로딩: 클래스파일에서 바이트 코드를 읽어오는 과정 링크: 레퍼런스를 연결하는 과정 초기화: static 값들 초기화 및 변수에 할당 메모리 메모스 영역에는 클래스 수준의 정보 (패키지 정보, 클래스 이름, 부모 클래스 이름, 메소드, 변수) 저장. 공유 자원이다. 힙 영역에는 객체를 저장. 공유 자원이다. PC(Program Counter) 레지스터: 쓰레드 마다 쓰레드 내 현재 실행할 스택 프레임을 가리키는 포인터가 생성된다. 네이티브 메소드 스택 https://javapapers.com/core-java/java-jvm-run-time-data-areas/#Program_Counter_PC_Register JVM Sta..
JAVA, JVM, JDK, JRE JAVA "Write once, run everywhere" JAVA Program 실행 과정 program이 실행되면 JVM은 OS로 부터 프로그램이 필요로 하는 메모리를 할당 받는다. 자바 바이트 코드(.class 파일)를 OS에 특화된 코드( 네이티브 머신 코드 )로 변환( 인터프리터와 JIT ( just in time)컴파일러에 의해 ) 클래스 로더를 통해 JVM으로 클래스 파일들을 로딩하여 실행한다. 로딩된 클래스 파일들은 execution engine을 통해 해석됨 해석된 바이트 코드는 Runtime data areas에 배치되어 실질적인 수행이 이루어지게 된다. 이러한 과정 속에서 JVM은 필요에 따라 Thread Synchronization과 GC를 수행 JVM (Java Virtual M..
G1 GC Java 9 이상 버전 기본 GC인 G1 GC https://b.luavis.kr/server/g1-gc

반응형