앞서 말했듯이 자료형은 주머니에 담길 데이터의 종류라고 할 수 있다. 그렇다면 자료형은 도대체 왜 있어야 할까? 각각의 자료형은 각기 다른 크기를 갖는다. 쉽게 말해 세탁기를 포장해야 하는데 노트북 정도의 박스를 가져오면 안되는 것처럼 자료형은 각각의 범주에 포함되는 모든 데이터들을 가장 효율적으로 저장해서 메모리를 절약할 수 있도록 설계되었다. 지금부터 그 여러 종류의 박스들 중에서 숫자 박스(숫자 자료형)에 대해 알아보겠다.
숫자에도 정수, 실수, 8진수, 16진수와 같이 여러 종류가 있다. 먼저 자바에서 정수를 표현하려면 정수 앞에 byte, short, int, long 자료형을 붙여주면 된다. 오른쪽으로 갈수록 더 큰 박스라고 생각하면 된다. 각각 1바이트, 2바이트, 4바이트, 8바이트 크기의 박스이다. 여기서 int 자료형이 널리 사용된다.
int a = 10;
long b = 34872389475234L;
다만, 여기서 주의할 점은 int 자료형의 표현 범위의 최대가 2147483647인데 그 보다 넘어서는 값을 대입할 때에는 반드시 끝에 L을 붙여주어야 한다. 또한, 작은 자료형을 큰 자료형에다가 넣는 것도 가능하다. 만약 값이 5인 int 자료형을 long 자료형에 대입하면 값은 변함이 없고 자료형만 long으로 바뀌는 것이다. 반대로 큰 자료형을 작은 자료형으로 넣는 것은 불가능하다. 하지만 예를 들어 값이 123(byte 자료형 박스 크기로 커버 가능)인 int 자료형을 byte 자료형에 넣는다고 하면 강제적으로 앞에 (byte)를 붙여 형변환을 시켜주면 된다. 주의할 점은 값이 그 박스 크기를 넘어갔는데 일부러 구겨 넣으면 값의 손실이 발생한다는 것이다.
두 번째로, 실수를 표현하고 싶다면 float과 double 자료형을 붙여주면 된다. 여기서 double 자료형은 float 자료형보다 더 큰 박스라기보다는 더 정교한 박스라고 보는 것이 적절하다.
float c = 5.28F;
double d = 2.3518981049158515;
실수 자료형을 사용할 때도 주의할 점이 있는데 자바에서는 실수형의 기본값이 double이라는 점이다. 따라서 float 자료형을 사용할 때 반드시 값의 맨 끝에 F(or f)를 붙여주어야 컴파일 시 오류가 발생하지 않는다.
마지막으로 8진수와 16진수는 int 자료형을 사용한다. 다만 8진수면 값이 0으로 16진수면 0x로 시작한다는 차이점이 있다. 자주 쓰이진 않으니 인지만 하고 넘어가면 될 것 같다.
다음은 이 숫자 자료형으로 연산을 하는 것에 대해 알아보자. 그냥 평소에 하던 사칙연산처럼 하면 된다. 표만 간단히 보고 넘어가자.
+ | 더한 값을 반환 |
- | 뺀 값을 반환 |
* | 곱한 값을 반환 |
/ | 나눈 값을 반환 |
% | 나눈 나머지를 반환 |
여기서 반환한다는 의미에 대해 잠깐 짚고 넘어가자면, 예를 들어 int a = 2+3 이라고 해보자. 이 코드는 2와 3을 더한 값을 반환한다는 의미인데 이는 int 자료형 a를 5로 바꿔 쓸 수 있다는 뜻이다. 그러니까 반환(return)한다는 것은 "바꿔쓸 수 있다는 거구나." 정도로 해석하면 된다. 다음은 복합 대입 연산자인데, 아래 표를 보자.
a += b | a = a + b |
a -= b | a = a - b |
a *= b | a = a * b |
a /= b | a = a / b |
a %= b | a = a % b |
이처럼 보다 간단하게 표현을 할 수 있다. 이외에 증감 연산자라는 것도 있다. ++나 --가 있는데 예를 들어, a++, ++a 라고 했을 때 둘 다 1을 증가시키는 것이지만 언제 증가시키는지는 다르다. 아래 코드를 살펴보자.
int a = 1;
int b = a++;
int c = ++a;
처음에 a가 1인데 두 번째 줄에서 a를 1만큼 증가시켰다. 두 번째 줄까지만 본다면, a가 2가 되어 있는 상태이지만 b에는 1이 대입된다. a++ 와 같이 값 뒤에 ++를 붙이면 그 코드를 벗어나야 1이 증가한다. 다시 말해, 그 사용 시점에서 효과가 발동하는 것은 아니라는 것이다. 이제 세 번째 코드까지 보자면, a는 3이 되어 있고 c에도 3이 대입된다. ++a 와 같이 값 앞에 ++를 붙이면 사용하자마자 효과가 발동된다.
자바 프로그래밍에 관한 글은 "이지스퍼블리싱"의 "Do it!, 점프 투 자바"이라는 책을 학습하고 정리한 것입니다.
'Programming Language > Java' 카테고리의 다른 글
자바 - (들어가기 전) (0) | 2023.07.24 |
---|