1. 변수(Varable)

- 변하는 값
- 하나의 값을 저장하는 메모리(Ram)상의 공간

2. 상수 와 리터럴

- 상수   : 변하지 않는 값 상수는 변하지 않는 값을 말합니다.
- 리터럴 : 변수에 대입하는 상수 데이터 

3. 데이터타입(Data Type)

- 데이터타입의 선택은 리터럴의 타입을 보고 결정

1. Primitive Type(원시 타입, 기본 타입)
  - 더 이상 분리 할 수 없는 데이터
	   

	1) 숫자
			a. 정수형 : 소숫점이 없는 숫자
					- byte     1byte    -128 ~ 127       Bit를 다룰 때 주로 사용
					- short    2byte    -32768 ~ 32767   C 언어와의 호환
					- int      4byte    -20억  ~ 20억
					- long     8byte    -?? ~ ??         
						-- int 와 구별하기 위해 숫자 뒤에 영문자 L(l)을 작성
						-- long num = 10L;

			b. 실수형 : 소숫점이 있는 숫자
					- float    4byte    소숫점 7자리
						-- double. double과 구별하기 위해 숫자 뒤에 F(f)를 작성 float는 double과 구별하기 위해 뒤에 F를 작성
						-- float f = 3.2F;
					- double   8byte    소숫점 15자리

	2) 문자
				- char   char  2byte 
				- 문자 한글자
				- 리터럴 앞뒤로 ' ' 로 감싸야 함
				- char ch = 'a';

	3) 논리
				- boolean  boolean 1byte
				- 값은 true, false 둘중 하나를 담을 수 있음

2. Reference Type (참조타입)
		- Primitive Type을 제외한 나머지 전부
		- Class가 데이터타입 임
		- 사용자 정의 데이터타입

		1) String (문자열)
			-- 앞 뒤로 " " 감싸야 함
			-- String name = "iu";

4. 변수 선언 공식

- 데이터타입 변수명;

5. 초기화

- 선언된 변수에 최초로 값을 대입
- 변수 사용시 초기화 하지 않으면 사용 할 때 에러 발생

6. 형변환(Cascading, 형태의 변환, 데이터타입 변경 )

- 연산은 같은 데이터타입 끼리만 연산 가능
- primitive type 끼리만 가능
- 단, boolean은 제외

1. 형식

변수A = (변환할 데이터타입명) 변수B;

2. 강제형변환
	- 큰타입에서 부터 작은타입으로 변환
	- Data의 표현 갯수가 큰것부터 Data의 표현 갯수가 작은것
	- 값의 변화가 있을 수 있음
byte <- short <- int <- long <- float <- double

3. 자동형변환
	- 작은 타입에서 큰타입으로 변환
	- 값의 변화가 없음
byte -> short -> int -> long -> float -> double

7. OverFlow & UnderFlow