변수
변수란 값을 저장할 수 있는 메모리 공간을 의미한다.
변수에는 다양한 타입의 값을 저장할 수 없고 한가지 타입의 값만 저장할 수 있다.
ex) int a = 1;로 선언시 a = "안녕"; 식으로 변경이 불가능 하다. "안녕"은 String 타입이기 때문
변수의 선언
변수 선언은 어떤 타입의 데이터를 저장할 것인지, 변수 이름이 무엇인지를 결정한다.
int number; //정수(int) 값을 저장할 수 있는 변수 선언
double value; //실수(double) 값을 저장할 수 있는 변수 선언
코드1 처럼 선언할 수 도 있지만 Java Coding Convention 상 코드2처럼 한줄에 하나의 변수를 선언하는 것이 좋습니다.
//코드1
int x, y, z; //비추천
//코드2
int x;
int y;
int z;
변수 명명(naming convention)
1. 첫 번째 글자는 문자이거나 '$', '_' 이어야 하고 숫자로 시작할 수 없다.
2. 영어 대소문자가 구분된다. -> valuetest와 valueTest는 다른 변수이다.
3. 첫 문자는 소문자로 시작, 연속되는 단어의 첫 문자는 대문자.(Camel case 관례)
4. 문자 수(길이) 제한 없다.
5. 예약어는 사용할 수 없다.
위 이외에도 변수명은 개발 시 가독성의 중요한 부분이므로 어플리케이션 개발 시 int a; 와 같은 의미없는 변수명으로는 선언하지 않는 것이 좋습니다!
공부할 때는 상관없지만, git의 공개된 repository에 올리는 프로젝트인 경우 한글로는 명명하지 않는 것이 좋습니다.
int $value; //가능
int valueTest; //Camel case
int class; //예약어 안됨
int @value; //$, _ 제외 특수기호 안됨
int 1value; //숫자 시작안됨
int Test; //첫 글자 대문자 안됨
예약어 종류
| 기본 데이터 타입 | boolean, byte, char, short, int, long, float, double |
| 접근 지정자 | private, protected, public |
| 클래스 관련 | class, abstract, interface, extends, implements, enum |
| 객체 관련 | new, instanceof, this, super, null |
| 메소드 관련 | void, return |
| 제어문 관련 | if, else, switch, case, default, for, do, while, break, continue |
| 논리값 | true, false |
| 예외 처리 관련 | try, catch, finally, throw, throws |
| 기타 | transient, volatile, package, import, synchronized, native, final, static, strictfp, assert |
예약어는 처음부터 다 외울 필요 없이 계속 공부해나가다 보면 당연히 변수명으로 안쓰게 됩니다!!
변수값 저장
변수에 값을 저장할 때에는 대입 연산자(=)를 사용합니다.
변수를 선언하고 처음 저장한 값을 초기값이라고 합니다.
int num1; //변수 선언
num1 = 1; //변수 초기화
int num2 = 2; //선언과 초기화를 동시에 한 경우
데이터 타입
기본(원시: primitive) 타입
정수, 실수, 문자, 논리 리터럴을 직접 저장하는 타입
| 종류 | 메모리 사용 크기 | ||
| 정수 | byte | 1 byte | 8 bit |
| char | 2 byte | 16 bit | |
| short | 2 byte | 16 bit | |
| int | 4 byte | 32 bit | |
| long | 8 byte | 64 bit | |
| 실수 | float | 4 byte | 32 bit |
| double | 8 byte | 64 bit | |
| 논리 | boolean | 1 byte | 8 bit |
자바는 기본적으로 정수 연산을 int 타입으로 수행한다.
byte 와 short는 메모리는 절약할 수 있으나, 값의 범위가 작은 편이여서 연산 시에 범위 초과시 잘못된 결과를 얻을 수 있다.
'Java' 카테고리의 다른 글
| Java에서 사용하는 정렬(sort) 메소드는 무슨 알고리즘을 사용할까? (2) | 2025.02.10 |
|---|---|
| Scanner와 BufferedReader 차이 분석 (4) | 2025.02.06 |
| [디자인 패턴]MVC 패턴 (1) | 2022.10.06 |
| JVM(Java Virtual Machine) (0) | 2022.09.15 |
| Java (1) | 2022.09.11 |