📓 변수(Variable)
📔 변수란?
📔 변수, 상수, 리터럴
- 변수(Variable) : 하나의 값을 저장하기 위한 메모리 공간
- 상수(Constant) : '한 번만' 값을 저장할 수 있는 메모리 공간
- 리터럴(Literal) : 그 자체로 값을 의미 하는 것
int score = 200;
String s = "str"
final int MAX = 200;
📔 변수의 타입
📃 기본형(Primitive type)
- 논리형 : true와 false중 하나의 값을 가짐. 조건식, 논리식계산에 사용
- boolean : 논리값을 가지는 자료형 1byte (0이면 거짓, 1이면 참)
- 문자형 : 문자를 저장하는데 사용. 변수 당 하나의 문자만 저장 가능
- char : 문자를 가지는 자료형 2byte (-2¹⁵ ~ 2¹⁵ - 1)
- 정수형 : 정수값을 저장하는데 사용.
- byte : 이진데이터를 다루는데 사용. 1byte(-2⁷ ~ 2⁷ - 1)
- short : C언어와의 호환을 위해 추가됨. 2byte(-2¹⁵ ~ 2¹⁵ - 1)
- int : 가장 기본적으로 사용되는 정수형 변수. 4byte(-2³¹ ~ 2³¹ - 1)
- long : int의 범위를 넘어서는 정수형에 사용. 8byte(-2⁶³ ~ 2⁶³ - 1)
- 실수형 : 실수값을 저장하는데 사용.
- float : 실수값 저장에 사용.
4byte(부호(S)(1) + 지수부(E)(8) + 가수부(M)(23))
- double : 기본적으로 사용되는 실수형 변수.
8byte(부호(S)(1) + 지수부(E)(11) + 가수부(M)(52))
- 실제 값을 저장
📃 참조형(Reference type)
📔 변수의 선언
📃 변수의 선언 이유
📃 변수의 선언 방법
int num;
📃 명명규칙
- 대소문자가 구분되며 길이에 제한이 없다.
- int A; 와 int a; 는 서로 다른 변수이다.
- 예약어(Reserved word)를 사용해서는 안된다.
- boolean,int,true,false 등 은 불가능.
- 숫자로 시작해서는 안된다.
- top10은 허용하지만 10top은 허용하지 않는다.
- 특수문자는 '_' 와 '$'만을 허용한다.
- $harp는 허용하지만 $#harp는 허용하지 않는다.
- max_num은 허용하지만 max num은 허용하지 않는다.
- 권장사항
- 클래스 이름의 첫 글자는 항상 대문자로 한다.
- 변수와 메소드의 첫 글자는 항상 소문자로 한다.
- 여러 단어 이름은 단어 첫 글자를 대문자로 한다.
- 상수의 이름은 항상 대문자로 한다. 단어는 '_'로 구분한다.
📔 변수에 값 저장하기
📃 변수의 기본값
| 자료형 | 기본값 |
|---|
| boolan | false |
| char | '\u0000' |
| byte | 0 |
| short | 0 |
| int | 0 |
| long | 0L |
| float | 0.0f |
| double | 0.0d 또는 0.0 |
| 참조형 변수 | null |
📃 변수에 값 저장하기
int num;
num = 25;
int num = 25;
📃 변수의 초기화
int x = 50;
int y = 20;
int x = 50, y = 20;
❗ 지역 변수는 사용되기 전에 반드시 초기화한뒤 사용해야한다. (에러발생)
📃 리터럴과 접미사
- Long범위의 리터럴로 초기화 할때, 리터럴뒤에 L을 붙여주어야 한다.
- long num = 10000000000L; (int범위를 넘으므로 L을 붙여야 한다.)
- float의 리터럴로 초기화 할때, 리터럴뒤에 f를 붙여주어야 한다.
📔 변수의 값 읽어오기
- 변수의 값이 필요한 곳에 변수의 이름을 적는다.
int x = 50;
int y = 20;
int sum = x+y;
📔 문자와 문자열
char ch = 'a';
char ch = 'ab';
char ch = '';
String s = "ab";
String s = "A" + "B";
String s = "";
📔 정수의 오버플로우(Overflow)
- 변수는 저장할때 0과1로만 이루어진 bit의 모임으로 저장됨.
- 비트하나 당 2가지 경우의 수가 존재.
- n비트의 변수는 2n개의 리터럴을 저장가능
- 양수 음수 둘다 존재할시, 부호비트로 1비트를 소모함.
- Signed(부호가 존재하는) int : -2³¹ ~ 2³¹ - 1
- Unsigned(부호가 존재하지 않는) int : 0 ~ 2³²