일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스트림
- mysql
- list
- JPA
- 토비의 스프링
- Stream
- SpringBoot
- MSA
- 보조스트림
- thread
- 토비의 스프링 정리
- 스프링
- Real MySQL
- jvm
- K8s
- 자바 ORM 표준 JPA 프로그래밍
- Stack
- Java
- Collection
- Kotlin
- GC
- 쿠버네티스
- OS
- 자바
- 이스티오
- spring
- 백준
- redis
- gradle
- IntellJ
- Today
- Total
목록Java (35)
인생을 코딩하다.
1. 프로세스 메모리 애플리케이션이 메모리에 로드되어 실행될 때, 이것을 운영체제 프로세스(process)라고 부른다. 프로세스가 차지하는 메모리는 몇 개의 세그먼트로 나뉘어진다. 1) Stack Segment 메소드가 호출되면, Stack Segment 영역에 그 메소드 공간이 할당된다. 이 공간에 그 메소드의 파라미터 변수, 지역 변수가 생성된다. 메소드가 리턴될 때, 이 메모리 공간도 제거된다. 재귀 호출이 무한 루프에 빠지면, Stack Segment 영역이 부족해져서 Stack Overflow Error가 발생한다. Stack Overflow Error의 원인은 대부분 재귀 호출이 무한 루프에 빠진 것이다. 2) Data Segment Data Segment 영역에 생성되는 변수는 다음과 같다...
객체를 가비지컬렉션의 대상으로 만드는 법 1. 메소드 내부에서 생성된 객체 메소드가 호출된 후 내부에 일부 객체가 만들어지고 메소드가 종료됬을 때, 메소드 내부의 객체들은 익명이 되어 가비지 컬렉션의 대상이 됩니다. 2. 참조 변수 재 지정 한 객체의 참조가 다른 객체를 참조할 경우. 이전 객체는 더 이상 참조를 갖지 못해 가비지 컬렉션의 대상이 됩니다. 2. 참조변수 무효화 객체의 참조 변수가 null로 변경된 경우 2. 이름이 없는 객체 이름이 없는 객체의 참조, 어느곳에도 저장되지 않기 떄문에.
GC에 관해 공부한 걸...기록하기! 자바에서는 JVM이 구성되어진 JRE가 제공되며 JVM에 구성되어 있는 가비지컬렉션이 자동으로 사용하지 않는 객체를 파괴시켜 준다. 보통 파괴하는 과정은 힙(heap)내의 객체 중 Garbage를 찾아낸 후 Garbage 객체를 반환하여 메모리를 회수한다. 또 다르게 말하자면, 마킹작업 (사용중인 메모리와 사용 하지 않는 메모리를 식별) 일반 삭제 (참조되지 않는 객체를 제거하고 빈 공간에 대한 포인터를 남겨둠 ) + 압축삭제 (삭제 된 객체와 객체 외 나머지 객체를 메모리 공간으로 효율적으로 사용하며 삭제) 그리고 JVM에 가비지 컬렉션은 객체를을 세대로 나누어 처리한다. 젊은 세대 - 새로운 객체들을 할당, 가득차면 가비지 컬렉션을 매우 빠른속도로 진행, 가벼운 ..