[데이터의 크기]
8 bit | 1 byte |
1024 byte | 1 kilobyte |
1024 kilobyte | 1 megabyte |
1024 megabyte | 1 gigabyte |
1024 gigabyte | 1 terabyte |
1024 terabyte | 1 petabyte |
1024 petabyte | 1 exabyte |
1024 exabyte | 1 zettabyte |
[데이터의 타입]
●정수형
데이터타입 | 메모리의크기 | 표현가능범위 |
byte | 1 byte | -128 ~ 127 |
short | 2 byte | -32.768 ~ 32. 767 |
int | 4 byte | -2,147,483,648~2,147,483,647 |
long | 8 byte | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
※ 어떤 데이터 타입으로 변수를 선언하느냐에 따라 사용하는 메모리의 크기가 달라짐!
변수에 들어올 수 있는 숫자 최대 크기를 잘 판단 후 데이터 타입을 지정해야 메모리 용량을 아낄 수 있음.
정수 저장 시 거의 int 사용!!!
ex) int a = 2147483647;
long b = 2147483647; -> 변수 b가 2배의 메모리 사용!
●실수형
데이터타입 | 메모리의크기 | 표현가능범위 |
float | 4 byte | ±(1.40129846432481707e-45 ~ 3.40282346638528860e+38) |
double | 8 byte | ±(4.94065645841246544e-324d ~ 1.79769313486231570e+308d) |
●문자
데이터타입 | 메모리의크기 | 표현가능범위 |
char | 2 byte | 모든 유니코드 문자 |
[상수의 데이터 타입]
●상수(contant) : 변하지 않는 값
int a = 1; ->a는 변수, 1은 상수! / 1 = 3; -> 컴파일 X, 고유한 값을 가지고 있고, 값을 변경할 수 없음(=상수)
●실수의 표현
float도 실수의 데이터 타입인데 double로 변경하라고 에러가 발생한다.
double로 변경하니 에러가 사라졌다. 즉, 실수형 상수의 데이터타입은 디폴트가 double이라는 것!
float형 변수에 값을 대입할 수 있는 방법은?
명시적으로 float형은 표시해주면 된다. 숫자 뒤에 'F' 붙이기!
나는 왜 굳이 표시해주나 싶어서 친구한테 물어봤더니, 그냥 헷갈리지 않기 위해서
표시하는 거라고, 결과 출력에는 상관없으니 신경 안 써도 된다고 했다.
●정수의 표현
int는 데이터 타입이 정수인 상수의 디폴트 값!
최댓값을 초과했기 때문에 에러가 뜬다.
데이터 타입을 long으로 바꿔도 디폴트가 int이기 때문에, int의 최댓값을 초과하고 있다고 뜸!
숫자 뒤에 'L'을 붙여, 앞의 숫자가 Long 데이터 타입이라고 명시적으로 표현.
※ int 보다 작은 short이나 byte는 int형을 허용하기 때문에, 오류 발생 X
[형 변환]
●형 변환(Type Conversion) : 데이터의 타입을 변경하는 것.
-자동 형 변환 : 표현 범위가 좁은 데이터타입에서 넓은 데이터타입으로의 변환만 허용
타입을 변경해도 정보의 손실이 일어나지 않는 경우!
정수보다 실수가 더 광범위!!
2.2F는 double로 자동 형 변환. 반대로 표현범위가 좁은 float에서 double로의 형 변환은 안됨!
-명시적(Explicit Conversion) 형 변환
자동 형 변환이 적용되지 않는 경우 수동으로 하는 형 변환.
(데이터 타입) 데이터 값;
-> int b = (int) 100.0F; 로 고쳐주면, 에러는 사라진다. 하지만 int로 데이터 타입이 바뀌었기
때문에 소수점 이하 자리도 사라진다.
'JAVA공부기록[생활코딩]' 카테고리의 다른 글
[Java] 반복문 (0) | 2022.03.29 |
---|---|
[Java]연산자, 비교와 Boolean, 조건문 개념 정리 및 예제//생활코딩입문 (0) | 2022.03.28 |
[JAVA] 왕초보 변수와 주석, 세미콜론 생활코딩입문 (0) | 2022.03.25 |
[JAVA] 왕초보 숫자와 문자 생활코딩 (0) | 2022.03.24 |
[JAVA] 왕초보 윈도우에서 이클립스 설치 및 실행, 기능 및 예제//생활코딩입문 (0) | 2022.03.23 |