(1) 기본 타입 (primitive type , 비객체 타입)
| 용도 | 크기 | 적용되는 값의 허용 범위 | |||
| 정수형 | byte | 1 byte | 8 bit | 2의 8승 → 숫자를 256개 저장 | -128 ~ 127 |
| short | 2 byte | 16 bit | 2의 16승 | -32768 ~ 32767 | |
| int (default) | 4 byte | 32 bit | 2의 32승 | -2,147,483,648 ~ 2,147,483,647 | |
| long | 8 byte | 64 bit | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
||
| 실수형 | float | 4 byte | 32 bit | 소수점 이하 7자리 | |
| double (default) | 8 byte | 64 bit | 소수점 이하 15자리 | ||
| 문자형 | char | 2 byte | 16 bit | (ASCII + 8bit = Uni code) | |
| String | 문자열 | ||||
| 논리형 | boolean | TRUE or FALSE | |||
1) 정수형 데이터 타입
int var1 = 10;
byte var2 = -30;
byte var3 = 30;
//byte var4 = 128; //byte 저장값 허용범위를 벗어났기 때문에 컴파일 에러가 생긴다
long var5 = 10;
long var6 = 1000000000000L;
//정수 리터럴이 int타입의 허용범위를 벗어날 경우 대문자 L을 붙여 long 타입임을 컴파일러에게 알려주어야한다
2) 문자형 데이터 타입
char c1 = 'A'; //문자를 직접 저장
char c2 = 65; //10진수로 저장 -> 'A'의 ASCII CODE 넘버
String name = "홍길동"; // 문자열 식별기호인 큰따옴표 ""로 감싸주어야한다
String job = "프로그래머";
[문자열 내부에서 사용할 수 있는 이스케이프 문자(자주 사용하는 문자)]
| 이스케이프 문자 | 출력 용도 |
| \t | 탭만큼 띄움 |
| \n | 줄 바꿈(라인 피드) |
| \r | 캐리지 리턴 |
| \" | " 출력 |
| \' | ' 출력 |
| \\ | \ 출력 |
3) 실수형 타입
// float var1 = 3.14;
//자바는 기본적으로 실수 리터럴을 double 타입으로 해석하기 때문에 실수리터럴을 그냥 저장하면 컴파일 에러가 발생
float var2 = 3.14f; // float타입으로 저장하기 위해서는 f를 붙여줘야한다
double var3 = 3.14;
//정밀도 테스트
float var4 = 0.1234567890123456789f; // 0.12345679 출력
double var5 = 0.1234567890123456789; // 0.12345678901234568 출력
double var6 = 3e6;
float var7 = 3e6F;
4) 논리 타입
boolean stop = true;
if(stop){
System.out.println("중지합니다");
} else {
System.out.println("시작합니다");
}
(2) 객체 타입 (object type)
기본 데이터 타입을 여러 개 조합해서 생성한다 (사용자 정의 데이터 타입) , 클래스로 생성
(3) 타입 변환
1) 자동 타입 변환
자동으로 타입이 변환되는 것을 말합니다. 값의 허용 범위가 작은 타입이 허용 범위가 큰 타입으로 저장될 때 발생 합니다.
허용 범위 크기 순서
byte < short < int < long < float < double
byte byteValue = 10;
int intValue = byteValue;
//위의 코드는 int 타입이 byte타입보다 허용범위가 더 크기 때문에 자동 타입 변환이 일어납니다
2) 강제 타입 변환
강제로 타입을 변환하는 것을 말합니다. 값의 허용 범위가 큰 타입을 허용 범위가 작은 타입으로 쪼개어서 저장하는 것을 말합니다.
int intValue = 10;
byte byteValue = (byte)intValue; //int 타입을 byte타입으로 강제 변환
//연산에서의 타입 변환
int intValue = 10;
double doubleValue = 5.5;
double result = intValue + doubleValue;
//int타입이 double타입으로 자동변환되어 result에 15.5가 저장됨
//위 연산을 double 타입이 아닌 int 타입으로 저장하고자 한다면
int result = intValue + (int)doubleValue;
//double 타입을 int타입으로 강제 변환해준다, result에 15가 저장된다
3) 문자열을 기본 타입으로 강제 타입 변환
| 변환 타입 | 사용 예 |
| String ▶ byte | String str = "10"; byte value = Byte.parseByte(str); |
| String ▶ short | String str = "200"; short value = Short.parseShort(str); |
| String ▶ int | String str = "30000"; int value = Integer.parseInt(str); |
| String ▶ long | String str = "40000000000"; long value = Long.parseLong(str); |
| String ▶ float | String str = "12.345"; float value = Float.parseFloat(str); |
| String ▶ double | String str = "12.345"; double value = double.parseDouble(str); |
| String ▶ boolean | String str = "true"; boolean value = Boolean.parseBoolean(str); |
'BackEnd > JAVA' 카테고리의 다른 글
| [MyBatis] MyBatis 란? (2) | 2024.11.08 |
|---|---|
| 2-1. 변수 (6) | 2024.10.05 |
| 1. eclipse & jdk설치 및 환경 설정 (5) | 2024.10.05 |