본문 바로가기
프로그래밍/Java

[Java] 데이터형(Data type)

by 소꿍 2020. 8. 9.

Java의 데이터형

1. 기본 데이터형(PDT, primitive data type)

수치형: 정수형-byte, short, int(기본형), long / 실수형-float, double(기본형)

논리형: boolean

문자형: char

 

2. 참조 데이터형(RDT, reference data type)

클래스, 배열, 인터페이스 등 기본 데이터형을 제외한 나머지 데이터형

 


리터럴(Literal)

Java 언어가 처리하는 실제 데이터. 데이터 자체를 리터럴이라고 한다.

  • 문자 리터럴: 하나의 문자. ''(single quotes)으로 표현한다.
    문자열은 반드시 ""(double quotes)로 표현한다.
  • 정수 리터럴: 일반적인 정수 데이터. 10진수, 8진수, 16진수로 표현 가능
    int보다 큰 값은 값 마지막에 L을 추가하여 long 타입으로 표현할 수 있다.
  • 실수 리터럴: 소수점을 가진 실수 데이터. 실수형의 기본은 double
  • 논리형 리터럴: true/false

데이터형(Type) 변환

데이터가 프로그램 실행 중에 원래의 데이터형이 아닌 새로운 데이터형으로 변경되는 것이다. 같은 종류의 데이터형으로만 변환 가능하다.(기본형->기본형/참조형->참조형)

 

1. 묵시적 형 변환(promotion, 자동 형 변환)
수치형은 기본적으로 데이터형이 큰 쪽으로 자동 변환이 가능하다.(up casting)
byte -> short -> int -> long -> float -> double -> char -> int

큰 타입의 데이터와 작은 타입의 데이터가 연산될 때, 결과는 큰 타입으로 자동 변경된다.
예)

int n = 10;
float f = 10.2f;
double d = n + f; //n과 f의 연산 결과는 더 큰 타입인 double이 된다.

 

int보다 작은 데이터형 간 연산 결과는 int로 자동 변경된다.

예)

short s = 10;
short s2 = 20;
short s3 = s + s2; //에러 발생

 

문자열(String)과 다른 데이터형 간 더하기(+) 연산자 사용 시 문자열로 자동 변경된다.

예)

String s = "Hello" + 1 + 2;// Hello12

System.out.println("" + 1 + 2);// 문자열 "12"가 출력됨

 

2. 명시적 형 변환(type casting, 강제 형 변환)

작은 데이터형으로 변환되기 때문에 데이터 손실이 일어날 수도 있으며, down casting이라고도 한다.

 

문법)

(데이터형)값;

int num = 10;
short s = (short)num; //num을 short로 강제 형 변환함

 

'프로그래밍 > Java' 카테고리의 다른 글

[Java] equals(), ==, compareTo()  (0) 2020.08.30
[Java] 연산자(Operator)  (0) 2020.08.12
[Java] 변수(Variables)와 상수  (0) 2020.08.11
[Java] 식별자(identifier)  (0) 2020.08.09
[Java] Java의 개요  (0) 2020.08.09

댓글