변수(variable)
: 특정 데이터 값을 저장하는 메모리 공간에 붙인 이름으로, 변할 수 있는 값을 담는 그릇
변수 타입
타입 | 이름 | 사용 | 범위 | 크기 | 비고 |
정수형 | byte | 정수를 나타낼 때 사용 | 1byte | ||
정수형 | short | 정수를 나타낼 때 사용 | 2byte | ||
정수형 | int | 정수를 나타낼 때 사용 | 4byte | 주로 정수형에서는 int와 long을 사용한다. | |
정수형 | long | 정수를 나타낼 때 사용 값 뒤에 l을 붙임 |
8byte | 20억 넘을 것 같으면 long을 사용 | |
실수 | float | 실수를 나타낼 때 사용 값 뒤에 f를 붙임 |
소숫점 계산 등 정밀도가 낮음 |
||
실수 | double | 실수를 나타낼 때 사용 | float는 실수 표현 범위 작아, 실수는 double 사용을 권장 | ||
문자형 | char | 문자열을 나타낼 때 사용 | 문자 한 글자를 나타낼 때 사용 컴파일러가 유니코드로 매핑 변환 후, 유니코드 정수 값 저장 |
||
문자형 | String | 문자열을 나타낼 때 사용 | 주로 char 대신 String을 사용 | ||
논리형 | boolean | 참과 거짓 값을 나타낼 때 사용 | 조건문에서 자주 사용 |
변수 선언
- 변수를 사용하기 위해 변수를 선언
- 변수를 선언하면 컴퓨터의 메모리 공간을 확보하는데, 확보한 곳에 데이터를 저장
- 저장한 데이터는 변수 이름을 통해서 해당 메모리 공간에 접근
변수 선언 방법
// 1. 변수 선언, 초기화 각각 따로
int a;
a = 10;
System.out.println(a);
// 2. 선언, 초기화 동시에
int b = 20;
System.out.println(b);
- 변수로 저장할 데이터 종류를 명시
- 변수 이름을 명시
- 선언과 동시에 값을 명시
- 선택 사항으로 선언과 초기화를 따로 할 시에는 값을 명시해 주지 않아도 됨
- 선택 사항으로 선언과 초기화를 따로 할 시에는 값을 명시해 주지 않아도 됨
// 3. 여러 변수 선언과 초기화 한 번에
int c = 3, d = 5;
System.out.println(c);
System.out.println(d);
- 같은 데이터 타입의 변수라면 한 번에 여러개의 변수를 선언할 수 있음
타입별 선언 예시
int a = 100; // 정수
double b = 10.5; // 실수
boolean c = true; // boolean T/F
char d = 'A'; // 문자 하나
String e = "Hello, Java!"; // 문자열, 문자열을 다루기 위한 특별한 타입
변수 대입
int a = 100; // 정수
- 변수에 값을 대입해서 저장
- a = 10에서 =은 수학적 의미 아님
변수 초기화
: 처음 대입해서 저장하는 작업을 초기화라고 함
double b = 10.5; // 실수
boolean c = true; // boolean T/F
char d = 'A'; // 문자 하나
- 변수는 꼭 초기화하고 사용해야 함
- 변수가 차지하게 된 공간에 기존에 어떤 값이 들어가 있을지 모름
- 따라서 이상한 값이 출력될 수 있기 때문에 이런 문제를 예방하기 위해 자바는 변수 초기화를 강제화 함
- 초기화하지 않고 사용할 경우 컴파일 에러
- java: variable a might not have been initialized
- 지역 변수: 개발자가 직접 초기화
- 클래스, 인스턴스 변수: 자바가 자동 초기화
- 변수에 직접 넣은 값들을 리터럴이라고 함
- 고정된 값을 의미함
- 고정된 값을 의미함
변수 값 변경
- 변수 값을 변경하면 변수에 기존에 있던 값은 삭제됨
변수 명명 규칙
- 변수 이름에는 영문자(a-z, A-Z), 숫자(0-9), 달러 기호($) 또는 밑줄(_)만 사용
- 변수 이름 숫자로 시작할 수 없음
- 이름에 공백 사용할 수 없음
- 자바의 예약어를 변수 이름으로 사용할 수 없음(ex. int, class, public)
- 소문자로 시작하는 낙타 표기법(ex. studentSum)
자바 언어의 관례
"클래스는 대문자로 시작, 변수명은 소문자로 시작"
- 클래스가 두 개 이상의 단어로 이어지면 낙타표기법
- 변수 이름은 의미 있고, 용도 명확하게 설명
자바 언어 관례의 예외 2가지
- 상수는 모두 대문자를 사용하고 언더바로 구분 (ex. USER_LIMIT)
- 패키지는 모두 소문자로 사용
- ex. package variable;
// 잘못된 예시
int a;
int b;
// 정확한 예시
int studentSum;
'Back-End > JAVA' 카테고리의 다른 글
[Java] 클래스와 객체, 인스턴스 (1) | 2025.04.30 |
---|---|
[Java] 배열, for-each문 (0) | 2025.04.29 |
[Java] 스코프, 형 변환 개념과 이해 (0) | 2025.04.25 |
[Java] 연산자, 조건문, 반복문 개념과 이해 (0) | 2025.04.23 |