2. JAVA 데이터 타입
by mini_min◾ byte : -128~127까지 저장
byte a, b = 10;
a = -15;
System.out.println(a+","+b);
◾ a가 130일 때, byte 로 표현하지 못하면, 강제로 형변환하여 표현할 수 있다.
이때, 값이 넘쳐서 형변환이 되면 원래 값이 얼마인지 모르게 된다.
a = (byte)130; // 강제로 형변환
// 부호 자리는 1(음수) 값이 넘쳐서 형변환되면 원래 값이 얼마인지 모르게 됨.
// 오버플로어 주의!
System.out.println(a); // -126이라고 나옴
byte a, b;
a = (byte)129; // 오버플로우가 발생하여 -127이 저장
b = (byte)385; // 오버플로우가 발생하여 -127이 저장
System.out.println(a + "," + b);
System.out.println(a == b); // a랑 b랑 같냐고 물어보는 것
◾ short 와 int
아스키코드는 미국에서 표준화한 정보교환용 7비트 부호체계로, 33개의 출력 불가능한 제어 문자들과 공백을 비롯한 95개의 출력 가능한 문자들로 이루어진다.
short s1, s2 = 100;
s1 = 'A'; // 65. 문자는 ASCII 코드값이 저장되므로 가능
System.out.println(s1+","+s2);
int i1, i2, i3;
i1 = 200;
i2 = 'a'; // 'a' : 문자 'a'의 ASCII 코드 값은 97
i3 = '1' + '3'; // '1': 문자 '1'의 ASCII 코드 값은 49
// 49 + 51
System.out.println(i1+","+i2+","+i3);
◾ 큰 자료형의 값을 적은 자료형에 대입할 수 없다.
ex) int 값을 short 값에 넣을 수 없다. 대신, (short)를 붙여서 강제로 형변환하면 가능하다.
= 값 짤림 현상이 발생할 수 있다.
💥 적은 자료형은 큰 자료형에 대입하는 것은 가능하다.
short a, b = 100;
int x = 100; //4byte
// a = x; // 컴파일 오류. int > short 자료 타입이 안맞아서 가져올 수 없다.
// 큰 자료형의 값을 적은 자료형에 대입할 수 없다.
a = (short)x; // int를 short 로 강제로 형변환
// 잘림 현상 발생할 수 있다.
// 형변환 과정에서 표현범위를 초과하면 잘림
System.out.println(a+","+b+","+x);
long n; // 8byte
n = x; // int을 long에 대입. 가능! 적은 자료형을 큰 자료형에 대입 가능.
System.out.println(n);
// n= 2200000000; //22억은 int형이 아니므로 컴파일 오류 발생.
n = 220000000L; // long 형의 리터널
System.out.println(n);
◾ float 은 단정도형이고 double 은 배정도형이다.
float 은 정밀도가 낮아서 정밀도를 요구하는 경우에는 double 을 사용한다.
float f; // 단정도형
f = 10; // int 리터널을 float 자료형에 대입한 것이다.
System.out.println(f); // 10.0
// f = 0.5; // 컴파일 오류.
// 0.5 : 배정도형 리터널로 float 에 대입 불가하다.
f = 0.5f; // 단정도형 리터널.
System.out.println(f);
f = 1.2e04f; // 1.2 * 10의 4
System.out.println(f);
f = 'A'; // 문자는 ASCII 코드값으로 저장된다. 작은 자료값은 큰 자료값에 넣을 수 있기 때문에 출력 가능.
System.out.println(f);
double d; // 배정도형
d = 0.5;
System.out.println(d); // 그대로 들어갑니다.
d = 10.5d;
System.out.println(d);
// f = d; // 안된다. 컴파일 오류. 배정도형이 더 큰데 단정도형인 f에 들어갈 수 없다.
f = (float)d; // double에서 float으로 강제 형변환.
System.out.println(f);
'개발 공부중 > 📑 코드 복습' 카테고리의 다른 글
5. 연산자 (0) | 2023.02.22 |
---|---|
4. 확장 문자열 : 키보드로 표현할 수 없는 문자들 (0) | 2023.02.22 |
3. Scanner 입력 받기 (0) | 2023.02.22 |
1. JAVA JDK 설치 (0) | 2023.02.22 |
💥 백엔드 복습 시작 💥 (23.02.22) (0) | 2023.02.22 |
블로그의 정보
개발자 미니민의 개발로그
mini_min