본문 바로가기
STUDY/Java

[Java] 변수

변수(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