2swan
변수와 자료(2) 본문
● 변수
- 프로그램에서 사용되는 자료를 저장하기 위한 공간
- 할당받은 메모리의 주소 대신 부르는 이름
- 프로그램 실행 중에 값 변경 가능
- 사용되기 이전에 선언되어야 한다.
- varialbe이라고 한다
● 변수의 선언과 초기화
int num; //num 이름의 변수 선언
int num = 0; //num 변수 선언과 동시에 0으로 초기화
int의 역할 : number 변수의 데이터 타입을 정의
int의 의미 : number는 정수이며 4바이트 메모리 공간을 사용한다.
● 변수 선언 시 유의점
- 변수의 이름은 알파벳, 숫자, _, $로 구성된다.
- 대소문자를 구분한다
- 변수의 이름은 숫자로 시작할 수 없고, 키워드도 변수의 이름으로 사용할 수 없다.
- 이름 사이에 공백이 있을 수 없다.
변수의 이름을 정할 때는 변수의 역할에 어울리는, 의미 있는 이름을 지어야 한다.
정수형 | 문자형 | 실수형 | 논리형 | |
1바이트 | byte | boolean | ||
2바이트 | short | char | ||
4바이트 | int | float | ||
8바이트 | long | double |
변수가 사용할 공간의 크기와 특성에 따라 자료형을 사용하여 변수를 선언한다.
ex) int num;
● int
- 자바에서 사용하는 정수에 대한 기본 자료 형
- 4바이트 단위의 자료 형
- 프로그램에서 사용하는 모든 숫자(리터럴)는 기본적으로 int(4바이트)로 저장된다
- 32 비트를 초과하는 숫자는 long 형으로 처리해야 한다
● long
- 8바이트 자료형
- 가장 큰 정수 자료 형
- 숫자의 뒤에 L 또는 l 을 사용해서 long 형임을 표시해야 한다
ex) int num =123123123123; // 오류!! int의 범위 넘은 값
long num = 123123123123; // 오류!!
숫자(리터럴) 123123123123은 기본형이 int인데 int의 범위가 넘는 수
=>숫자(리터럴) 123123123123을 long으로 처리하도록 명시
long num = 123123123123L; // 1과 구분하기 위해서 되도록 대문자 L 사용
● char(문자 자료형)
- 컴퓨터에서는 문자도 내부적으로는 비트의 조합으로 표현
- 자바에서는 문자를 2 바이트로 처리
- 인코딩 : 각 문자에 따른 특정한 숫자 값(코드 값)을 부여
- 디코딩 : 숫자 값을 원래의 문자로 변환
● 문자 세트
- 문자 세트 : 문자를 위한 코드 값(숫자 값)들을 정해 놓은 세트
- 아스키(ASCII) : 1바이트로 영문자, 숫자, 특수문자 등을 표현한다.
- 유니코드(Unicode) : 한글과 같은 복잡한 언어를 표현하기 위한 표준 인코딩 UTF-8, UTF-16 이 대표적
- 문자를 변수에 저장하면 문자에 해당하는 코드 값이 저장됨
- 자바는 유니코드 UTF-16 인코딩 사용한다.
● float, double(실수 자료형)
- 실수는 기본적으로 long으로 처리한다
- float 형으로 사용하는 경우에 숫자에 f, F 를 명시한다.
● 자료형 없이 변수 사용하기 (자바 10)
- 자료형이 필요한 이유 : 변수를 선언 할 때는 변수가 사용할 메모리 크기와 타입을 구분하기 위해 자료형을 사용
- 지역 변수 자료형 추론(local variable type inference) : 변수에 대입되는 값을 보고 컴파일러가 추론
var num = 10; int num = 10;
var dNum = 10,0; → double dNum = 10.0;
var str = "Hello"; String str = "Hello"