#6. 변수의 타입
1. 변수의 타입
1) 변수의 타잊은 저장할 값의 타입에 의해 결정된다.
- int age = 25; // age [25]
ㄴ 정수 ㄴ 정수 : 변수와 값의 타입 일치
- int age = 3.14; // age [???]
ㄴ 정수 ㄴ 실수 : 변수와 값의 타입 불일치
2) 저장할 값의 타입과 일치하는 타입으로 변수를 선언
- char ch = '가'; // ch[가]
ㄴ 문자형 ㄴ 문자 : 변수와 값의 타입 일치
- double pi = 3.14; // pi[3.14]
ㄴ실수형 ㄴ 실수 : 변수와 값의 타입 일치
2. 값의 타입
1) 값 - 문자 - char
ㄴ 가나다ABC
- 숫자 - 정수 - byte, short, int, long
ㄴ 0, 25, -100
- 실수 - float, double
ㄴ 3.14, -0.1
- 논리 - boolean
ㄴ true, false
3. 변수의 타입은 크게 기본형과 참조형
1) 기본형(Primitive type)
- 논리형 : boolean
- 문자형 : char
- 정수형 : byte, short, int, long
ㄴ1 ㄴ2 ㄴ4 ㄴ8byte
- 실수형 : floatm double
* 오직 8개
- 실제 값을 저장
2) 참조형(Reference type)
- 기본형을 제외한 나머지 (String, System... 등)
- 메모리 주소를 저장(4byte 또는 8byte)
ㄴ40억 ㄴ40억*40억 : 160경 byte
Date today; // 참조형 변수 today를 선언
ㄴ 8개의 변수가 아니므로, 참조형 변수
today = new Date(); // today에 객체의 주소를 저장
ㄴ 객체 생성. 객체의 값이 100이라면 today에는 100이 들어감
* 참조형 변수 = 객체의 주소를 저장
4. 기본형 - 종류와 크기
1) 논리형 : boolean
- true와 false 중 하나를 값으로 갖으며, 조건식과 논리적 계산에 사용된다.
2) 문자형 : char
- 문자를 저장하는데 사용됨, 변수 당 하나의 문자만을 저장할 수 있다.
ㄴ 여러문자는 String
3) 정수형 : byte, short, int, long
- 정수 값을 저장하는데 사용된다. 주로 사용하는 것은 int와 long.
ㄴ아주 큰 정수에 사용
- byte는 이미지나 실행 파일고 ㅏ같은 이진 데이터를 다루는데 사용.
- short는 c언어와의 호환을 위해 사용되나 잘 안쓰인다.
4) 실수형 : float, double
- 실수 값을 저장하는데 사용된다.
종류 / 크기(byte) | 1 | 2 | 4 | 8 |
논리형 |
boolean - true - false |
|||
문자형 |
char - 유니코드 (2byte) |
|||
정수형 | byte | short |
int - 기본 타입 |
long |
실수형 | float |
double - 기본 타입 |
* 1bit = 2진수의 1자리, 1byte = 8bit
* int보다 작으면 short, 길면 long으로 외우면 편함
* floating의 2배라 해서 double로 외우면 편함 (정밀도가 2배)
5. 기본형 - 표현범위
* byte b; 1byte =(8bit)
b=3; // b[3] -> b|0|0|0|0|0|0|0|1|1| ->3(10) = 11(2) // 10진수의 3은 2진수의 11이다.
ㄴ 1bit : 2진수의 한자리 (0, 1)
1bit = | | 2bit = | | |
0,1 = 2개 00,01,10,11 = 4개
ㄴ 2의 1승 ㄴ2의 2승
n비트로 표현할 수 있는 값의 개수 : 2의 n승개
n비트로 표현할 수 있는 부호없는 정수의 범위 : 0~2의 n승-1 // 2의 8승의 경우, 0~255
ㄴ양수 1 ~2의 n승
n비트로 표현할 수 있는 부호있는 정수의 범위 : -2의 n-1승 ~ 2의 n-1승-1
// 2의 8승의 경우, -2의 7승~2의 7승-1, -128~127
* byte -2의 7승 ~ 2의 7승-1
| S | 7 bit |
ㄴ 부호비트(Sign bit)
= | 0 | 7bit | // 128(2의 7승) 0,1의 총합 : 256개 (2의 8승)
| 1 | 7bit | // 128(2의 7승)
* short -2의 15승~2의 15승-1
ㄴ 2byte = 16bit
| S | 15 bit | // 32768(2의 15승) 범위 : -32,768~32,767
* char 0~2의 16승-1
ㄴ 문자는 부호없음 = 부호없는 정수의 범위 : 0~2의 n승-1
| 16bit |
* int -2의 31승~2의 31승-1 // 2의 31승 = 20억
ㄴ 4byte = 32bit
| S | 31bit |
* long -2의 63승~2의 63승-1 // 2의 63승 = 800경
ㄴ 8byte = 64bit
| S | 63bit |
- long 이상의 수(800경) 이상을 희망하면 double or bigint로 진행
* float와 double
- 둘다 큰 범위이나, 정밀도를 위해 double 을 사용
- 나중에 다시 교육 예정.
'프로그래밍 > 자바의 정석' 카테고리의 다른 글
#5. 변수 (0) | 2020.03.05 |
---|---|
#4. JAVA API 설치와 사용법 (0) | 2020.03.05 |
#3. 이클립스 설치 및 사용 (0) | 2020.03.05 |
#2. JDK와 메모장을 활용한 간단한 자바 프로그램 생성 (0) | 2020.03.04 |
#1. JDK 설치 방법 (0) | 2020.03.04 |