변수(Variable)
: 데이터를 저장하는 메모리 공간의 이름(Symbol)자료형(Datatype)
: 변수의 크기와 어떤 종류의 데이터를 저장할 것인지 결정하는 것할당(Assign)
: 변수에 데이터를 저장하는 것변수선언 = 변수와 자료형이 만나는 것
어떠한 종류의 데이터의 형태로 저장할 것인지 결정
-> 기억공간이 만들어짐
할당 = 저장
초기화
int a = 10; // 초기화
int b; // 초기화x
멤버변수
(인스턴스 변수 = instance variable)클래스변수
(스태틱 변수 = static variable)지역변수
(local variable)매개변수
(parameter, argument)크기와 데이터의 종류
자료형(Datatype) // 어느 정도의 크기로 만들 것인지? 어떤 종류의 데이터를 넣을 것인지?
int, float, char, boolean … : 기본 자료형
// java 자체 제공 자료
Book, Movie, Member … : 사용자 정의 자료형
// 사용자가 결정한 자료
int a;
float b;
L-Value = R-Value;
R-Value에 있는 값을 L-Value에 저장(대입)
L-Value = 변수
R-Value = 값
ex.
int a = 10; // 상수
int b = a; // 변수
int c = b*10; // 연산식
int d = even (c); // 메서드 호출문
초기화를 하지 않으면 쓰레기값이 들어감 // 연산이 불가능
// Q. sum이라는 변수에 1부터 5까지의 수를 누적해서 출력하시오.
/*
int sum; // 초기화를 시키지 않음
sum = sum+1;
sum = sum+2;
sum = sum+3;
sum = sum+4;
sum = sum+5;
-> error // 출력값이 15가 되지 않음 (sum을 초기화하지 않았기 때문)
*/
int sum = 0;
sum = sum+1;
sum = sum+2;
sum = sum+3;
sum = sum+4;
sum = sum+5;
-> 출력값 : 15
심볼 테이블이란?
변수가 만들어지면 변수를 관리하는 테이블에 변수 정보가 저장된다.
⚠️ 변수가 선언 되어야 symbol table
이 생성된다.
Q. 왜? 관리를 해야하나요?
-> 변수가 메모리에서 만들어지기 때문이다.
2진수로 표현하지 않고 16진수로 표현하는 이유
2진수 4자리 = 16진수 1자리로 표현 // 간결하게 표현됨
int a;
a = 10;
symbol table
KEY(변수) VALUE(번지)
a(KEY) 100(VALUE)
기본자료형
(PDT-Primitive DataType) : 프로그램에서 기본적으로 제공해주는 자료형
사용자정의자료형
(UDDT-User Define DataType) : 사용자가 만들어서 사용하는 자료형
Data Type | 크기 | 데이터(종류) | Default Value(for fields) |
---|---|---|---|
byte | 1byte | 정수 | 0 |
short | 2byte | 정수 | 0 |
int | 4byte | 정수 | 0 |
long | 8byte | 정수 | 0L |
float | 4byte | 실수 | 0.0f |
double | 8byte | 실수 | 0.0d |
char | 2byte | 문자 | \u0000, null(널) |
boolean | 1byte | 논리(참,거짓) | false |