이 포스팅은 Java의 정석을 공부하며, 정리의 목적으로 작성되었습니다.
Chapter 02 변수(Variable)
변수(variable)
값을 저장할 수 있는 메모리상의 공간을 의미
변수의 선언과 초기화
1. 선언 방식
ex) int age;
- 변수타입(ex. int) : 어떤 타입인지를 지정하는 것 / 변수타입에 알맞은 크기의 저장공간이 확보됨
- 변수이름(ex. age) : 변수에 붙인 이름으로 메모리 공간에 이름을 붙여주는 것 / 저장공간은 변수이름을 통해 사용 가능
2. 초기화
ex) int age = 20;
- 초기화란, 변수를 사용하기 전에 처음으로 값을 저장하는 것
- 공유자원이므로 쓰레기값이 남아있을 수 있기 때문에, 초기화를 해야 함
- 변수의 값을 저장할 때는 대입 연산자 =을 이용함
- 타입이 같은 경우 콤마를 구분자로 하여 여러 변수를 한 줄에 선언하기도 함 (ex. int a=0, b=1;)
3. 값 가져오기
- 변수에 저장된 값을 사용하려면 변수의 이름을 적어주면 됨 (ex. int b = a+10;)
변수 명명규칙
1. 대소문자 구분 / 길이 제한 X
2. 예약어 (ex. for, while ...) 사용 X
3. 숫자로 시작할 수 없음
4. 특수문지는 '_','$'만 허용
(그 외 자바 프로그래밍에서는 클래스는 첫 글자는 대문자로 시작, 여러 단어로 이루어진 경우 첫 글자는 대문자로, 상수는 모두 대문자로 표시 등의 규칙이 있다.)
변수의 타입
1. 자료형 : 값의 종류에 따라 값이 저장될 공간의 크기와 저장형식을 정의한 것
자료형은 크게 두가지로 나누어짐
- 기본형 : 실제 값을 저장
- 참조형 : 주소를 값으로 저장 (ex. 클래스이름 변수이름;) / 참조변수는 null 또는 객체의 주소를 값으로 가짐
기본형 cf. 1byte = 8bit
1. 논리형 : boolean (1byte)
2. 문자형 : char (2byte)
3. 정수형 : byte (1byte), short(2byte), int(4btye), long(8byte)
4. 실수형 : float(4byte), double(8byte)
*실수는 부동소수점 형태로 저장되며, 정밀도가 변수를 선택하는 중요한 요소 중 하나
상수와 리터럴
1. 상수 : 변수와 달리 한번 값을 저장하면 다른 값으로 변경 불가 / 그러므로, 선언과 동시에 초기화 필수
ex) final int MAX_SIZE = 10;
- 상수를 사용하면, 코드의 이해와 수정이 용이함
2. 리터럴 : 그 자체로 값을 의미하는 것 / '1','A','3.14'와 같은 상수 값
- 리터럴의 접미사
논리형 : 없음 / 정수형 : L(long), 없으면 int / 실수형 : f (float), d(double), 없으면 double / 문자형 : 없음 / 문자열 : 없음
- 진수 표현
16진수 : 0x / 8진수 : 0 / 10진수 : 0b
- 제곱 표현
e (ex. 10e3 -> 10^3 / 10e-3 -> 10^(-3))
출력
1. 출력시 : printf() 사용
2. 지시자
- %f : 부동 소수점의 형식으로 출력
- %e : 지수 표현식의 형식으로 출력
- %c : 문자로 출력
- %f : 문자열로 출력
비트와 바이트
1. 비트 : 컴퓨터가 값을 저장할 수 있는 최소 단위 (0or 1)
2. 바이트 : 8bit
3. 워드 : cpu가 한번에 처리할 수 있는 데이터의 크기 (ex. 32비트 cpu = 4btye = 1word)
음수의 2진 표현
1. 음수를 표현할 때에는 2의 보수법을 사용
(왼쪽 첫번째 비트(MSB)만 변경할 경우, 0이 2개가 생기는 문제가 발생하므로 2의 보수법을 사용한다)
n의 보수는 더했을 때 n이 되는 수를 말함
2의 보수 = 1의 보수 + 1
문자열 관련 용어 정리
1. 유니코드 : 문자가 숫자로 변환될 때 사용하는 표
2. 인코딩 : 문자 -> 코드
3. 디코등 : 코드 -> 문자
정수 및 실수 관련 용어 정리
1. 오버플로우 : 타입이 표현할 수 있는 값의 범위를 넘어서는 것 / 오버플로우가 발생하면 예상과 다른 결과를 얻을 수 있음
2. 언더플로우 : 실수형으로 표현할 수 없는 작은 값 / 이 때. 변수 값은 0이 됨
형변환
1. 형변환이란, 변수 또는 상수의 타입을 다른 타입으로 변환하는 것 ex) int socre = (int)a; //a는 double형
2. 넓은 범위에서 좁은 범위로 변환 -> OK / 좁은 범위에서 넓은 범위로 재변환하는 경우, 값의 오차 발생할 수 있음
3. 자동 형변환 : 형변환이 없는 경우, 기존의 값을 최대한 보존할 수 있는 타입으로 자동 형변환 함
'IT & 개발 > Java의 정석' 카테고리의 다른 글
Java의 정석 3판 4장 (0) | 2021.10.23 |
---|---|
Java의 정석 3판 3장 (0) | 2021.10.23 |
Java의 정석 3판 1장 (0) | 2021.10.20 |