일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 백준
- 운영체제
- 스프링
- test
- 리플렉션
- proxy
- Junit5
- 약수
- java
- Python
- 다이나믹 프록시
- 알고리즘
- Reflection
- Deadlock
- 최소 신장 트리
- 스프링 시큐리티
- OS
- CS
- spring security
- Spring
- MST
- 문자열
- BOJ
- 자바
- redis
- 프록시
- 파이썬
- 모던자바
- 모던 자바 인 액션
- 객체지향
- Today
- Total
목록Java&Spring (35)
Dev 달팽이 @_''

Java - 클래스 로더 클래스 로더 로딩, 링크, 초기화 순으로 진행 로딩 클래스 로더가 .class 파일을 읽고 그 내용에 따라 적절한 바이너리 데이터를 만들고 "메소드" 영역에 저장. 이 때 메소드 영역에 저장하는 데이터 FQCN(Fully Qualified Class Name) 클래스 | 인터페이스 | 이늄 메소드와 변수 로딩이 끝나면 해당 클래스 타입의 Class 객체를 생성하여 "힙" 영역에 저장 링크 Verify, Prepare, Resolve(optional) 세 단계로 나뉘어져 있다. Verify : .class 파일 형식이 유효한지 체크 Preparation : 클래스 변수(static 변수)와 기본값에 필요한 메모리 Resolve : 심볼릭 메모리 레퍼런스를 메소드 영역에 있는 실제 ..

Java - JVM 구조 클래스 로더 시스템 .class 에서 바이트코드를 읽고 메모리에 저장 로딩 : 클래스 읽어오는 과정 링크 : 레퍼런스를 연결하는 과정 초기화 : static 값들 초기화 및 변수에 할당 메모리 메소드 영역에는 클래스 수준의 정보(클래스 이름, 부모 클래스 이름, 메소드, 변수) 저장 힙 영역에는 객체를 저장 메소드 영역과 힙 영역은 공유 자원이다. 스택 영역에서는 쓰레드 마다 런타임 스택을 만들고, 그 안에 메소드 호출을 스택 프레임이라 부르는 블럭으로 쌓는다. 쓰레드를 종료하면 런타임 스택도 사라진다. PC(Program Counter) 레지스터 : 쓰레드마다 쓰레드 내 현재 실행할 instruction의 위치를 가리키는 포인터가 생성된다. 네이티브 메소드 스택 : 네이티브 메..

JAVA - JVM, JDK, JRE JVM (Java Virtual Machine) 자바 가상 머신으로 자바 바이트 코드(.class 파일)를 OS에 특화된 코드로 변환(인터프리터와 JIT 컴파일러)하여 실행한다. 바이트 코드를 실행하는 표준(JVM 자체는 표준)이자 구현체(특정 밴더가 구현한 JVM)다. JVM 밴더 : 오라클, 아마존, Azul 특정 플랫폼에 종속적 (네이티브 코드로 바꿔야 하는데 네이티브 코드가 OS에 맞춰서 실행해야 하기 때문에) JRE (Java Runtime Environment) 자바 애플케이션을 실행할 수 있도록 구성된 배포판 JVM과 핵심 라이브러리 및 자바 런타임 환경에서 사용하는 프로퍼티 세팅이나 리소스 파일을 가지고 있다. (JVM+라이브러리) 개발 관련 도구는 포..