자바8 static 변수
493
작성한 질문수 24
안녕하세요 백기선님! static변수에 관한 질문이 있습니다
static 변수는 컴파일 시점에 메모리에 안착되어 프로그램이 종료될때 까지 살아있다. 그러므로 static 변수가 점유하고 있는 메모리는 가비지컬렉터에 의해 회수되지 않는다. 로 알고 있습니다.
https://openjdk.java.net/jeps/122
아래는 해당링크의 일부 내용을 발췌한 것입니다.
Class metadata, interned Strings and class static variables will be moved from the permanent generation to either the Java heap or native memory. The code for the permanent generation in the Hotspot JVM will be removed. Application startup and footprint will not regress more than 1% as measured by a yet-to-be-chosen set of benchmarks.
1. java8 부터는 static 변수/함수를 남발한다는 이유만으로 메모리 부족 문제가 생길 가능성이 희박해 진걸가요? 'static 변수를 남발해도 시스템에 크게 지장이없다?'
2. heap 영역으로 옮겼다면 GC의 관리영역으로 들어와서 mark & swap 인 가능해 진 건가요?
개발자 꿈나무입니다 ! 답변의 수준이 낮더라도 이해 부탁드리겠습니다 ㅠㅠ!
답변 1
0
The proposed implementation will allocate class meta-data in native memory and move interned Strings and class statics to the Java heap.
1. 이런 정보도 있네요. class static을 쓴다면 여전히 힙 영역을 많이 쓸테니 문제가 생길 여지가 있는거죠.
2. 네, 여전히 힙 영역에 남아있는 것들은 GC의 대상이 되는 것이고 해당 GC가 마크 & 스왑 알고리듬을 사용하는 GC라면 그렇게 되겠죠.
CompletableFuture의 get 실행에 대해 궁금한 점이 있습니다
0
232
2
기본 인터페이스의 기본 제공 메서드 관련 질문 (왜 이걸 사용하는지)
0
516
2
static 과 metaspace 관련 질문있습니다.
0
708
0
Map의 가장 큰 특징이 key는 null이 아니다
0
2380
2
Optional 질문드립니다.
0
472
0
인텔리제이 콘솔창
0
580
0
Supplier를 쓰는 이유
0
1359
1
allOf()에서 컬렉션으로 반환하는 것을 설명할 때 코드
0
709
1
[참고] LTS주기
0
471
1
orElseThrow()
1
1086
2
findFirst함수
0
359
1
메서드 레퍼런스
1
478
1
primitive type 질문
0
302
1
FunctionalInterface 상속 관계 질문
0
293
1
함수형 인터페이스를 왜 사용하나요?
1
497
1
while문 세미콜론
0
432
1
flatMap Optional과 Stream에서의 차이점을 제가 잘 이해했는지 헷갈립니다!
0
406
1
람다식과 익명 클래스
0
321
1
steam api 예제 git 주소
3
784
1
thread.sleep질문
0
385
2
.orElse 매개변수 질문
0
265
1
isPresent( ) 와 null 질문
0
335
1
예제 코드 질문
2
289
1
코드 질문있습니다.
0
238
1





