woowacourse / tecoble-comments

0 stars 0 forks source link

tecoble/post/2020-07-16-static-method/ #16

Open utterances-bot opened 3 years ago

utterances-bot commented 3 years ago

정적 메소드, 너 써도 될까? | javable

static variable, static method, static class... static이 붙은 녀석들은 JVM이 시작될 때 Method(static) 영역에 저장된다. 그리고 프로그램이 끝날 때까지 사라지지 않고 메모리에 남아있다. (자바 기준)

https://woowacourse.github.io/tecoble/post/2020-07-16-static-method/

kys4548 commented 3 years ago

배우고 갑니다..

juunzzi commented 2 years ago

최근 고민이 조금 있었는데, 이런 아이디어도 있군요 !! 공감합니다 ㅎ ㅎ 잘읽고가여~~

KyeonghoYoo commented 2 years ago

2020년 글이지만 잘못된 내용이 있는게 아닌가 싶어 향후 이 글을 참조하시는 분들을 위해 글 한 번 냄겨봅니다. 2. 메모리 효율이 떨어질 수 있다. 에서 메서드는 static 키워드가 붙든 말든 컴파일 과정에서 Metaspace(자바 8 아래 버전에선 Permgen)에 담기는 것으로 알고 있습니다.

스태틱 메서드가 GC 효율을 덜어뜨린다는 오류가 있는게 아닌가 생각이드네요 :grinning:

sanghogu commented 1 year ago

metaspace 영역은 os에서 관리하고 static object는 힙에 저장되며 이 heap에대한 ref를 metaspace 영역에서 관리하는거아닌가요?? gc효율이랑 어떤 관계인지 잘모르게써요 ㅠ,,

dkswnkk commented 11 months ago

결론적으로 윗분들 말씀을 추가적으로 정리하면 아래로 요약할 수 있을 것 같습니다. static 키워드를 붙이면

따라서 gc의 대상이 되지 않는다.(v1.8 이전) gc의 대상이 된다.(v1.8 이후)