본문 바로가기

Lang/Java

[Java] Java 변수 접두사 접미사 메모리사이즈

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