불로구

3강. 기본타입 본문

프로그래밍/JAVA

3강. 기본타입

맹이맹이 2020. 5. 11. 23:04
반응형

자바는 정수, 실수, 논리값을 저장할 수 있는 기본타입을 제공한다. (총 8개)

기본타입

정수 타입

byte, char, short, int, long

실수 타입

float, double

논리 타입

boolean

1) 정수타입

타입

메모리 사용 크기

저장되는 값 허용 범위

short

1byte

8bit

-2^7 ~ (2^7 - 1)

-128 ~ 127

short

2byte

16bit

-2^15 ~ (2^15 - 1)

-32,768 ~ 32,767

char

2byte

16bit

0 ~ (2^16 ~ -1)

0 ~ 65535(유니코드)

int

4byte

32bit

-2^31 ~ (2^31-1)

-2,147,483,648 ~ 2,147,483,647

long

8byte

64bit

-2^63 ~ (2^63 - 1)

-9,223,372,036,854,775,808 ~

9223,372,036,854,775,807

값의 허용범위를 넘어가면 컴파일 에러!

* char 타입은 음수 값을 가질 수 없다.

-> 나중에 다룰 내용이지만 short와 char의 형변환이 불가능한 이유이다. ^_^

리터럴 : 프로그래머에 의해 직접 입력된 값

2진수 : 0b or 0B로 시작하고 0과 1로 구성

8진수 : 0으로 시작하고 0~7 숫자로 구성

10진수 : 소수점이 없는 0~9 숫자로 구성

16진수 : 0x or 0X로 시작하고 0~9 숫자와 A,B,C,D,E,F or a,b,c,d,e,f로 구성

기본적으로 컴파일러는 정수 리터럴을 int로 간주한다. 그러므로 int의 허용범위가 초과할 경우,

long타입임을 컴파일러에게 알려주기위해 long c = 100L; 을 사용한다.

char 타입

하나의 문자를 작은따옴표(')로 감싼 것을 문자 리터럴이라고 한다. 문자 리터럴은 유니코드로 변환되어 저장된다.

유니코드란? = 세계 각국의 문자를 2byte로 표현할 수 있는 숫자(0 ~ 65535)로 맵핑한 국제 표준 규약

char은 문자를 사용하는데 왜 정수형이지?! -> 유니코드는 정수이므로 char도 정수 타입에 속하는 것이다.

String 타입

큰따옴표(")로 감싼 문자들 (' 와 " 구분을 잘하자!)

( * String 타입은 기본 타입이 아니다!)

2) 실수타입

타입

메모리 사용 크기

저장되는 값의 허용 범위(양수 기준)

정밀도(소수점 이하 자리)

float

4byte

32bit

(1.4 * 10^-45) ~ (3.4 * 10^38)

7자리

double

8byte

64bit

(4.9 * 10^-324) ~ (1.8 * 10^308)

15자리

그림을 그릴 수 없어 필기한것으로 대체할게요 ㅠ_ㅠ 참고하시면 좋을 것 같아요!

자바는 실수 리터럴을 기본적으로 doyble 타입으로 해석하기 때문에 double 타입 변수에 저장해야 한다.

실수 리터럴을 float 타입으로 저장하고 싶으면 아까 사진에 있듯이 float a = 100.0F or f 로 선언하자!

double타입은 d를 붙이든 안붙이든 상관없다!

float이 허용하는 소수점 이하 자리는 7자리 , double은 15자리이다.

(즉, 메모리에 여유가 있고 특별한 이유가 없으면 double 타입 사용을 권장!!)

3)논리타입

자바는 참과 거짓을 의미하는 논리 리터럴로 true (T) 와 false (F)를 사용한다. 논리 리터럴은 1byte크기의 boolean 타입 변수에 저장 가능하다.

 

 

차이를 아시겠나요?! ( 모르신다면 답변주시면 알때까지 알려드릴게요 ^_^)

오늘은 여기까지!

혹시나 궁금한 점은 댓글로 남겨주세요!

반응형
Comments