728x90
# 변수
- 변수 ( Variable ) : 하나의 값을 저장하기 위한 공간
- 상수 ( Constant ) : 한 번만 저장이 가능한 변수 ( 수정 불가 )
- 리터럴 ( Literal ) : 그 자체로 값을 의미하는 것
int a = 10; // a 는 변수
final b = 20; // final을 붙이면 상수 ( 수정 불가 )
int c = 30; // 30 은 값이므로 리터럴
# 리터럴의 접두사, 접미사
종류 | 리터럴 | 접미사 |
논리형 | true, false | 없음 |
정수형 | 100, 0b0010, 055, 0xBB, 200L | L (생략가능) |
실수형 | 3.14, 3.0e8, 1.5f, 0x1.0p-1 | f (float), d (double) |
문자형 | 'A', '1', '\n' | 없음 |
문자열 | "ABC", "123", "A", "true" | 없음 |
int i = 100; // 10진수. 기본형태.
int o = 0100; // 8진수. 접두사 0.
int h = 0x100; // 16진수. 접두사 0x.
long l = 100_0000_0000L; // 접미사 L. 생략불가.
long l = 100; // 생략 가능.
float f = 3.14f; // 접미사 f. 생략 불가.
double d = 3.14d; // 접미사 d. 생략 가능.
int i = 'A'; // int 범위 > char 범위라서 가능.
long l = 123; // long 범위 > int 범위라서 가능.
double d = 3.14f; // double 범위 > float 범위라서 가능.
# 기본형과 참조형
- 기본형 ( Primitive Type )
` 8가지. Boolean, char, byte, short, int, long, float, double
` 값을 저장한다.
- 참조형 ( Reference type )
` 기본형 외 나머지. String, System, Date 등
` 주소를 저장한다.
메모리사이즈 | 1byte | 2byte | 4byte | 8byte |
논리형 | boolean | |||
문자형 | char 유니코드가 2byte |
|||
정수형 | byte a) 2^8승=255 b) -128 ~ 127 |
short 2^16승=65535 -32768 ~ 32767 |
int 2^32승=42억 -21억 ~ 21억 |
long 2^64승=1800경 -900경 ~ 900경 |
실수형 | float c) S/E8/M23 d) 정밀도 7자리 |
double S/E11/M52 정밀도 15자리 |
* a) 1byte = 8bit. 1bit는 2진수 0과 1 저장 가능. 2^8은 2진수 8자리. 2진수 11111111 = 255.
* b) - (마이너스) 부호가 있으면 -128~127 범위. 없으면 0 ~ 255.
* c) S = 부호 / E = 가수 자리수 / M = 지수 자리수
* d) float의 지수 자리수인 2의 23승은 10의 7승보다는 크고 10의 8승보다는 작다.
따라서 10의 7승인 7자리수까지 정밀도를 보장한다.
8자리수 이상인 경우 오차가 발생한다.
728x90
'Lang > Java' 카테고리의 다른 글
[Java] 연산자에 대한 이해 (0) | 2022.12.05 |
---|---|
[Java] 연산자 우선순위의 이해 (0) | 2022.11.28 |
[Java] Java 입력 클래스 Scanner (0) | 2022.11.23 |
[Java] Java 출력 함수 printf() (0) | 2022.11.22 |