티스토리 뷰

public class Static62 {
	static int count=0;
	int i=0;
	
	public void changeCount() {
		while(i<5) {
			i++;
			count++;
		}
	}
	
	public static void main(String[] args) {
		Static62 check1 = new Static62();
		Static62 check2 = new Static62();
		check1.changeCount();
		check2.changeCount();
		System.out.print(check1.count + " " + check2.count);
	}
}

What is the result?

A. 5 : 5

B. 10 : 10

C. 5 : 10

D. Compilation fails

 

정답: B

결과:

10 10

해설:

자바의 static 변수에 대해 이해하고 있는지 묻는 문제 입니다.

참고로 i 변수를 찍어보면

public class Static62 {
	static int count=0;
	int i=0;
	
	public void changeCount() {
		while(i<5) {
			i++;
			count++;
		}
	}
	
	public static void main(String[] args) {
		Static62 check1 = new Static62();
		Static62 check2 = new Static62();
		check1.changeCount();
		check2.changeCount();
		System.out.print(check1.count + " " + check2.count);
		System.out.println();
		System.out.print(check1.i + " " + check2.i);
	}
}

결과:

10 10
5 5

i는 static 변수가 아니고 객체를 생성할때 메모리에 올라가는 변수이니 5가 출력됩니다.

'ocajp 자격증 (Oracle Certified Associate Ja' 카테고리의 다른 글

ocjap 문제 해설 Static 61  (0) 2020.03.05
자바 static 변수, 메소드  (0) 2020.03.05
ocjap 문제 해설 - Class 73  (0) 2020.03.03
자바 실수 Float  (0) 2020.03.03
ocjap 문제 해설 - Float74  (0) 2020.03.03
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함