변수란?
변수(variable) 는 변할 수 있는 수 이다.
변수 선언
int a
- 숫자 정수(integer)를 보관할 수 있는 이름이 a라는 데이터 저장소를 만든다. 이것을 변수라 한다.
- 이렇게 변수를 만드는 것을 변수 선언이라 한다.
- 이제 변수 a에는 숫자 정수를 보관할 수 있다.
변수에 값 대입
a=10
- 자바에서 = 은 오른쪽에 있는 값을 왼쪽에 저장한다는 뜻이다.
- 숫자를 보관할 수 있는 데이터 저장소인 변수 a에 값 10을 저장한다.
- 처음 선언한 변수에 처음으로 값을 대입해서 저장하는 것을 변수 초기화라 한다.
변수 값 읽기
System.out.println(a)
- 변수에 저장되어 있는 값을 읽어서 사용하는 방법은 간단하다. 변수 이름을 적어주기만 하면 된다.
- 변수 a에 10이 들어가 있다면 자바는 실행 시점에 변수의 값을 읽어서 사용한다. 따라서 다음과 같이 해석된다.
- System.out.println(a) //변수 a의 값을 읽음
- System.out.println(10) //a의 값인 10으로 변경, 숫자 10 출력
- 참고로 변수의 값은 반복해서 읽을 수 있다. 변수의 값을 읽는다고 값이 없어지는 것이 아니다.
변수 값 변경
a=10; //변수 초기화: a(10) //1. 변수 a에 10을 저장한다.
System.out.println(a); //2. 변수 a의 값을 읽는다. a에는 10이 들어있다. 10을 출력한다.
a=50; //변수 값 변경: //3. 변수 a의 값을 50으로 변경한다. a(10 -> 50)
System.out.println(a); //4. 변수 a의 값을 읽는다. a에는 50이 들어있다. 50을 출력한다.
변수의 값을 변경하면 변수에 들어있던 기존 값은 삭제된다.
변수 타입
변수는 데이터를 다루는 종류에 따라 다양한 형식이 존재한다.
- int : 정수를 다룬다. 예) 1, 100, 1000
- double : 실수를 다룬다. 예) 0.2, 1.5, 100.121
- boolean : 불리언 타입이라 한다. true, false 값만 사용할 수 있다. 주로 참과 거짓을 판단하는 곳에서 사용한다.
- char : 문자 하나를 다룰 때 사용한다. 작은따옴표(‘)를 사용해서 감싸야 한다. 예) ‘A’, ‘가’
- String : 문자열을 다룬다. 큰따옴표를 사용해야 한다. 예) “hello java”
자신의 타임에 맞는 데이터 사용
지정한 타입에 맞는값을 사용하지 않으면 컴파일 오류가 발생
리터럴
코드에서 개발자가 직접 적은 100, 10.5, true, ‘A’, “Hello Java”와 같은 고정된 값을 프로그래밍 용어로 리터럴(literal) 이라 한다.
변수와 메모리 공간 크기
- 정수형
- byte : -128 ~ 127 (1byte, 2⁸)
- short : -32,768 ~ 32,767 (2byte, 2¹⁶)
- int : -2,147,483,648 ~ 2,147,483,647 (약 20억) (4byte, 2³²)
- long : -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (8byte, 2⁶⁴)
- 실수형
- float : 대략 -3.4E38 ~ 3.4E38, 7자리 정밀도 (4byte, 2³²)
- double : 대략 -1.7E308 ~ 1.7E308, 15자리 정밀도 (8byte, 2⁶⁴)
- 기타
- boolean : true , false (1byte)
- char : 문자 하나(1byte)
- String : 문자열을 표현한다. 메모리 사용량은 문자 길이에 따라 동적으로 달라진다. (특별한 타입이다. 자 세한 내용은 뒤에서 학습한다)
변수 타입 정리
자주 사용하는 타입
- 정수 - int , long : 자바는 정수에 기본으로 int 를 사용한다. 만약 20억이 넘을 것 같으면 long 을 쓰면 된다.
- 파일을 다룰 때는 byte 를 사용한다.
- 실수 - double : 실수는 고민하지 말고 double 을 쓰면 된다.
- 불린형 - boolean : true , false 참 거짓을 표현한다. 이후 조건문에서 자주 사용된다.
- 문자열 - String : 문자를 다룰 때는 문자 하나든 문자열이든 모두 String 을 사용하는 것이 편리하다.
변수 명명 규칙
규칙은 필수
관례는 필수는 아니지만 전세계 개발자가 해당 관례를 따르기 때문에 사실상 규칙
규칙
- 변수 이름은 숫자로 시작할 수 없다. (예: 1num, 1st)
- 그러나 숫자를 이름에 포함하는 것은 가능하다.(예: myVar1, num1)
- 이름에는 공백이 들어갈 수 없다.
- 자바의 예약어를 변수 이름으로 사용할 수 없다,(예: int, class, public)
- 변수 이름에는 영문자(a-z, A-Z), 숫자(0-9), 달러 기호($) 또는 밑줄(_)만 사용할 수 있다.
관례
- 소문자로 시작하는 낙타 표기법
- 변수 이름은 소문자로 시작하는 것이 일반적이다.
- 카멜 케이스 사용 (orderDetail, myAccount)
카멜케이스
낙타표기법(Camel Case)은 프로그래밍에서 변수, 함수, 클래스 등의 이름을 지을 때 많이 사용하는 표기법 중 하나이다. 이 표기법의 이름은 작성한 이름이 여러 단어로 구성되어 있을 때, 각 단어의 첫 글자가 대문자로 시작 하고, 이 대문자들이 낙타의 등봉처럼 보이는 것에서 유래했다. 낙타표기법을 사용하면 이름에 공백을 넣지 않고 도 여러 단어를 쉽게 구분할 수 있으므로, 변수의 이름을 이해하기 쉽게 만들어준다. 또한, 대부분의 프로그래밍 언어에서는 이름에 공백을 포함할 수 없기 때문에, 낙타표기법은 이런 제한을 우회하는 좋은 방법이다