본문 바로가기

JAVA

[ JAVA ] 기본 타입

 

JAVA는 다른언어와 비교적 제한적인 데이터 타입을 가지고 있다. 변수를 선언하면 선언된 변수에 따라 값의 허용범위가 다르고 선언한 후 타입 변경이 안되기 때문에 변수 선언 전 어떤 타입을 사용할지가 중요하다.

 

자바에서 제공되는 기본 타입은 저장되는 값에 따라 정수 타입, 실수 타입, 논리 타입 3가지로 분류되어

  • 정수 타입 - byte, char, short, int, long
  • 실수 타입 - float, double
  • 논리 타입 - boolean

총 8가지 기본 타입을 가지고 있다.

 

 

 

정수타입

 

데이터 타입마다의 메모리 사용 크기와 저장되는 값의 범위가 정해져있기 때문에 외울 필요는 없겠지만 유의해서 사용해야되기 때문에 알고 있는 것이 좋다.

 

타입 메모리 사용크기 저장되는 값의 허용 범위
byte 1byte 8bit -27 ~ (27-1) -128 ~ 127
short 2byte 16bit -215 ~ (215-1) -32,768 ~ 32,767
char 2byte 16bit 0 ~ (216-1) 0 ~ 65535(유니코드)
int 4byte 32bit -231 ~ (231-1) -2,147,483,648 ~ 2,147,483,647
long 8byte 64bit -263 ~ (263-1) -9,223,372,036,854,775,808L ~ 9,223,372,036,854,775,807L

byte < short < int < long

 

+ 정수 리터럴

 

  • 2진수 : 0b 또는 0B로 시작하고 0과 1로 구성됨.    ex)0b1011 → 11
  • 8진수 : 0으로 시작하고 0~7 숫자로 구성됨.    ex) 0206 → 134
  • 16진수 : 0x 또는 0X로 시작하고 0~9 숫자와 A, B, C, D, E, F 또는 a, b, c, d, e, f로 구성됨. ex)0xB3 → 179

 

♧ 리터럴(literal) : 소스 코드에서 프로그래머에 의해 직접 입력된 값

 

 

+ 유니코드

 

 

 

오류 1

 

byte a = 5;
byte b = 8;
		
byte c = a + b;

 byte, short는 정수형이긴하지만 계산상 결과값을 받을 순 없다

 

오류 2

 

int z1 = 2000000000;
int z2 = 2000000000;
		
int z3 = z1+z2;

int 허용 범위를 넘어섬. 컴파일, 런타임에서 에러가 나지 않는다 결과값이 이상하게 출력됨

 

 

 

실수 타입

 

타입 메모리 사용 크기 저장되는 값의 어용 범위 정밀도(소수점 이하 자리)
float 4byte 32bit (1.4*10-45)f ~ (3.4*1038<s/up>)f 7자리
double 8byte 64bit (4.9*10-324) ~ (1.8*10308) 15자리

 

+ 실수 리터럴

 

  • 소수점이 있는 숫자 리터럴은 10진수 실수로 인식함.    ex) 0.25, -3.14
  • 알파벳 소문자 e 또는 대문자 E가 포함되어 있는 숫자 리터럴은 지수와 기수로 표현된 소수점이 있는 10진수 실수로 인식함.    ex) 5e2 → 5.0 * 102 = 500.0

 

 

 

논리 타입

 

trun or false

 

 

 

char 타입

 

하나의 문자를 작은 따옴표(')로 감싼 것으로 문자 리터럴, 유니코드로 변환되어 저장됨

 

 

 

String 타입

 

하나의 문자 또는 여러개의 문자를 큰 따옴표(")로 감싼 것으로 문자열 

String str = new String();

 

String이 class라 원래는 상단과 같이 주어주고 사용해야 하나 하단과 같이 써주어도 사용할 수 있도록 되어있다.

String str = "가나다라마바사";

'JAVA' 카테고리의 다른 글

[ JAVA ] 2차원 배열 - 배열의 배열  (0) 2021.05.24
[ JAVA ] Call by Value vs Call by Reference  (0) 2021.05.20
[ JAVA ] SWITCH CASE - 조건문 - 조건이 명확할 때  (0) 2021.05.20
[ JAVA ] 반복문  (0) 2021.05.20
[ JAVA ] 타입 변환  (0) 2021.05.19