Storage Class(저장 기억 부류)
- 변수의 종류
- 지역변수 : 메소드 내부에 선언된 변수
- 전역변수 : 클래스 내부, 메소드 외부에 선언된 변수
- 정적변수 : static이 붙은 변수
지역변수
이클립스에서 색깔이 갈색
램의 Stack 영역에 생성
직접 초기화 필요
}닫는 중괄호 까지 사용가능
보안성 상
지역변수끼리 변수명이 같을수도 있음
전역변수
이클립스에서 파란색 색깔
램의 Data 영역에 생성
자동 초기화
프로그램 종료시
보안성 중
지역변수와 전역변수와 이름이 같을 수도 있음
-> 지역변수를 우선으로 불러옴
정적변수(static)
static 이 붙어있는 main에서나 사용가능
이클립스에서 파란색 이탤릭체
램의 Data 영역 생성
자동 초기화
프로그램 종료시
보안성 하
static (정적)
static이 붙은 변수, 메소드, 구역 등은 프로그램 실행시 가장 먼저 메모리에 올라간다.
static 이 붙은 전역변수, 메소드는 모든 객체가 공유한다.
static 이 붙은 변수는 가장 먼저 메모리에 static 영역으로 이동한다.
객체 안의 static 변수일 경우, 객체가 선언될때 객체안에서 제외된채 생성되고, 메모리의 static 영역에 저장되며, 그것을 공유한다.
static 이 붙은 메소드는 내부에서 각 객체의 필드에 올라오는 일반 전역변수와 일반 메소드는 사용할 수 없다.(아직 메모리에 올라오지 않았기 때문에 - static 은 가장 먼저 올라오기 때문에)
static이 붙은 전역변수, static이 붙은 메소드, 자기 자신 안에 선언된 지역변수만 사용할 수 있다.
- 실제로 프로그램 내에서 각 객체가 공유해야 하는 값, 메소드에는 static을 붙여서 사용한다.
- 공유하지 않아야 하는 값들에는 무조건 static을 붙이면 안된다.
public static void main(String[] args){}'
메인은 가장 먼저 메모리에 올라가고, 실행한다.
'Java > Java(base)' 카테고리의 다른 글
[Java] 상속(inheritance), 자식클래스 생성자, super() (0) | 2021.11.29 |
---|---|
[Java] 클래스의 개념, 선언, 사용, 생성자, this (0) | 2021.11.29 |
[Java] 메소드 Method (0) | 2021.11.29 |
[Java] 배열(1차원 배열, 2차원 배열) (0) | 2021.11.29 |
[Java]반복문 : For 문 (0) | 2021.11.29 |