변수란, 하나의 값을 저장할 수 있는 메모리 공간이다.
int age; //정수(int)값을 저장할 수 있는 age 변수 선언
double value; //실수(double)값을 저장할 수 있는 value 변수 선언
int x,y,z;
작성규칙 | 예 |
---|---|
첫 번째 글자는 문자이거나 '$', '_' 이어야 하고 숫자로 시작할 수 없다 | 가능:price, $price, _companyName 안됨: 1v, @speed, $#value |
영어 대소문자가 구분된다(필수) | firstname과 firstName은 다른 변수 |
첫 문자는 영어 소문자로 시작하되, 다른 단어가 붙을 경우 첫 문자를 대문자로 한다.(관례) | maxSpeed, firstName, carBodyColor |
문자 수(길이)의 제한은 없다. | |
자바 예약어는 사용할 수 없다.(필수) |
분류 | 예약어 |
---|---|
기본 데이터 타입 | boolean, byte, char, short, int, long, float, double |
접근 지정자 | private, protected, public |
클래스와 관련된 것 | class, abstract, interface, extends, implements, enum |
객체와 관련된 것 | new, instanceof, this, super, null |
메소드와 관련된 것 | void, return |
제어문과 관련된 것 | if, else, switch, case, default, for, do, while, break, continue |
논리값 | true, false |
예외 처리와 관련된 것 | try, catch, finally, throw, throws |
기타 | transient, volatile, package, import, synchronized, native, final, static, strictfp, assert |
변수를 사용한다는 것은 변수에 값을 저장하고 읽는 행위를 말한다.
int score; //변수 선언
score=90; //값 저장
int score=90;
소수점이 없는 정수 리터럴은 10진수로 간주한다.
0, 75, -100
0으로 시작되는 리터럴은 8진수로 간주한다.
02, -04
0x 또는 0X로 시작하고 0~9 숫자나 A,B,C,D,E,F 또는 a,b,c,d,e,f로 구성된 리터럴은 16진수로 간주한다.
0x5, 0xA, 0xB3, 0xAC08
정수 리터럴을 저장할 수 있는 타입은 byte, char, short, int, long과 같이 5개가 있다.
소수점이 있는 리터럴은 10진수 실수로 간주한다
0.25, -3.14
대문자 E 또는 소문자 e가 있는 리터럴은 10진수 지수와 가수로 간주한다.
5E7
0.12E-5
실수 리터럴을 저장할 수 있는 타입은 float, double이 있다.
작은 따옴표(')로 묶은 테스트는 하나의 문자 리터럴로 간주한다.
'A', '한', '\t', '\n'
역슬래쉬(\)가 붙은 문자 리터럴은 이스케이프(escape) 문자라고도 한다.
이스케이프 문자 | 용도 | 유니코드 |
---|---|---|
'\t' | 수평 탭 | 0x0009 |
'\n' | 줄 바꿈 | 0x000a |
'\r' | 리턴 | 0x000d |
'\"' | "(큰따옴표) | 0x0022 |
'\'' | '(작은따옴표) | 0x0027 |
'\\' | \ | 0x005c |
'\u16진수' | 16진수에 해당하는 유니코드 | 0x0000~0xffff |
문자 리터럴을 저장할 수 있는 타입은 char 하나뿐이다.
"대한민국"
"탭 만큼 이동\t 합니다"
"한줄 내려 쓰기 \n 합니다."
문자열 리터럴을 저장할 수 있는 타입은 String 하나뿐이다.
true, false
논리 리터럴을 저장할 수 있는 타입은 boolean 하나뿐이다.
❌잘못된 예
int value; //변수 value 선언(초기화 안 됨)
int result=value+10; //변수 value 값을 읽고 10을 더한 결과값을 변수 result에 저장
⭕올바른 예
int value=30;
int result=value+10;
변수는 선언된 블록 내에서만 사용이 가능하다.
int v1=15;
if(v1>10){
int v2=v1-10;
}
int v3=v1+v2+5; //v2 변수를 사용할 수 없기 때문에 컴파일 에러가 생긴다