프로그래밍

자바 도움좀 줭

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

 

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

 

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
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
180582 [컴퓨터] 키보드 -> 방향키가 눌릴때 삐걱거림 뮤잉운동케겔운동... 0 57 분 전 6
180581 [모바일] 기기변경할때 유심을 같은거쓰면 정보 그대로 보존됨? 1 마법부오러사무국장 0 1 시간 전 21
180580 [잡담] 결국 레이니 75 구매함 3 이제는끝내자 0 2 시간 전 72
180579 [컴퓨터] 이륙 허가를 요청한다! 14 와플맛 0 3 시간 전 54
180578 [컴퓨터] 찐따 컴하하 컴퓨터 구매 완료 2 69746974 0 3 시간 전 66
180577 [모바일] a34주문했는데 품절이네 ㅅㅂ 울그락푸르락 0 5 시간 전 107
180576 [컴퓨터] 보통 모니터 스펙이 높을수록 발열이 심해짐? 6 오늘하루도빚갚으리오 0 6 시간 전 113
180575 [컴퓨터] 스마트폰용 SD카드 샀는데 이거 잘 인식 되려나? 4 마두라지 0 6 시간 전 82
180574 [모바일] 갤탭s10 존버중이였는데 그냥 s9 살까 4 한림예고 0 6 시간 전 116
180573 [모바일] 오 플립4 one ui 6.1 업뎃 나왔다 대나무표효자손 0 7 시간 전 100
180572 [모바일] 네이버2차인증알람이 안옴.... 4 까까사주세요 0 9 시간 전 96
180571 [견적] 안녕하세요 선생님들 이 스펙에 4070s 괜찮을까요 12 시비걸면눈물흘림 0 10 시간 전 132
180570 [잡담] 당근에 플스프로4 올려놨더니 구매한다면서 누가 펌웨어 버전... 3 연골어류 0 10 시간 전 178
180569 [프로그래밍] 반도체 장비 업계인 있음? 4 캡틴띠모 0 10 시간 전 141
180568 [컴퓨터] 램 3600짜리 샀는데 제대로 인식을 안한다(해결됨) 10 오이혐오자 0 10 시간 전 112
180567 [잡담] 조공 유)맥북 어플 추천좀 9 년차html개발자 0 11 시간 전 91
180566 [모바일] 쉬이이이벌... 걍 a34 지름 울그락푸르락 0 11 시간 전 78
180565 [모바일] 갤24 울트라 가장 괜찮게 사는방법이뭐에여? 4 마법부오러사무국장 0 12 시간 전 170
180564 [정보] 갤럭시핏3 오늘부터 다시 구매 가능하네 4 건방진뤼팽 0 13 시간 전 196
180563 [모바일] a15를 살까... 울그락푸르락 0 13 시간 전 60