- Do it! 자바 프로그래밍 입문 온라인 강의를 수강하며 작성하였습니다.
- Section 0. 자바 기본 익히기
- 3강 "변수와 자료형(2)"
- 변수 -> 자료형
프로그램에서 사용되는 자료를 저장하기 위한 공간을 '메모리'라고 하는데,
할당 받은 메모리의 주소 대신 '변수'로 부른다.
변수는 사용하기 전에 선언해야하며, 선언과 동시에 초기화할 수 있다.
public class VariableEx {
public static void main(String[] args) {
int num; //변수 선언
num = 10; //num 변수에 값을 대입
System.out.println(num);
int num2 = 20; //변수 선언과 동시에 초기화
System.out.println(num2);
}
}
변수 선언 이후에 초기화 한 결과와 변수 선언과 초기화를 동시에 한 결과 모두 정상적으로 출력된다.
정수형 | 문자형 | 실수형 | 논리형 | |
---|---|---|---|---|
1바이트 | byte | - | - | boolean |
2바이트 | short | char | - | - |
3바이트 | int | - | float | - |
4바이트 | long | - | double | - |
자료형 | 바이트 크기 | 수의 범위 |
---|---|---|
byte | 1 | -2⁷ ~ 2⁷-1 |
short | 2 | -2¹⁵ ~ 2¹⁵-1 |
int | 4 | -2³¹ ~ 2³¹-1 |
long | 8 | -2⁶³ ~ 2⁶³-1 |
맨 앞 숫자는 부호비트이므로 32비트인 int의 경우에도 맨 앞의 한 비트를 빼서
-2³¹ ~ 2³¹-1 범위로만 수 표현이 가능하다.
-1이 붙는 이유는 모든 비트가 0이면 그 숫자는 0이므로 양수에서 개수가 한 개 빠지게 된다.
자료형 | 설명 |
---|---|
byte | 1바이트 단위의 자료형 동영상, 음악파일 등 실행파일의 자료를 처리할 때 사용하기 좋음 |
short | 2바이트 단위의 자료형 주로 C/C++ 언어와의 호환 시 사용 |
int | 자바에서 사용하는 정수에 대한 기본 자료형 4바이트 단위의 자료형 프로그램에서 사용하는 모든 숫자(리터럴)은 기본적으로 int(4바이트)로 저장됨 32비트를 초과하는 숫자는 long 형으로 처리해야 함 |
long | 8바이트 단위의 자료형 가장 큰 정수 자료형 숫자의 뒤에 L 또는 l을 써서 long 형임을 표시해야 함. |
public class VariableEx2 {
public static void main(String[] args) {
byte bData = -128;
byte bData2 = 128; // error! (byte 자료형은 -128 ~ 127 까지)
int num = 123456789;
int num2 = 12345678900; //error! (32비트 초과)
long num3 = 12345678900L; //long 자료형은 숫자 뒤에 L 또는 l을 붙여줘야 함
}
}
컴퓨터에서는 문자도 내부적으로는 비트의 조합으로 표현한다.
즉, 문자를 변수에 저장하면 문자에 해당하는 코드 값이 저장된다.
- 문자를 위한 코드 값은 문자세트로 정해두었는데, 대표적으로 아스키(ASCII)와
유니코드(Unicode)가 있다.- 아스키 : 1바이트로 영문자, 숫자, 특수문자 등을 표현
유니코드 : 한글과 같은 복잡한 언어를 표현하기 위한 표준 인코딩
(자바는 유니코드 UTF-16 인코딩을 사용한다.)- 인코딩 : 각 문자에 따른 특정한 숫자 값(코드 값)을 부여
디코딩 : 숫자 값을 원래의 문자로 변환
public class CharacterEx {
public static void main(String[] args) {
char ch = 'A';
System.out.println(ch);
System.out.println((int)ch);
ch = 66; // 정수를 넣어도 코드값에 해당하는 문자가 출력
System.out.println(ch);
int ch2 = 67;
System.out.println(ch2);
System.out.println((char)ch2);
}
}
변수에 문자, 숫자를 넣었을 때, 코드값에 해당하는 문자들이 정상적으로 출력된다.
실수 자료형은 정수 자료형과 다르게 부동 소수점 방식으로 표현한다.
무한의 실수를 표현하기 위해 실수를 지수부와 가수부로 표현한다.
public class DoubleEx {
public static void main(String[] args) {
double dNum = 3.14; //실수는 double형이 기본임
float fNum = 3.14F; //float형은 뒤에 F를 붙여야 함
}
}
논리값 true(참), false(거짓)을 표현하는 자료형으로, boolean으로 선언한다.
public class BooleanEx {
public static void main(String[] args) {
boolean isMarried = true;
System.out.println(isMarried);
}
}
- 자료형이 필요한 이유
변수를 선언할 때에는 변수가 사용할 메모리 크기와 타입을 구분하기 위해 자료형을 사용- 지역변수 자료형 추론 (local variable type inference)
변수에 대입되는 값을 보고 컴파일러가 추론 (지역변수에서만 사용 가능)
한 번 타입이 정해지면 변경은 불가능하다. (처음에 int로 추론했으면 문자열로 변환 불가능)