변수(Variable) 는 하나의 메모리를 담는 공간을 의미합니다.
변수를 설정하는 방법은 아래와 같습니다.
int num = 10;
위와 같이 직접 입력된 값을 리터럴(literal) 이라고 합니다.
리터럴은 상수(constant) 와 비슷한 의미이지만, 리터럴이 보다 '원천적인 값' 을 의미합니다.
* 상수 : '값을 한 번 지정하면, 변경할 수 없는 변수' 를 의미.
변수 선언은 블록( { } ) 안에 선언 할 수 있습니다.
ㅁ 기본 데이터 타입
구분 |
타입 |
크기 |
정수형 |
byte |
1 byte |
char |
2 byte |
|
short |
2 byte |
|
int |
4 byte |
|
long |
8 byte |
|
실수형 |
float |
4 byte |
double |
8 byte |
|
논리형 |
boolean |
1 byte |
1) 정수
( * long 타입 은 뒤에 'L' 이 붙는다. ex) 3L )
( * 'char' 데이터 타입만 다룬다. )
※ char 타입은 '문자' 를 다룬다.
문자열은 'String' 클래스를 통해 선언할 수 있습니다. cf) String 은 데이터 타입 X
자바는 기본적으로 모든 문자를 유니코드(Unicode) 로 처리합니다.
이 중, 0~127 에 해당하는 문자는 아스키 코드로 할당됩니다.
( 따라서 예제에서 숫자지만, 문자로 표현되는 것입니다. )
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "HELLO";
char a1 = 65; char a2 = 'A';
System.out.println(a1); // 'A'
System.out.println(a2); // 'A'
}
2) 실수
# float : 4 byte (32bit) [ 지수 (8bit) + 가수 (23bit) = 32bit ]
# double : 8 byte (64bit) [ 지수 (11bit) + 가수 (52bit) = 64bit ]
자바는 기본적으로 실수 리터럴를 double 형으로 인식합니다.
float 의 경우, 'F' or 'f' 를 뒤에 붙여야합니다.
3) 논리
# True & False
ㅁ 타입변환
타입변환은 묵시적 변환과 강제적 변환이 있습니다.
묵시적 변환은 작은 타입(byte 수가 상대적으로 작은) 을 큰 타입의 변수에 담는 것을 의미합니다.
이런 경우, 손실 없이 데이터의 타입만 변환됩니다.
char c = 'A';
int i = c;
System.out.println(i);
강제적 변환은 다른 말로 'Casting' 이라고 합니다.
이 경우는 큰 데이터 타입을 작은 데이터 타입으로 변환하는 경우 사용합니다.
방법은 변환할 데이터 앞에 () 로 변환할 타입으로 명확하게 작성해주는 것입니다.
강제적 변환은 데이터 손실이 발생할 수 있습니다. ( 대입하는 변수 타입이 작은 타입이기 때문에 )
대표적으로 사용되는 경우가, 실수를 정수로 변환하는 과정입니다.
이 경우, 소수점은 버려집니다.
public static void main(String[] args) {
// TODO Auto-generated method stub
double data = 1.235;
int i = (int)data;
System.out.println(i); // 1
}
타입이 다른 데이터 타입 간 연산이 발생하면, 결과는 데이터 타입이 큰 타입으로 반환됩니다.
'STUDY > Java' 카테고리의 다른 글
[Java] 참조타입(Reference) (0) | 2019.11.04 |
---|