
변수란?
데이터를 저장하는 기억공간
변수의 분류
타입에 따른 분류
- 원시 타입 변수(기본형 변수) - Primitive Data Type
- 참조형 변수(객체형 변수) - object(Reference)
선언 위치에 따른 변수
- 멤버 변수
- 지역 변수
기본형 변수
기본형 변수는 8가지 타입의 변수
- 정수형
- byte
- short
- int(기본형)
- long
- 실수형
- float
- double(기본형)
- 문자
- char
- 논리형
- boolean
각 데이터형의 크기는 아래와 같다.
| 1byte(8bit) | 2byte(16bit) | 4byte(32bit) | 8byte(64bit) | |
| 정수형 | byte(-128~127) | short(-2^15 ~ 2^15-1) | int(-2^31 ~ 2^31-1) | long(-2^63 ~ 2^63-1) |
| 실수형 | float | double | ||
| 문자형 | char | |||
| 논리형 | boolean |
사용방법
선언 : 자료형 변수명;
선언+초기화 : 자료형 변수명 = 데이터;
// 선언 후 초기화
int a;
a = 1;
// 선언과 동시에 초기화
int a = 1;
위 데이터에서 기본형이라 표시한 int와 double의 경우 따로 명시하지 않았을 경우 자동으로 설정되는 데이터 타입이다.

위 이미지에서 float 타입의 변수 f 에 실수를 대입했음에도 경고가 나타나는 것을 확인할 수 있다.
이는 실수의 기본형이 double로 되어있기 때문이다. double형의 데이터 크기는 float보다 크기 때문에 double형의 데이터를 float데이터 형으로 대입할 경우 데이터 손실이 일어날 수 있다.
그렇다면 float형의 데이터는 어떻게 사용할 수 있을까?

위와 같이 실수 뒤에 데이터 타입을 명시해주면 정상적으로 사용이 가능하다.
같은 방법으로 정수도 동일하다.
같은 수여도 표현하는 방식에 따라 데이터 타입이 결정된다.
// int형 정수 10
10;
//long형 정수 10
10L, 10l;
// double형 실수 10.123
10.123;
// float형 실수 10.123
10.123f, 10.123F;
정수의 오버플로우
int a = Integer.MAX_VALUE;
System.out.println(a); //2147483647
System.out.println(a+1); //-2147483648
위의 코드를 실행할 경우 첫 번째 출력문에서는 int형 데이터가 가질 수 있는 최댓값이 출력되지만, 그 수에서 1을 더했을 경우에는 int형의 최솟값으로 출력이 된다.
//이미지
그 이유는 컴퓨터가 숫자를 표현할 때 첫번째 비트는 부호비트로 사용하기 때문이다.
첫번째 비트가 0일 경우엔 양수, 1 일 경우엔 음수이다.
그래서 숫자의 표현범위도 int형의 경우 양수가 2^32까지 표현이 되는 것이 아닌 2^31-1까지 표현이 된다.
그래서 int의 max 값이 0111~111 에서 1을 더할 경우 1111 이 되므로 최솟값이 출력된다.
728x90