IT/Java

[2] JAVA 기초 2_데이터 타입과 형 변환 변수 크기 비교, 연산

Lyk 2021. 1. 3. 01:08
728x90
반응형

데이터 타입

기본타입 | 원시타입 | Primitive

기본 데이터 타입

특징

char : unsigned 정수값 저장, 유니코드(Unicode)로 처리

long : 정수값 뒤에 L 또는 l 을 붙이기 Ex) 100000000..0000000L

float : 실수값 뒤에 F 또는 f 를 붙이기 Ex) 3.14f

 

 

참조타입 | Reference

대표적으로 String 형을 볼 수 있다.(그 외에도 매우 다양)

String

String name = "티스토리";

 

String 특징

큰 따옴표(")로 저장한다.

문자열을 저장한다.

 


형 변환

자동 타입 변환 | 묵시적 타입 변환 | Promotion

큰 크기 타입 = 작은 크기 타입

큰 크기 타입 변수에 작은 크기 타입 변수를 대입하는 것

 

예제

(참고로 double 형이 float 보다 큰 타입의 변수)

double d1;
float f1 = 0.4f;
d1 = f1;

 

 

강제 타입 변환 | 명시적 타입 변환 | Casting

정밀도 손실에 주의해야 한다!

Ex) 정수 ↔ 실수

 

작은 크기 타입 = (작은 크기 타입)큰 크기 타입

 

대표적인 예제

정수를 저장하는 작은타입인 int형에

실수형인 double형을 int형으로 강제 형변환하여 저장했더니

소수점이 날아가는 현상

double d1 = 1.8;
int num = (int)double;

System.out.plintln(num);
/* 출력 결과 : 1 */

 


기본 타입 변수 크기 비교

byte(1) < short(2) < int(4) < long(8) < float(4) < double(8)

 

보다시피 크기 비교라고 해서 무조건 바이트 크기로만 비교하는게 아니다

정확히 말하면, 표현할 수 있는 값의 범위가 클 수록 크다고 할 수 있다.

 

그래서 옛날에 기초를 배울 때 long 타입과 float 타입을 비교하며

왜 float이 더 큰 지 궁금해 했던 기억이 난다! 


연산식 자동 타입 변환

서로 다른 타입일 땐 큰 타입으로 자동 변환 후 연산 수행

 

예제

double d1 = 1.5;
int num = 3;

// 출력문
System.out.plintln(d1 * num);
/* 결과 : 4.5 */

num은 정수이지만 계산할 때 3.0으로 계산된다!

즉 실수형으로 바뀌기 때문에 다행이 소수점이 보존된 결과가 나온다!


기본타입 최대값&최소값 상수 정리

상수 정리 표

728x90
반응형