기본자료형
1. 정수형
byte와 short
- byte: 1바이트 단위의 자료형 동영상, 음악 파일, 실행 파일의 자료를 처리할 때 사용한다.
- short: 2바이트 단위의 자료형 C/C ++ 언어와 조합 시 사용한다.
현업에서는 잘 사용되지 않는다고 한다.
(예전과 다르게 메모리를 아껴쓸 필요가 없기 때문)
int
- 자바에서 사용하는 정수에 대한 기본 자료형이다.
- 4바이트 단위의 자료형이다.
- 프로그램에서 사용하는 모든숫자(리터럴)은 int로 저장된다.
- 32 비트를 초과하는 숫자는 long 자료형으로 처리한다.
long
- 8바이트 자료형이다.
- 숫자의 뒤에 알파벳 L또는 l을 써서 long형임을 표시한다.
int num = 12345678900 //오류
long lnum = 123456789 //오류
long lnumber = 12345678900: //ok
2. 실수형
1. 부동소수점 방식
- 실수는 정수 보다 정밀하기 때문에 정수와는 다른 방식으로 표현해야한다.
- 부동 소수점 방식으로 실수 값 0.1표현한다.
- 지수부와 가수부로 표현 한다.
- 정규화 : 가수가 밑수보다 작은 한 자리까지 가수로 표현 되는 것
2. float형과 double형
-
float 형 -- 부호비트 , 지수부(8비트),가수부(23비트) 32비트로 표현한다.
-
double 형 -- 부호비트 , 지수부(11비트), 가수부(52비트) 64비트로 표현한다.
현업에서는 대부분 double 형을 사용한다.
3. 부동 소수점 방식의 오류
지수와 가수로 나타내는 부동 소수점 방식에서는 지수부가 0을 표현할 수 없기 때문에 약간의 오차가 발생할 수 있다.
3. 문자형
1. 문자도 정수로 표현한다.
- 어떤 문자를 컴퓨터 내부에서 표현하기 위해 특정 정수 값을 정의한다.
- A는 65
- 문자세트: 각 문자를 얼마로 표현할 ㄳ인지 코드 값을 모아둔 것을 문자세트라한다. (ex.ASKII,eus-kr,utf-8,utf-16)
- 자바는 문자를 나타내기 위해 UNICODE를 사용한다..
2. 문자형 변수 선언과 사용하기
4. 논리형
- true(참), false(거짓) 두 가지만 나타낸다
- 1바이트를 사용 한다.
- 값이 존재하는지, 배열이 비었는지, 결과가 참인지 거짓인지등을 표현
- boolean 을 사용하여 선언한다.
지역 변수 자료형 없이 사용하기 (자바 10 지원 됨)
- Local variable type inference (지역 변수 타입 추론)
- 추론 가능한 변수에 대한 자료형을 선언하지 않는다.
- 한번 선언하여 추론 된 변수는 다른 타입의 값을 대입 할 수 없다.
- 지역 변수만 사용 가능하다.
5. 변하지 안는 상수와 리터럴, 변수의 형 변환
상수(constant) 선언하기
- 상수는 변하지 않는 수이다.
- 원주율 3.14, 1년 12개월 등
- final 예약어를 사용하며 선언한다.
- 상수를 사용하면 변하지 않는 값을 반복하여 사용할 때 의미있는 문자로 인식하기 쉽고 혹, 변하더라도 선언한 부분만 변경하면 되므로 수정할 필요가 없다.
package ch10;
publci class ConstantTest {
public static void main(String[] args) {
final int Max_NUM = 100;
final int MIN_NUM;
// 상수를 선언할때 대문자로 선언하고 길 경우 _를 사용한다.
MIN_NUM = 0;
System.out.println(MAX_NUM);
System.out.println(MIN_NUM);
}
}
리터럴(literal)
- 프로그램에서 사용하는 숫자,문자,논리값을뜻한다.
- 리터럴은 상수 풀에 있다.
- 정수 리터럴은 int 로 실수 리터럴은 double로 저장됨 정수의 범위가 넘어가는 경우는 L,l을 , floar로 사용하려는 경우는 F,f 식별자를 써줘야 한다.
형병환(type conversion)
- 서로 다른 자료형 간에 연산등의 수행을 위해 하나의 자료형으로 통일하는 것
- 묵시적 형 병환(explicit type conversion)과 명시적 형 변환(implicit type conversion)이 있다.
묵시적 형변환
- 바이트 크기가 작은 자료형에서 큰 자료형으로 형 변환은 자동으로 이루어 진다.
- 덜 정밀한 자료형에서 더 정밀한 자료형으로 형 변환은 자동으로 이루어 진다.
명시적 형변환
- 바이트 크기가 큰 자료형에서 작은 자료형으로의 형 변환은 값의 손실이 일어나기 떄문에 자동 형변환이 일어나지 않는다.
- 하지만 자료형앞에 바꾸고자 자료구조를 작성하면 명시적으로 형변환이 가능하다.
- 자동 형변환이 아니기 때문에 값의 손실이 일어날 수도 있다.
byte bNum = 10;
int iNum = bNum;
int iNum1 = 20;
float fNum = iNum2;
int iNum = 10;
byte bNum = (byte)iNum;
double dNum = 3.14;
int iNum2 = (int)dNum;