공일
[2일] 변수와 타입 본문
목차
자바 변수의 기본형
1. 기본형 (8가지)
1) 정수 타입: byte, short, char, int, long
| 타입 | 메모리크기 | 저장되는 값의 허용 범위 | ||
| byte | 1byte | 8bit | -2^7 ~ (2^7-1) | -128 ~ 127 |
| short | 2byte | 16bit | -2^15 ~ (2^15-1) | -32,768 ~ 32,767 |
| char | 2byte | 16bit | 0 ~ (2^16-1) | 0 ~ 65535(유니코드) |
| int | 4byte | 32bit | -2^31 ~ (2^31-1) | -2,147,483,648 ~ 2,147,483,647 |
| long | 8byte | 64bit | -2^63 ~ (2^63-1) | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
2) 문자 타입: char(문자 리터럴)
* 문자 리터럴: 하나의 문자를 작은 따옴표(')로 감싼 것
* 문자 리터럴을 유니코드로 저장할 수 있도록 char 타입 제공
char var1 = 'A'; // 'A' 문자와 매핑되는 숫자 65 대입
char var3 = '가'; // '가' 문자와 매핑되는 숫자 44032로 대입
* char 타입도 정수 타입에 속함
char c = 65; // 10진수 65와 매핑되는 문자 'A' 대입
char c = 0x0041; // 16진수 0x0041와 매핑되는 문자 'A'대입
3) 실수 타입: float, double
| 타입 | 메모리크기 | 값의 허용 범위 (양수 기준) |
유효 소수 이하 자리 | |
| float | 4byte | 32bit | 1.4 x 10^-45 ~ 3.4 x 10^38 |
7자리 |
| double | 8byte | 64bit | 4.9 x 10^-324 ~ 1.8 x 10^308 |
15자리 |
4) 논리 타입: boolean
* 참과 거짓을 의미하는 true와 false로 구성
* boolean 타입 변수에 대입 할 수 있음
초기화와 대입의 차이
- 초기화: 변수를 선언하는 시점에 값이 대입되고 메모리에 할당
- 대입: 변수 선언 이후에 이미 생성된 메모리의 값을 변경
int age = 10; // 변수를 선언과 동시에 초기회
age = 12; // 변수에 값을 대입
자동 타입 변환과 강제 타입 변환
1) 자동 타입 변환
- 데이터 타입을 다른 타입으로 변환 하는 것
- 값의 허용 범위가 작은 타입이 허용 범위가 큰 타입으로 대입될 때 발생
* 값의 허용 범위 순서: byte < short, char < int < long < float < double
- 정수 타입은 실수 타입보다 값의 허용 범위가 작기 때문에 실수 타입으로 대입되면 자동 타입 변환 됨
(예외: byte 타입은 char 타입으로 자동 변환 될 수 없음. char은 음수를 표현할 수 없기 때문)
- byte와 short 타입 변수는 연산 수행 시 int 타입으로 자동 변환되어 연산 수행
(그렇기 때문에 byte + byte 연산이 수행된 결과를 다시 byte 타입으로 대입할 수 없다)
2) 강제 타입 변환 (캐스팅 연산자)
- 큰 허용 범위 타입을 작은 허용 범위 타입으로 쪼개어 저장하는 것
- 캐스팅 연산자로 괄호()를 사용하며, 괄호 안에 들어가는 타입은 쪼개는 단위
int intValue = 10;
byte byteValue = (byte) intValue; // 강제 타입 변환
- 최하위 비트 부터 작은 허용 범위 타입에 대입 됨
- 허용 범위가 초과할 경우 상위 비트가 잘릴 수 있기 때문에 출력했을 때 값이 원래 값과 다를 수 있음
출처: 한빛미디어 - 이것이 자바다
'프로그래밍 > JAVA' 카테고리의 다른 글
| [3일] 연산자, 조건문과 반복문 (0) | 2023.06.01 |
|---|---|
| [1일] JAVA 개념 (0) | 2023.05.25 |