프로그래밍

자바 도움좀 줭

코린이임. 취미 비스므리하게 컴터 만지는거 좋아해서 이것저것 해보고 있당. 요새 자바가 또 그렇게 땡김. ㅋㅋ

 

어쨌든 자바에서 궁금한게 있는데

 

11111111.jpg

에서 다른건 static 저거 하난데 저 static이 무슨 의미가 있길래 됐다가 안됐다가 하는거임?

 

22222222.jpg

아 그리고 또 이런식으로 하나 뽑아다가 하면 또 static 이 없어도 되던데

 

위에껀 다른 메서드를 땡겨 쓰려면 = (공유하려면) static이 있어야 돼서 그런거고

 

밑에꺼는 main 메서드에 chk 라는 걸 이미 땡겨 쓴 부분이기 때문에 공유를 하기 위한 static이 없어도 되는거임?

11개의 댓글

2020.06.02

static 이란게 변수, 메소드, 클래스 같은걸 new 메소드로 메모리에 올리는 방법이 아니라 프로그램 실행과 동시에 메모리에 올리는 방시식임 그래서 두번째 캡쳐의 방식으로는 아직 sum 메소드가 메모리에 올라가 있지 않아서 컴파일 에러가 뜨는것

0
2020.06.02
@둥근종이컵

static이 붙은 애들은 실행하면서 메모리로 올라가서 어디든지 땡겨서 쓸 수 있고

 

안 붙은 애들은 숨겨져 있다가 new로 땡겨와서 메모리에 올려져서 3번째 사진처럼 쓸 수 있다 인거임?

 

그럼 죄다 static 붙이면 메모리 손해보고 그런건 좀 있음?

0
2020.06.02
@fawekfks

ㅇㅇ 3번째 사진 처럼 쓸 수 있음 죄다 static 를 붙으면 C랑 다를게 없을걸? 자바에서 ?! 굳이!

 

그리고 static 은 실행한 프로그램이 종료될때까지 메모리에 상주해 이건 좋지 않음

0
2020.06.02
@둥근종이컵

아 그래서 뭔 메모리 누수니 닫아야 한다느니 그런 이야기를 했던거구나..

0
2020.06.02
@fawekfks

한번쓰고 버릴걸 static 붙일 이유도 없고

...상황에 맞춰서

0
2020.06.02
@룰루루룽

그냥 혼자 공부하는데 궁금했어 ㅋㅋㅋㅋ

 

static 붙였는데 되고 떼니까 안되고 객체 뽑으니까 되고 하니까 ㅋㅋ

0
2020.06.02

위에 애 말대로고, 관련해서 컴파일타임/런타임 찾아보면 좋음

 

덧붙여 main 함수에 public "static" void 를 관용적으로 붙이는 이유가

최초 실행시 main 함수를 메모리에 올려서 호출하기 위함임

 

모두 static 쓰면 메모리적으로 손해보는 이유는 자바 프로그램에는 가비지 컬렉터라는 애가

내부에서 뽈뽈 돌아다니면서 주기적으로 안쓰는 데이터를 수거해서 메모리를 확보하는데

 

static 은 메모리에 올라가면 언제 누가 어떻게 쓸지 모르므로 수거가 잘안됨

수거가 안되는 안쓰는 데이터가 많으면? 메모리 누수임.

 

그래서 실무에선 귀찮더라도 밑에 그림처럼 인스턴스를 생성(new)해서 사용하는거임

관련해선 JVM과 OOP를 찾아보면 좋음

0
2020.06.02
@대뇌

뭔가 엄청 전공같은 느낌이 든다.

 

그러면 static 을 붙여서 쓰는 경우는 아예 없는거임?

 

인스턴스 생성 -> 메모리 올라가고 -> 참조 -> 쓰는거 보단 올라가있는 상태 -> 참조 가 더 빠르지 않나?

 

아 또 그런건 아닌가 ㅋㅋㅋㅋㅋㅋ

 

초보자도 고려해야 할 만큼 엄청 중요한 부분임?

0
2020.06.02
@fawekfks

당연히 있음 누구나가 똑같이 가져다 쓰고 변치 않는 값에서 자주 쓰임 = 상수라고 함

 

예를들어 pie값은 누가 뭐래도 3.14 고 절대 안바뀜

그럴때 final static float PIE = 3.14f 머 이런식으로 쓸 수 있음

 

static 성질을 이용한 싱글턴이라는 디자인패턴도 있고

 

유틸 클래스에서 사용하기두 함

예를들어 java.lang.Math 클래스는 전부 static 메소드임 아래 링크 봐보셈

https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#abs-double-

 

당장 너가 쓴 System.out.print에서 out 도 System 클래스의 static 필드임

0
2020.06.02
@fawekfks

new 로 인스턴스 새로 만들어서 지지고 복고 하는게 OOP 이고

OOP 는 JAVA 프로그래밍의 핵심을 관통하는 아주 중요한 개념임

 

근데 취미라면 static 으로 만들고 싶은거 다 만들고

나중에 많은 프로그래밍 지식을 얻었을 때

 

와 ㅅㅂ 예전에 왜 이렇게 병신같이 코드 짰지 하고 느끼는 것도 재밌긴 할거임

0
2020.06.02
@대뇌

억 ㅋㅋㅋㅋㅋㅋ 땡큐

 

그 순간 왔으면 좋겠다

 

좋은 키워드 고맙다

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
180370 [견적] 이거 에센코어 KLEVV DDR4 PC4-25600 CL22 매우 싸게 나왔는... 9 부터시작하는이세... 0 2 시간 전 71
180369 [잡담] 모니터암 설치하는데 미스테리 3 사나이테스트 0 3 시간 전 111
180368 [컴퓨터] 음향 관련 잘아는 형들 질문... 3 Marlin 0 3 시간 전 57
180367 [잡담] 애드가드 안드로이드 kt-dpi 우회 업데이트 됨 어무니 0 4 시간 전 102
180366 [컴퓨터] m2 ssd를 메인보드 기준으로 슬롯 1번에 있는거 2번으로 옮기... 3 오뜨 0 4 시간 전 74
180365 [잡담] 유튜브앱 구간 스킵 방식이 바꼈네?? 1 츄이로 0 4 시간 전 92
180364 [컴퓨터] 이륙 허가좀 16 사촌간부랄빨기 0 5 시간 전 96
180363 [컴퓨터] 완전 컴알못인데 이 레노버 노트북 사도 될까? 10 Fiesta 0 5 시간 전 118
180362 [잡담] 천천히 충전하는 거 폰 배터리에 더 안 좋음? 4 개돼지무한리필 0 6 시간 전 93
180361 [잡담] 메타ai 공개 1 년차html개발자 0 6 시간 전 98
180360 [컴퓨터] p41을 서브 게임저장용은 낭비인가? 7 신우철 0 8 시간 전 126
180359 [정보] 해당 모니터암이 여기 모니터2개에 맞을지 모르겠습니다 2 골든베릴 0 10 시간 전 100
180358 [견적] (직구) SK하이닉스 Platinum P41 2TB PCIe4.0 NVMe M.2 2280 ... 7 요기쪄 0 10 시간 전 266
180357 [컴퓨터] 이거 괜찮은 가격인가요? 5 죽업 0 11 시간 전 167
180356 [잡담] 급해서 특급운송으로 주문했는데... 오브 0 11 시간 전 121
180355 [컴퓨터] 사도 됨? 8 or5469 0 14 시간 전 159
180354 [모바일] 에어팟 프로 1세대 노이즈 캔슬링시 들리는 잡음 해결 방법 5 기승전치킨 0 17 시간 전 145
180353 [컴퓨터] RX7600 생각보다 잘만들었네? 7 Vv연옥의사신vV 0 18 시간 전 249
180352 [컴퓨터] 모니터가 FHD이면.. FHD이상은 차이없는거 아닌가? 4 ing 0 18 시간 전 189
180351 [견적] 컴 살까 하는데 견적 어떤가여 5 함박눈 0 19 시간 전 101