Contents

Java
2013.11.21 21:57

1.5.3 상수의 의미

조회 수 571 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
book_7225.png


1.5.3 상수의 의미

상수의 의미에 대해 한번 생각해보고 넘어가자. 상수는 그 자체가 수이며 내가 만든 것이 아니라 이미 만들어져 있는 것을 말한다. 이미 만들어져 있는 것이라는 의미는 그 누구도 바꿀 수 없는, 이미 존재하는 데이터 그 자체를 의미한다. '100은 내가 만든 것이 아니며, 이미 존재하는 것이며, 내가 바꿀 수 없는 것이다'라는 말은 참이다. 일반적으로 우리가 알고 있으며 바꿀 수 없는 데이터를 상수(Constant)라고 한다.

□ 상수(Constant)
◇ 상수는 데이터 그 자체를 말하며 바꿀 수 없는 데이터를 말한다.

컴파일러는 이미 이러한 상수의 개념을 가지고 있다. 여러분이 프로그램 내에서 100이라는 숫자 데이터를 사용했을 때 컴파일러는 이것을 상수로 인식하고 처리하게 된다. 변수에 들어가는 것을 우리는 데이터(Data)라고 부른다. 그리고 이 데이터를 상수(Constant)라고 말한다. 다른 말로 하면 상수는 항상 수, 항상 데이터라고 말할 수 있다.
□ 데이터(Data)
◇ 데이터 그 자체를 상수(Constant)라고 한다.

'a'도 문자표에 명시된 수(Number)이기 때문에 상수에 해당한다. 보통 문자 상수라고 부른다. 1, 100, 200 등과 같은 수도 상수이다. 그리고 "abcd"와 같은 문자열은 문자 상수 집합(문자열 상수)이다.

▣ 상수의 종류

총칭해서 상수(데이터)라고 하지만 이러한 상수에도 종류는 있다. 모든 자료는 기본 데이터 타입의 관점에서 분류할 수 있으며 분류에 따른 표현법도 있다. 이러한 분류법과 표현법에 따라서 해당 데이터 타입에 관련된 각각의 상수들이 존재한다. 상수의 데이터 타입에 따른 분류와 표현은 아주 간단하다. 앞에서 배운 데이터 타입 그 자체가 분류가 되며, 그 분류에 따라서 표현되는 방법이 다르다.

여러분이 숫자 100을 가지고 있다면, 100이라는 숫자가 int형인지 long형인지 알 수가 없다. 그 이유는 long형에도 100이 존재하고 int형에도 100이 존재하기 때문이다. int형과 long형의 100은 메모리의 크기가 서로 다르기 때문에 전혀 다른 것으로 취급한다. 이러한 상수 자체의 표현을 위해서 일반적인 100은 int형 100이며, 100L이라고 했을 때 long형으로 취급한다.

□ 정수형 상수의 구분
◇ 100 : 명시하지 않으면 int형 상수
◇ 100L, 100l : long형 상수

실수형에서도 이것은 마찬가지이다. 단순히 5.34라고 표현하면 8바이트 크기의 double형이 된다. 만약 4바이트의 float형으로 표현하고 싶다면, 5.34F라는 표현을 사용해야 한다.

□ 실수형 상수의 구분
◇ 5.34 : 명시하지 않으면 double형 상수
◇ 5.34F, 5.34f : float형 상수
◇ 5.34D, 5.34d : double형 상수

상수가 메모리로 들어가기 위해서는 메모리에 맞는 상수로 만드는 것이 바람직하다. 만약 int형의 메모리에 double형 5.34를 강제로 넣는다면 어떻게 될까? 이 때는 소수점 이하의 데이터를 잃어버리게 되면서 강제로 int형으로 캐스팅해서 넣어야 한다.

▣ 문자 상수와 문자열 상수

문자에 관련된 상수 표현들은 어떻게 될까? 앞에서도 말했듯이 문자도 수의 일종이다. 각각의 모든 문자들은 자신의 수(數) 값을 가지고 있다. 가령, 영문자 표현일 때 ASCII 코드 표준 문자값들을 사용한다. 즉 'A'라고 프로그램에서 사용하면, 'A'는 ASCII 코드에 명시되어 있는 65라는 수로 처리된다.

문자 상수 즉 하나의 문자를 표현하기 위해서 우리는 작은따옴표를 사용한다. 그리고 문자 상수의 집합을 우리는 문자열이라고 말하며, 문자열 상수는 큰따옴표로 표현한다. 문자열은 단순한 문자 상수의 집합이지만 마지막에 널문자('\0')가 자동으로 추가된다는 것이 특징이다.

□ 문자열 상수의 예
◇ "abcd"
◇ "abcd"라는 문자열은 10바이트의 메모리를 차지한다.

"abcd"는 몇 바이트일까? 자바에서 하나의 문자는 2바이트를 차지하며, 문자들의 집합으로 이루어져 있는 문자열 상수는 마지막에 널문자('\0')가 자동으로 추가되기 때문에 10바이트짜리 상수가 된다.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
20 Java 1.6.2 할당의 법칙 IT장인 2013.11.21 379
19 Java 1.6.1 데이터 타입과 변수, 상수 IT장인 2013.11.21 445
» Java 1.5.3 상수의 의미 IT장인 2013.11.21 571
17 Java 1.5.2 변수의 의미 IT장인 2013.11.21 385
16 Java 1.5.1 데이터 타입의 목적 IT장인 2013.11.21 329
15 Java 1.4.5 그 외 데이터 타입 IT장인 2013.11.21 66415
14 Java 1.4.4 정수형과 실수형 데이터 타입 IT장인 2013.11.21 592
13 Java 1.4.3 정수형과 실수형의 계산 IT장인 2013.11.21 526
12 Java 1.4.2 정수형과 실수형 메모리의 형태 IT장인 2013.11.21 1356
11 Java 1.4.1 데이터 타입의 분류 IT장인 2013.11.21 459
10 Java 1.3.3 메모리에 들어가는 데이터 IT장인 2013.11.21 486
9 Java 1.3.2 변수를 이용한 메모리 접근 IT장인 2013.11.21 467
Board Pagination Prev 1 2 3 4 5 6 Next
/ 6