1. static 변수
class HouseLee {
String lastname = "이";
}
public class Sample {
public static void main(String[] args) {
HouseLee lee1 = new HouseLee();
HouseLee lee2 = new HouseLee();
}
}
객체마다 객체변수 lastname을 저장하기 위한 메모리가 별도로 할당된다.
HouseLee 클래스의 lastname은 어떤 객체이던지 동일한 값인 "이" 이어야 하는데,
이렇게 항상 값이 변하지 않는 경우라면 static 사용시 메모리의 이점을 얻을 수 있다.
class HouseLee {
static String lastname = "이";
}
public class Sample {
public static void main(String[] args) {
HouseLee lee1 = new HouseLee();
HouseLee lee2 = new HouseLee();
}
}
위와 같이 lastname 변수에 static 키워드를 붙이면 자바는 메모리 할당을 딱 한번만 하게 되어 메모리 사용에 이점이 있다.
동시에, 공유의 개념도 가지고 있는데 static 으로 설정하게 되면 같은 곳의 메모리 주소만을 바라보기 때문에
static 변수의 값을 공유하게 된다.
class Counter {
static int count = 0;
Counter() {
count++; // count는 더이상 객체변수가 아니므로 this를 제거하는 것이 좋다.
System.out.println(count); // this 제거
}
}
public class Sample {
public static void main(String[] args) {
Counter c1 = new Counter();
Counter c2 = new Counter();
}
}
1
2
그냥 int count 였으면 각각의 객체 c1, c2 에서 모두 1로 나왔을텐데(객체는 독립적이므로)
static int count 이므로 같은 메모리의 주소를 공유하므로 count 값이 공유된다.
07-03 정적(static) 변수와 메소드
이번에는 스태틱(static)에 대해서 알아보자. [TOC] ## static 변수 예를 들어 다음과 같은 HouseLee 클래스가 있다고 하자. *Sample. ...
wikidocs.net
예시
바로 main함수로 ㄱㄱ
i = 0 일때, test1 함수 실행
number++ 에 의해 1 리턴
i = 1 일때, test1 함수 실행
number++ 에 의해 1 리턴
...
i = 4 일때, test1 함수에 의해 1리턴됨
바로 main함수로 ㄱㄱ
i = 0 일때, test1 함수 실행
number++ 에 의해 1 리턴
i = 1 일때, test1 함수 실행
number++ 에 의해 2 리턴
...
i = 4 일때, test1 함수에 의해 5리턴됨
(static 변수는 같은 메모리의 주소를 공유, 프로그램 종료전까지 계속 실행됨)
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=dd1587&logNo=221106199316
C언어 static변수(정적변수)
C언어 static변수(정적변수)C언어 static변수에 대해 알아보려고하는데요. static변수는 한글로는 정적변...
blog.naver.com
2. 지역변수 vs 전역변수
class Ex_variables{
int global_int; // 전역변수(객체변수) : 같은클래스에서 호출이 가능
static int global_statuc_int; // 전역변수(클래스변수) : 다른 클래스에서도 호출이 가능
void method() {
int local_int = 0; //지역변수 { }안에 생성되며 { }를 벗어나면
} //method() 라는 메소드가 끝나는 시점에 바로 삭제
}
변수는 선언위치에 따라 전역변수와 지역변수로 나눠지는데
전체에서 어디서든 호출하면 사용할수 있는 변수는 전역변수
특정한 구역({ })안에 생성되어 그 지역에만 사용할수 있는 변수는 지역변수
https://java119.tistory.com/20
[Java] 지역변수와 전역변수
전역변수(Global variable)와 지역변수(Local variables) 선언위치에 따른 변수의 종류 변수는 선언위치에 따라 전역변수와 지역변수로 나눠지는데 선언위치에 따라 선언위치에 따라 꼭 기억!! 말그대로
java119.tistory.com
'언어 > JAVA' 카테고리의 다른 글
상속 & 생성자 (0) | 2022.10.14 |
---|---|
흥달쌤 영상답변 문제 모음 (0) | 2022.10.14 |
변수 자료형 (0) | 2022.09.16 |
[JAVA] 추상 클래스, 추상 메소드 (0) | 2022.07.12 |
[JAVA] 클래스, 상속, 생성자 (0) | 2022.07.12 |
댓글