자바 변수란 "변수(variable)란 데이터(data)를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간"
즉, 변수란 데이터(data)를 저장할 수 있는 메모리 공간을 의미하며, 이렇게 저장된 값은 변경될 수 있다.
01) 변수명을 선언할 때 규칙
변수를 선언할 때 지정한 데이터 타입의 크기만큼 메모리 공간이 확보되었다면, 그 공간에 이름을 지정해야한다.
이것을 "변수의 이름, 변수명" 이라고 한다. 변수명을 만들때는 객관적으로 만들어서 어떤 역할을 하는 변수인지 알기 쉽게 만드는 것이 좋다.
변수명을 만들때는 다음 6가지를 반드시 지켜야 한다.
1. 첫 글자는 '문자', '_', '$' 중 하나로 시작해야하며 숫자로 시작 할 수 없다.
2. 첫 글자는 소문자로 시작하는 것이 관례다
3. 공백을 포함할 수 없다.
4. 대소문자를 구분한다.
5. 길이에 제한이 없다.
6. 예약어(= 프로그램 언어에서 내부적으로 기능이 정해져있는 단어)를 사용 할 수 없다.
02) 변수 선언
예를 들어, 숫자 3과 5를 저장할 메모리 공간을 각각 "a"와 "b" 라는 이름으로 지정한다면
"변수 a와 변수 b를 선언했다." 라고 표현한다.
자바에서 변수를 사용하기 전에는 반드시 변수를 선언한 후 초기화하여 사용하여야 한다. 초기화 하지 않은 변수를 사용하면 프로그램상 에러가 난다.
int num; // 변수 선언
System.out.println(num); // 변수 선언만 한 경우 오류발생
int num = 5; // 변수 선언 및 초기화
System.out.println(num); // 답: 5 오류발생X
- 변수를 선언할 때는 대입 연산자인 ' = ' 표시를 활용하여 선언하고, 이것은 왼쪽 인자에 오른쪽 값을 할당한다는 의미이다.
- 같은 자료형의 변수를 여러개 할당할 때는 ' , ' 를 활용하여 묶어서 선언할 수 있다.
- 변수를 선언하고 할당이나 초기화해도 되지만 선언과 초기화를 동시에 할 수 있다.
03) 변수의 자료형 (타입)
변수의 자료형은 원시 자료형(기본타입)과 참조타입이 있다.
03-1) 원시 자료형 - 정수형과 문자형
원시 자료형 (기본) Primitive type
: 기본 타입의 변수는 Stack영역의 메모리에 값을 저장한다.
5개의 자료형이 존재하고 각각의 byte크기나 표현할 수 있는 값의 범위가 다르다.
자바에서는 기본적으로 정수의 연산은 특별한 이유가 없다면 int타입으로 수행한다. 또한, 크기가 작은 자료형을 사용할 때는 항상 범위가 초과할 가능성을 염두하고 사용하여야 한다.
단위의 크기: byte(1) < char(2) = short(2) < int(4) < long(8)
- byte(1) : 색상 정보/ 파일 이미지 등의 이진(바이너리)데이터를 처리할때 주로 사용
- char(2) : 문자를 담아주는 자료형
- short(2) : char데이터와 크기가 같지만 음수 값도 표현이 가능하기 때문에 표현범위는 char과 다르다.
- int(4) : 자바에서 가장 많이 사용되는 타입, byte타입의 변수나 short타입의 변수를 연산하게 되면 각각의 타입이 int타입으로 변환 된 후 연산이되고 연산의 결과도 int타입으로 나타난다. (자바에서는 정수연산을 4바이트로 처리하기 때문.)
- long(8) : long타입은 리터럴을 담을 때 리터럴 뒤에 L, l 을 붙여서 명시해준다. 주로 큰수를 담을 때 사용한다.
03-2) 원시 자료형 - 실수형과 논리형
- float(4) : 4바이트의 실수 저장
- double(8) : 실수형의 기본타입, 자바에서는 8바이트로 실수연산이 진행되기 떄문에 double을 자주 사용한다.
- boolean(1) : 논리형 타입으로 참과 거짓 True or False 만 가지고 있다.
03-3) 참조 타입
참조 타입 Reference type
: 참조 타입의 변수는 heap 영역에 값을 저장하고, 값이 저장된 주소를 stack영역 메모리에 저장한다.
참조 타입은 간단하게 말하자면 기본 타입이 아닌 나머지 타입을 말한다.
참조 타입과 기본 타입의 차이점으로는,
기본 타입은 변수를 선언하고 저장하면 그 값에 직접적으로 바로 저장이 되는 것이지만 참조 타입은 그 값에 바로 저장이 되는 것이 아니라, 메모리의 주소를 저장하고, class / interface / 배열/ 열거 를 참조하는 것이다. 즉, "주소를 통해 실제 값을 참조한다" 라는 것.
'IT Programming > Java' 카테고리의 다른 글
[Java] 06. 반복문 for / while (0) | 2023.03.13 |
---|---|
[Java] 05. 조건문 if / if ~ else / else if (0) | 2023.03.13 |
[Java] 04. 산술, 증감, 복합, 비교, 논리, 삼항 연산자 정리 (0) | 2023.03.13 |
[Java] 03. 자바의 형변환(타입 변환) (0) | 2023.03.13 |
[Java] 01. 자바란 무엇일까? / 자바의 특징 6가지 (0) | 2023.03.11 |
댓글