변수

데이터를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간

 

변수 선언

 

기본 형식

타입 식별자; 타입 식별자 = 초기값;

로컬 변수는 사용하기 전에 반드시 선언해야한다.

 

타입

 

변수의 타입 - 기본 타입

  • 정수 타입 : byte, char, short, int, long
  • 실수 타입 : float, double
  • 논리 타입 : boolean

정수리터럴 : 소스 코드에서 프로글래머에 의해 직접 입력된 값

2진수 : 0b or 0B로 시작, 0과 1로 구성

8진수 : 0으로 시작, 0~7로 구성

10진수 : 소수점이 없는 0~9로 구성

16진수 : 0x or 0X로 시작, 0~9 숫자와 a,b,c,d ,e,f 로 구성

 

	public static void main(String[] args) {
		int var1 = 0111;
		int var2 = 111;
		
		System.out.println(var1);
		System.out.println(var2);
	}
73
111

8진수의 경우엔 0111을 출력하는게 아닐까 생각했지만 0으로 시작된다면 8진수로 인식하고 73으로 10진수 변환되어 출력되었다.

 

실수리터럴

소스 코드에서 소수점이 있는 숫자 리터럴은 10진수 실수로 인식

알파벳 e, E 가 포함되어 있는 숫자 리터럴은 지수와 가수로 표현된 소수점이 있는 10진수 실수로 인식

	public static void main(String[] args) {
		double var1 = 10e2;
		
		System.out.println(var1);
	}
1000.0

 

 

*char 타입은 문자리터럴 이라고 하며 유니코드로 변환되어 자징되어서 정수 타입에 넣었습니다...

	public static void main(String[] args) {
		char var1 = "A";
		System.out.println(var1);
	}

오류: Type mismatch: cannot convert from String to char

 

자바에서 ""로 감싼 문자는 문자열로 char 타입이 아닌 String 타입으로 변수를 저장한다. 

char 타입에 ""로 감싼 문자열을 입력하면  type mismatch 에러가 발생한다.

 

식별자

자바 식별자 명명 규칙

  • 하나 이상의 글자로 이루어져야 한다
  • 첫 번째 글자는 문자이거나 $, _ 여야 한다
  • 두 번째 이후의 글자는 숫자, 문자, $, _dudi gksek
  • $, _ 이외의 특수 문자는 사용할 수 없다
  • 길이의 제한은 없다
  • 키워드는 식별자로 사용할 수 없다
  • 상수 값을 표현하는 단어는 식별자로 사용할 수 없다

값 저장

변수에 값을 저장할 때는 대입연산자 = 를 사용

오른쪽 값을 왼쪽에 저장한다는 의미

값을 저장하는 것을 변수 초기화라고 하며, 이 때 사용된 값을 초기값이라고 한다

	public static void main(String[] args) {
		int var1;
		
		System.out.println(var1 + 10);
	}

오류 :Unresolved compilation problem:The local variable "변수명" may not have been initialized

변수의 초기값을 할당하지 않고 사용하면 다음과 같은 오류가 발생한다.

해결방법 : 변수 초기화를 해준다

 

값을 바꿀 수 없는 변수

변수 앞에 final 키워드를 사용하면 해당 변수에 딱 한번만 값을 대입할 수 있다.

	public static void main(String[] args) {
		final double pi = 3.14;
		pi = 3-141592;
		
		System.out.println(pi);
	}

오류 : The final local variable "변수명" cannot be assigned. It must be blank and not using a compound assignment

final로 이미 한번 초기화 된 변수를 변경하려고 하니 다음과 같은 오류가 발생한다.

반응형

'study > JAVA' 카테고리의 다른 글

[JAVA] 메서드 호출  (0) 2023.03.01
[JAVA] 타입 변환  (0) 2023.02.27
[JAVA] 키워드와 식별자  (0) 2023.02.26

+ Recent posts