상수(constant)는 변수와 마찬가지로 값을 저장할 수 있는 공간이지만,

변수와 달리 한번 값을 저장하면 다른 값으로 변경할 수 없다.

 

변수(variable)	하나의 값을 저장하기 위한 공간
상수(constana) 	값을 한번만 저장할 수 있는 공간
리터럴(literal)	그 자체로 값을 의미하는 것

변수에 타입이 있는 것처럼 리터럴에도 타입이 있다.

종류 리터럴 접미사
논리형 false, true 없음
정수형 123, 0b0101, 077, 0xFF, 100L L
실수형 3.14, 3.0e8, 1.4f, 0x1.0p-1 f, d
문자형 'A', '1', '\N' 없음
문자열 "ABC", "123", "A", "TRUE" 없음

실수형 리터럴에는 접미사를 붙여서 타입을 구분한다.

 

리터럴의 타입은 저장될 변수의 타입과 일치하는 것이 보통이지만,

저장 범위가 넓은 타입 << 좁은 타입을 저장하는 것은 가능하다

반면에

저장범위가 좁은 타입 << 넓은 타입을 저장하려고 하면 컴파일 에러가 발생한다

 

'A'와 같이 작은 따옴표로 문자 하나를 감싼 것을 문자 리터럴이라고 하며

두문자 이상은 "AB"큰따옴표로 감싸며 문자열 리터럴이라고 한다

변수의 이름처럼 프로그래밍에서 사용하는 모든 이름을 식별자(identifier)라고 하며,

식별자는 같은 영역 내에서 서로 구분(식별)될 수 있어야 한다.

1. 대소문자가 구분되며 길이에 제한이 없다.

2. 예약어를 사용해서는 안 된다.

3. 숫자로 시작해서는 안 된다.

4. 특수문자는 '_'와 '$'만을 허용한다.

 

예약어(reserved word)는 다음과 같은 종류가 있다.

 

abstract	continue	for		new		switch
assert		default		goto		package		synchronized
boolean		do		if		private		this
break		double		implements	protected	throw
byte		else		import		public		throws
case		enum		instanceof	return		transient
catch		extends		int		short		try
char		final		interface	static		void
class		finally		long		strictfp	volatile
const		float		native		super		while

 

그 외에 필수적인 것은 아니지만 자바 프로그래머들에게 권장되는 규칙은 다음과 같다.

 

1. 클래스 이름의 첫 글자는 항상 대문자로 한다.

2. 여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로 한다.

3. 상수의 이름은 모두 대문자로 한다. 여러 단어로 이루어진 경우 '_'로 구분한다.

※프로그램에서 변수(variable)는 기본적으로 단 하나의 값을 저장할 수 있는 메모리 공간을 의미한다.

 

변수를 사용하려면 먼저 변수를 선언해야 한다.

int age; // age라는 이름의 변수를 선언

변수 타입(int)은 변수에 저장될 값이 어떤 'type'인지를 지정한다.

 

변수 이름(age)은 변수에 붙인 이름이다.

 

변수의 초기화란, 변수를 사용하기 전에 처음으로 값을 저장하는 것이다.

변수를 선언한 이후부터는 반드시 변수를 초기화해야 한다.

만약, 초기화하지 않는다면 메모리에 변수가 남아있던 변수가 의도치 않게 사용될 수 있다.

public class VarEx1 {
	public static void main(String[] args) {
		int year = 0;
		int age = 14;
		
		System.out.println(year);
		System.out.println(age);
		
		year = age + 2000;	//변수 age의 값에 2000을 더해서 변수 year에 저장
		age = age + 1;		// 변수 age에 저장된 값을 1증가시킨다.
		
		System.out.println(year);
		System.out.println(age);
	}

}

여기서 변수는 year과 age이다.

+ Recent posts