자료형(data type)
자료형이란 컴퓨터에서 사용하는 데이터의 종류를 이야기 한다.
논리형, 정수형, 실수형, 클래스형이 있다.
자료형마다 데이터의 크기가 지정되어 있는데 이것은 메모리를 효율적으로 사용하기 위함이다.
아주 작은 데이터를 저장하는데 큰 공간을 사용하거나
커다란 값을 작은 공간에 나누어 저장하는 것은 비효율적이다.
저장할 값의 크기에 따라 알맞은 자료형으로 공간을 할당하도록 정해 놓은 것이다.
1.논리형 자료형
boolean : 사용바이트 1byte,
입.출력범위 : true/false => 형변환이 안된다
예) boolean bool = false;("false",'false'는 안된다)
실행결과
2.정수형 자료형
byte : 사용바이트 1byte,
입.출력범위 : -128 ~ 127
예) byte by = 123;(초기화를 꼭 시켜줘야 한다 - 스택영역에 저장)
실행결과
char : 사용바이트 2byte,
입.출력범위 : 0 ~ 65,536(유일한 unsigned data)
유니코드를 도입해서 2Byte로 이루어져 있다
예) char ch = 65('A'의 아스키 코드 값)
char ch = 'A'(작은따움표는 ASCII코드 값을 의미한다)
char ch = '\u0041';(\u는 유니코드를 의미하는 표시이고 뒤의 4자리는 'A'를 16진수로 표현한 값이다.
실행결과
외워두면 유용한 아스키 코드와 문자
short : 사용바이트 2byte,
입.출력범위 : -2^15~2^15-1(-32,768 ~ 32,767)
예) short sh = 12345;
정수형이며 잘 사용되지 않는다.
int : 사용바이트 4byte,
입.출력범위 : -2^31~2^31-1(-2,147,483,648~2,147,483,647)
예) int i = 100;
4byte 메모리를 기억, 모든 정수의 기본 자료구조가 int형이다.
정수 연산 시에 발생하는 결과 값은 모두 int형으로 표현
byte a = 10; byte b = 20; a+b => byte형이라도 + 연산자를 사용하면 int형 30이 된다
long : 사용바이트 8byte
입.출력범위 : -2^63~2^63-1(-9,223,372,036,854,775,808~9,223,372,036,854,775,807)
초기화 할 때 l이나 L을 붙여야 한다.
예) long lo = 123356L;
실행결과
3.실수형 자료형
float : 사용바이트 4byte,
입.출력범위 : 1.4E-45 ~ 3.402823E38
예) float f = 12.34f;
기본 자료형이 아니므로 초기화 할 때 반드시 f나 F를 붙여줘야 한다.
double : 사용바이트 8byte,
입.출력범위 : 4.9E-324 ~ 1.8E308
예) double du = 12345.789;
실수형 기본 자료형으로 8byte범위를 나타낸다
실행결과
실수를 0으로 나누었을 때 무한대의 값을 표기하는 Infinity라는 예약어가 사용됨
0을 실수0.0으로 나누었을 때 수가 아닌 값을 표현하기 위해 NaN이라는 예약어가 사용됨
4.클래스형 자료형
String : 사용바이트 4byte(레퍼런스형),
입.출력범위 : 무한대
예) Sting str="hellojava";
String의 S는 대문자(클래스이므로)
클래스의 자료형은 초기화를 해 줄 필요가 없다.(동적할당 메모리영역에 저장)
클래스변수는 무조건 4byte이며, 문자열을 처리할 수 있는 자료형처럼
사용할 수 있도록 만들어졌다.
실행결과
Promosion 과 Casting을 이용한 자료형의 변환
형 변환이란 위의 자료형 변수들에 저장된 값을 다른 자료형 변수에 집어 넣는 방식을 말한다.
- 자동 형 변환(Promosion) :
큰 자료형 변수에 작은 자료형 변수를 넣을 경우
에러는 발생하지 않으나, 메모리 공간이 낭비된다.
- 강제(명시) 형 변환(Casting) :
작은 자료형 변수에 큰 자료형 변수의 값을 대입하는 경우
반드시 형 변환이 이루어져야만 한다. 안 하면 에러발생
- 기준
1) 자료형들의 공간 범위(크기)를 기준으로 한다.
- short a=10; char b=a; 라고 하면 오류가 발생
short형은 -32,768~32,767이고 char은 65,535까지 이므로 음수가 되었을 경우를
생각해서 casting되어야 한다. char b=(char)a;
예) byte a=12; char b=a;
byte a=12; short b=a;
char a=12; short b=a;
2) 실수형 자료형은 정수형 자료형보다 큰 자료형이다
- 실수는 무조건 정수보다 크다(무조건 외우자)
**초기화 에러
- long a = 12; 이러면 int 12를 long형 a에 저장하는 자동 형 변환이 일어난다.
- l,L을 안 붙여서 나타나는 현상
- float f = 12.5; 이러면 에러가 난다.
- double 12.5를 float형 f에 넣을 때는 강제 형 변환을 해 줘야 한다.
- f,F를 안 붙여서 나타나는 현상
자료형은 기본적으로 이해하도록 한다.
'교육자료 > Java' 카테고리의 다른 글
Java 연산자(Operator) (0) | 2017.06.11 |
---|---|
Java 기본 입출력 (0) | 2017.06.11 |
Java 변수와 상수 (0) | 2017.06.07 |
프로그래밍 공부에 필요한 개념1(CPU, Memory, HDD) (0) | 2017.06.02 |
Eclipse 자바 통합개발환경 설정하기 (0) | 2017.05.31 |