변수와 메서드

허진혁·2022년 10월 9일
0

선언위치에 따른 변수의 종류

  • 클래스 변수
  • 인스턴스 변수
  • 지역 변수

인스턴스 변수는 인스턴스가 생서될 때 마다 생성되어 클래스 내부 값들이 각각 다른 값을 유지할 수 있지만, 클래스 변수는 모든 인스턴스가 하나의 저장공간을 공유하므로 항상 공통된 값을 갖는다.

메서드

메서드란

특정 작업을 수행하는 것들을 하나로 묶은 것

메서드를 사용하는 이유

높은 재사용성

  • 메서드를 정의해 놓으면 반복해서 사용 가능하다.

중복된 코드 제거

  • 반복해서 적는 코드를 묶어서 메서드로 정의해 놓으면 메서드를 호출해서 반복된 코드를 하나의 메서드로 대체할 수 있다.

프로그램 구조화

  • 작성하는 코드들을 작업단위로 나누어 여러개의 메서드에 담아서 프로그램의 구조를 단순화시킬 수 있다.

클래스 메서드(static 메서드)와 인스턴스 메서드

인스턴스 메서드

메서드의 작업을 수행하는데 있어서 인스턴스를 필요로 한다.

클래스 메서드

인스턴스없이 바로 사용할 수 있다.

JVM 메모리 공간

메서드 영역(method area)

  • JVM은 해당 클래스 파일(*.class)을 읽어 클래스에 대한 정보(클래스 데이터)를 이곳에 저장한다
  • 스태틱 정보를 먼저 읽고 메모리에 올린다
  • Main 메서드가 종료될 때 Method 메모리 공간이 모두 사라진다

호출스택 (Call Stack)

  • 메서드 작업에 필요한 메모리 공간을 제공하는 역할
  • 메서드가 호출될 때, 호출에 대한 메모리가 할당되며 메서드가 작업을 수행하는 동안 지역변수들의 연산과 결과 등을 저장한다
  • 메서드가 작업을 마치면 할당되었던 메모리 공간은 반환되어 비워진다
  • 제일 먼저 main 메서드를 찾는다
  • Stack 자료구조이기 때문에 메모리 할당과 제거 순서는 후입선출이다.

호출 스택의 변화

힙(Heap)

  • 프로그램 실행 중 생성되는 인스턴스는 모두 이곳에 생성된다
  • Main 메서드가 종료될 때 Heap 메모리 공간이 모두 사라진다
profile
Don't ever say it's over if I'm breathing

0개의 댓글