변수의 초기화
- 변수는 초기화가 되어야 읽기가 가능하다
int num01; //변수의 선언
int tot01 = num01 + 10; // 변수가 초기화가 되지 않았기에 에러
int num02 = 0;
int tot02 = num02 + 10; // 변수가 초기화 되어 사용 가능
리터럴
- 소스 코드 내에서 직접 입력된 변수의 초기값
ex) int num02 = 3;
num02 변수에서 3이라는 정수형 데이터를 리터럴이라고 한다.
- 리터럴 변수는 정수형, 실수형, 문자형 등에서 사용한다.
변수의 사용범위
- 변수는 {}를 기준으로 상하위 계층관계를 가지고 처리할 수 있다.
- 즉, 상위단계에서 선언된 내변수는 하위에서 호출되어 사용 가능하다.
- 하위 단계에서 선언된 변수는 상위에서 선언 및 호출할 수 없다.
primitive 데이터 타입
- 자바에서는 기본 stack 영역에서 선언 및 호출, 할당되는 기본 데이터 타입으로
정수, 실수, 문자, 논리형이 있다.
cf) 자바는 메모리를 크게 stack, heap 영역으로 나누어 사용한다.
작은 메모리인 기본데이터 유형은 stack 영역에 선언과 저장을 동시에 처리하고 있고, 이런 기본 유형을 모아서 리스트한 배열이나 객체들은 stack영역에는 heap영역의 주소를 저장하고, 실제 배열/객체는 heap영역에 저장 처리한다.
- 메모리의 최소 기억단위인 bit가 8개 모여서 byte가 됨으로 시작되었다.
bit 0/1 -> 7개 이진법으로 모여서 숫자를 처리
- 정수형
byte 1byte -128 ~ 127
char 2byte 0 ~ 65535
문자를 담는데 유니코드로 숫자와 연결하여 처리한다.
short 2byte
int* 4byte (정수형의 default 데이터 유형)
연산자가 들어가는 순간 다른 정수형 데이터 유형이 int형으로 promote된다.
long 8byte
ex) 21억 4천 이상의 데이터인 경우 long형으로 선언하여 처리하여야 하는데,
정수형 기본 유형이 아니기에 L, l을 붙여야 사용할 수 있다.
23431432268427L
byte num02 = 25;
short num03 = 25;
num02 = 257; // 범위가 넘어 에러발생
char ch01 = 'A'; // 문자 한 자는 '' 홋따옴표 사이에 입력
int code = ch01;
System.out.println(ch01); // A 출력
System.out.println(code); // 65 출력
- 실수형
float 4byte
float 유형일 때, F를 붙여서 사용한다.
ex) float f01 = 3.42f;
double* 8byte (실수형의 default 데이터 유형)
- 논리형
boolean true / false
int point = 90;
boolean isPass = point>=80; // 80점 이상일 때 합격
System.out.println("합격여부:"+isPass); // 합격여부:true 출력
boolean isPass2 = false;
System.out.println("결과:"+isPass2); //결과:false 출력