먼저 변수에 대한 깊은 이해를 도울 수 있게한 아래 글을 공유한다.

 

m.blog.naver.com/heartflow89/220954420688

 

[JAVA/자바] 메모리 구조(static, stack, heap)

이번 글은 자바(JAVA)를 사용하는 입장에서 알아야 할 메모리 구조 및 특징에 대해서 알아보려고 한다....

blog.naver.com

이런 보석같은 글을 발견하게 되어 기분이 참 좋다 :) 👍 

 

자바를 공부할 때 변수에 대한 지식은 어느 정도 익히긴 했지만 내가 이것을 정확하게, 적절하게 사용하고 있는지에 대한 의구심이 있었다. 

마침, 사수님이 static에 대한 짧은 발표를 준비하라고 하셔서 이참에 자바 변수에 대한 정확한 이해를 하고 가자 결심하게 됐다. 

 

 

정리하자면,

  • 변수는 선언위치에 따라 클래스변수, 인스턴스변수, 지역변수로 나뉜다.
  • 각 변수들은 메모리 내에서 저장되는 위치가 다르다.
  • 전역변수는 static에, 기본자료형의 지역변수는 stack에, 참조형 타입 객체 및 배열은 heap에 저장된다.
  • new 클래스();로 생성되는 참조형 타입 객체 및 배열의 데이터는 heap영역에 저장되고, 이 저장된 영역의 주소(참조값)는 stack영역에 저장된다
    • 개인적으로 이는 Primitive Type과 Refernce Type을 이해하는 데에 있어 중요한 부분인 것 같아 핵심이라 생각함 

 

 

 

왜 자바에서 static의 사용을 지양해야 하는가?

자바에서 데이터를 가공하거나 특정 메서드를 수행할 때 새로운 클래스를 만들어서 이를 인스턴스화 해서 쓸건지 아니면 static 으로 쓸건지 고민하게 될 때가 있다. 사실 후자는 객체지향적 관

unabated.tistory.com

 

아래에는 발표를 위해 내가 준비한 PPT 파일이다.

 

 

 

참조 : 자바 성능 튜닝이야기 (이상민 지음)

+ Recent posts