변수(Variable)
- 값을 저장할 수 있는 메모리의 특정 번지에 붙여진 이름이다
- 변수를 통해 해당 메모리 번지에 하나의 값 저장하고 읽을 수 있다
- 변수는 정수, 실수 등 다양한 타입의 값을 저장할 수 있다
변수의 다양한 속성
- int x; → 이름은 x 주소는 0x1001~0x1004 의 자리를 차지하는 형식
- x=20; 이면 00010100으로 2진수로 저장됨
- 타입 → 변수가 가질 수 있는 값의 범위와 이 값에 대한 연산들의 집합을 의미
- 영역 → 변수 x의 사용이 허락되는 범위
- 수명 → 변수 x가 메모리 주소에 할당되어 있는 기간
변수 선언
- 타입 변수이름 ; “ 으로 선언함
- int x, y, z; 로도 선언이 가능함
변수 이름
- 변수는 글자나 $, _ 로 시작해야함.
- 영어 대소문자를 구분한다
- 첫문자는 소문자, 다음 글자는 대문자 형식으로 작성하는 관례가 있음(maxSpeed)처럼
- 문자수 길이 제한은 없음
- 자바 예약어는 사용 불가함
자바 예약어

값 저장
- = 를 사용해서 저장함
- score = 90; 은 score에 90의 값을 대입한다고 생각하면 됨
- 변수가 최초로 저장될 때 메모리에 변수가 생성되는데 이를 초기화라고 말한다
- 여기서의 값은 초기값이라고 한다
- 선언을 하고 사용을 해야한다!
class Main {
public static void main(String[] args) {
int value;
value = 20;
int result = value + 10;
System.out.println(result);
}
}
변수 값 저장
int x = 3;
int y = 5;
System.out.println("x:" + x + ",y :" y);
int temp = x;
x = y;
y = temp;
System.out.println("x:" + x + ",y :" y);
로컬 변수(Local Variable)
- 메소드 블록 내에서 선언된 변수를 로컬 변수라고 함
기본 타입
기본타입
- 정수 타입 - byte, char, short, int, long
- 실수 타입 - float, double
- 논리 타입 - boolean
정수 타입
- 메모리 사용 크기와 저장되는 값의 허용 범위가 달라 다양하게 있는 것이다.

- byte 는 128이상의 숫자를 선언하면 오류가 발생할 것이다
- long은 1000000000000 이 넘어가면 오류가 난다 허나 1000000000000L 처럼 L을 넣어주면 선언 가능 (Long 타입으로 처리)
- char은 ‘~’ 에 넣어서 저장이 가능(문자), 이는 문자열이 불가능하기에 “”는 안됨
- String a = “asdasd”; 와 같이 문자열은 String 을 활용
리터럴(Literal)
- 소스 코드로 프로그래머가 직접 입력한 값
- 2진수는 0b로 시작한다 (0b1011 = 11)
- 8진수는 0으로 시작한다
- 16진수는 0x로 시작한다 (0X2A0F = 10767)
escape문자
- 문자열 내부에 \ 를 사용해서 특정 문자를 포함 시킬 수 있음
- “나는 \”자바\”를 좋아합니다”; 는 나는 “자바”를 좋아합니다 로 출력이 됨
- \t, \n, \r, \”, \’, \, 등이 있음
논리타입
- boolean은 true와 false의 값을 가짐
타입 변환
- double을 int로, String을 int로 변환하는 것
자동 타입 변환
- 작은 허용 범위 타입이 큰 허용 범위 타입으로는 그냥 바로 대입이 가능하나
- byte < short < int < long < float< double 순으로 대입하면 에러가 안난다
- char타입인 경우는 ‘A’가 int에 들어간다(65로)
변수와 시스템 입출력
- System.out 은 시스템의 표준 출력 장치로 출력
- System.in은 시스템의 표준 입력 장치에서 읽음
- System.in.read()로 입력값을 받을 수 있는데 이는 2개 이상 키다 조합된것을 못읽음
- Scanner를 사용해서 단점을 보완하면 됨
Scanner scanner = new Scanner(System.in);
String inputDData = scanner.nextLine();
기본 타입의 값 비교와 문자열 비교
- 기본타입은 ==
- 무낮열은 equals()를 사용