변수
by 민갤
변수 Variable
하나의 값을 저장하는 메모리 공간.
변수 선언
타입 이름;
타입이 필요로 하는 크기의 메모리 공간을 확보한다.
생성된 공간은 이름을 통해 사용한다.
변수 타입 Type
값의 종류.
값이 정수면 변수의 타입도 정수(byte, short, int, long)여야 한다.
타입이 같은 변수는 콤마(,)로 구분해서 같이 선언할 수 있다.
int a, b;
int c = 0, d = 0;
변수 이름
값이 저장되는 메모리 공간의 이름.
변수 초기화 Initialization
타입 이름 = 값;
변수를 사용하기 전에 처음으로 값을 저장하는 것.
변수 선언과 동시에 생성된 공간에 값을 저장한다.
값을 저장할 때는 대입연산자(=)를 사용한다.
int a; // Initialization X
int b = 0; // Initialization O
메모리는 여러 프로그램에서 공유하는 자원으로, 새로운 값을 저장하면 기존 값은 사라진다.
전에 다른 프로그램에서 저장한 '알 수 없는 값(Garbage value)'이 남아 있을 수 있다는 뜻이다.
특히 지역변수는 Stack영역이라 자동으로 초기화되지 않기 때문에 반드시 초기화해야 한다.
두 변수의 값 교환하기
값을 교환시키는 연산자가 없다.
임시 저장공간으로 쓰일 변수를 하나 더 선언해서 값을 회전시켜 교환한다.
int a = 1, b = 5;
int temp;
temp = a;
a = b;
b = temp;
식별자 Identifier
변수 이름, 클래스 이름, 메소드 이름 등 프로그래밍에서 사용되는 모든 이름.
식별자를 지을 때 지켜야 하는 규칙이 있다.
필수 규칙
대소문자를 구분한다.
길이에 제한이 없다.
숫자로 시작할 수 없다.
특수문자는 '_'와 '$'만 허용한다.
공백을 포함할 수 없다.
예약어를 사용할 수 없다.
권장 규칙
클래스 이름
첫 글자는 항상 대문자로 한다. ex) Love
하나 이상의 단어를 사용할 경우 각 단어의 첫 글자를 대문자로 한다. ex) 클래스: LoveField
변수/메서드 이름
첫 글자는 항상 소문자로 한다. ex) love
하나 이상의 단어를 사용할 경우 두 번째 단어부터 첫 글자를 대문자로 한다. ex) loveField
상수
모두 대문자로 한다. ex) LOVE
하나 이상의 단어를 사용할 경우 밑줄 문자(_)로 구분한다. ex) LOVE_FIELD
예약어 Keyword
프로그래밍 언어에서 이미 사용되는 단어.
abstract : 추상 클래스/메소드로 선언.
assert : 조건문.
boolean : 논리형 변수.
break : 반복문, switch 종료.
byte : 정수형 변수.
case : switch 조건문.
catch : try-catch-finally문에서 예외 처리할 때 사용.
char : 문자형 변수.
class : 클래스 선언.
const : 사용되지 않음.
continue : 반복문의 조건절로 이동.
default : switch문에서 case에 해당 사항이 없을 때 실행.
do : do-while문에서 사용.
double : 실수형 변수.
else : if-else문에서 사용.
enum : enum 선언.
extends : 클래스 상속에 사용. 하나만 가능.
false : 조건/논리 계산 결과. boolean에서 사용. 사실이 아니다. 틀리다.
final : 변수 값 고정. 값 수정 불가능.
finally : try-catch문이 끝난 후 반드시 실행.
float : 실수형 변수.
for : 반복문.
goto : 사용되지 않음.
if : 조건문.
implements : 인터페이스(추상 클래스 상속). 다중 상속 가능.
import : 외부 클래스를 사용할 때 쓰임.
instanceof : 객체의 타입을 확인.
int : 정수형 변수.
interface : 추상 클래스로 선언.
long : 정수형 변수.
native : 자바외 다른 언어를 사용했음을 알림.
new : 객체, 인스턴스 생성.
null : 메모리에 할당 안된 상태. 숫자 타입에는 사용 불가.
package : 클래스들을 묶은 것. 일종의 폴더.
private : 접근 제한자. 다른 클래스에서 접근 불가능.
protected : 접근 제한자.
public : 접근 제한자. 누구나 접근 가능.
return : 값 반환 또는 메서드 종료.
short : 정수형 변수.
static : 클래스/변수 공유.
strictfp : strict 소수 값 제어자.
super : 상위 클래스의 생성자/멤버변수/메서드 호출.
switch : 조건문.
synchronized : 동시 접근 제한자.
this : 인스턴스가 본인을 가리킬 때 사용.
throw : 예외를 발생시키거나 호출한 클래스로 넘어가기.
throws : 예외를 던질 수도 있다고 선언.
transient : Serializable할 때 저장되거나 전송되지 않는 객체를 선언.
true : 조건/논리 계산 결과. boolean에서 사용. 사실이다. 맞다.
try : try-catch-finally문.
void : 반환 값 없음.
volatile : 하나의 변수를 여러 쓰레드가 참조할 때 모두 동일한 값을 바라보도록 함.
while : 반복문. 무한 루프.
참고 서적: 자바의 정석 3판