2.1 변수
2.1.1 변수란?
- 프로그램은 작업을 처리하는 과정에서 필요에 따라 데이터를 메모리에 저장한다.
- 이 때 변수를 사용
- 변수 : 값을 저장할 수 있는 메모리의 공간
- 변수에는 한 가지 타입의 값만 지정할 수 있다.
2.1.2 변수의 선언
- 변수를 사용하기 위해서는 먼저 변수를 선언해야 한다.
- 타입과 이름 결정
- 타입은 변수에 저장되는 값의 종류와 범위를 결정 짓는 요소.
- 변수 이름은 메모리 주소에 붙여진 이름이다.
- 프로그램은 변수 이름을 통해서 메모리 주소에 접근하여 값을 저장하거나 읽는다.
- 변수 이름은 자바 언어에서 정한 명명 규칙을 따른다.
2.1.3 변수의 사용
변수값 저장
- 변수에 값을 저장할 때 대입 연산자(=)를 사용.
- 변수를 선언하고 처음에 값을 저장할 경우 이러한 값을 초기값이라고 한다.
- 변수에 초기값을 주는 행위를 변수의 초기화라고 한다.
- 변수의 초기값은 코드에서 직접 입력하는 경우가 많은데 소스 코드 내에서 직접 입력된 값을 리터럴(literal)이라고 부른다.
- 정수/실수/문자/논리 리터럴로 구분.
- 리터럴들은 정해진 표기법대로 작성되어야 한다.
- 리터럴은 상수(constant)와 같은 의미지만, 프로그램에서는 상수를 값을 한번 저장하면 변경할 수 없는 변수로 정의하기 때문에 이와 구분하기 위해 리터럴이라는 용어를 사용한다.
변수값 읽기
- 변수는 초기화가 되어야 읽을 수 있고, 초기화되지 않은 변수는 읽을 수가 없다.
2.1.4 변수의 사용 범위
변수는 중괄호 {} 블록 내에서 선언되고 사용된다.
- 클래스, 생성자, 메소드
이 장에서는 모든 변수가 메소드 블록 내에 존재한다고 생각하고 진행.
- 이후 클래스와 생성자를 설명하는 장에서 다시 언급 예정.
메소드 내에 선언된 변수를 로컬 변수(local variable)라고 부른다.
- 로컬 변수는 메소드 실행이 끝나면 메모리에서 자동으로 없어진다.
변수는 메소드 블록 내 어디서든 선언할 수 있지만, 변수 사용은 제한이 따른다.
변수는 선언된 블록 내에서만 사용이 가능하다.
- 메소드 블록 내에서도 여러가지 중괄호 {} 블록들이 존재할 수 있다.
- if, for, while 등.
- 메소드 블록 내에서도 여러가지 중괄호 {} 블록들이 존재할 수 있다.
2.2 데이터 타입
- 모든 변수에는 타입이 있으며 타입에 따라 저장할 수 있는 값의 종류와 범위가 달라진다.
변수를 선언할 때 주어진 타입은 변수를 사용하는 도중에 변경할 수 없다.
코드에서 정상적으로 변수에 올바른 값을 저장하더라도 프로그램이 실행하는 도중에 변수의 값은 변경된다.
- 실행 중에 저장할 수 있는 값의 범위를 초과하면 최소값부터 다시 반복 저장된다.
- byte일 경우 -128(최소값)부터 시작해서 127(최대값)을 넘으면 다시 -128부터 시작하게된다.
- 다른 정수 타입들도 같은 방식으로 처리된다.
- 그러므로 값을 초과하면 엉터리 값이 변수에 저장된다. (쓰레기 값)
- 실행 중에 저장할 수 있는 값의 범위를 초과하면 최소값부터 다시 반복 저장된다.
- 자바는 모든 문자를 유니코드로 처리한다.
- 유니코드는 세계 각국의 문자들을 코드값으로 매핑한 국제 표준 규약.
- 자바에서는 하나의 유니코드를 저장하기 위해 2byte 크기인 char 타입을 제공한다.
- 유니코드에는 음수가 없기 때문에 char 타입의 변수에는 음수 값을 저장할 수 없다.
- 유니코드 표현 범위는 0 ~ 65535, char의 범위도 0 ~ 65535 (2^16)
- 숫자 표현
- short : 2Byte로 표현.
- C 언어와의 호환을 위해 사용되며 비교적 자바에서는 잘 사용되지 않는 타입.
- int : 4Byte로 표현.
- 자바에서 정수 연산을 하기 위한 기본 타입.
- byte타입 또는 short 타입의 변수로 연산을 수행하더라도 int로 변환된 후 연산을 수행하고 결과 또한 int로 반환된다.
- 그러므로 byte나 short를 사용한다고 해서 성능의 차이가 나지는 않는다.
- long : 8Byte로 표현.
- long타입의 변수를 초기화 할 때에는 정수값 뒤에 'L'을 붙인다.
- 8Byte 정수임을 컴파일러에게 알리기위함.
- long타입의 변수를 초기화 할 때에는 정수값 뒤에 'L'을 붙인다.
- short : 2Byte로 표현.
'Work > 책 정리' 카테고리의 다른 글
[리뷰] 오라클 레벨업 - 한빛미디어 (0) | 2017.02.05 |
---|---|
[Java8 in action] Chap6. 스트림으로 데이터 수집 (3) | 2017.02.03 |
[Java8 in action] Chap5. 스트림 활용 (0) | 2017.02.02 |
[Java8 in action] Chap4. 스트림 소개 (0) | 2017.02.01 |
[이것이 자바다] Chap01. 자바 시작하기 (0) | 2017.01.30 |
댓글