Java_05_자료형

지원·2024년 3월 23일
0

Java

목록 보기
5/13
post-thumbnail

기본 자료형(Primitive Types)

Type || Bits || Range of Values

byte 8bits -2^7 ~ 2^7-1 (-128 ~ 127)

short 16bits -2^15 ~ 2^15-1 (-32768 ~ 32767)

int 32bits -2^31 ~ 2^31-1 (-2147483648 ~ 2147483647)

long 64bits -2^63 ~ 2^63-1 (-9223372036854775808 ~ 9223372036854775807)

float 32bits *single-precision 32-bit IEEE 754 floating point

double 64bits *double-precision 64-bit IEEE 754 floating point

char 16bits \u0000 ~ \uffff (0 ~ 2^15-1)

boolean *VMD true, false

각 자료형의 기본 값

type || 기본 값

byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char '\u0000'
boolean false

숫자형

숫자를 담는 자료형은
정수형 byte, short, int, long, 그리고 소수형 float과 double

정수형

자바에서는 int를 정수형의 메인으로 사용
즉, 정수를 입력하면 기본적으로 int로 간주

byte a = 127;

하지만 이렇게 127을 byte 변수에 지정해주면,
127은 byte의 범위 내에 있기 때문에
컴파일러가 알아서 127을 byte로 바꿔준다.

long x = 12345678910;  // 오류 (정수 범위를 벗어남)

만약 int의 범위에서 벗어나는 값을 써주면 오류가 나온다.
고치기 위해서는 L을 붙여주면 된다.

long을 표현하기위한 리터럴은 뒤에l(소문자 엘)또는 L(대문자 엘)을 붙여준다.
소문자 l(엘)의 경우 숫자 1(일)과 혼동될 수 있으니 대문자 L(엘)을 적는 것이 권장사항!!

long x = 12345678910l; // 소문자 l은 1과 헷갈릴 수 있음

long x = 12345678910L; // 권장사항

소수형

자바에는 두 가지 소수형 자료형

floatdouble

float과 double은 둘다 소수형을 담지만
정밀도(Precision) 혹은 정확도에 차이가 있다.

double이 더 정밀하게 값을 보관할 수 있다.

이러한 이유로 자바에서는 double을 소수형의 기본으로 사용한다.
정수를 입력하면 기본적으로 int로 인식되듯이, 소수를 입력하면 기본적으로 double로 인식되는 것이다.

만약 float를 쓰고 싶으면 소수를 쓰고, 뒤에 f를 붙여주면 된다.

float f = 3.14f;

글자

char a1 = 'a';
char a2 = 97;
char a3 = '\u0061';
char a4 = '가';

글자(Character) 하나를 담는 자료형 char

char은 딱 글자 하나만 넣어줄 수 있고, 작은 따옴표로 글자를 둘러싸야 한다.

글자 여러 개를 담고 싶으면 큰 따옴표로 둘러싸고 아래에서 배울 String이라는 자료형을 사용하면 된다.

a1에는 글자 'a'를 담았고,
a2에는 글자 'a'에 해당하는 ASCII 값인 97을 담았다.
사실 a1과 a2는 같은 셈이다.

a3는 유니코드 값
'가'도 유니코드 중 하나라 자바의 char에 담을 수 있다.

불린

boolean myBoolean = true;
myBoolean = false;

참(true), 거짓(false)을 담는 boolean
값으로는 true와 false가 가능

문자열

String은 기본 자료형이 아니라 클래스

?? 클래스를 변수의 형으로 쓰고 변수를 선언하면
그 변수는 클래스의 인스턴스를 담을 수 있다.

먼저 String은 큰 따옴표(")로 둘러싸인 글자들을 적어 만들 수 있다.

String a = "Hello, I'm ";
String b = ".";

System.out.print(a);
System.out.print(25);
System.out.println(b);
Hello, I'm 25.

0개의 댓글

관련 채용 정보