변수 (Variable)
중요한 프로그래밍 능력 중 하나가 바로 값을 잘 다루는 것이다.
변수란 ?
- 값을 저장할 수 있는 메모리상의 공간
: 저장된 값은 변경될 수 있기 때문에 '변수'라는 수학용어의 정의와 상통하는 면이 있어서 변수라 한다.
- 변수란, 단 하나의 값을 저장할 수 있는 메모리 공간
: 변수에 하나의 값만 저장할 수 있으므로, 새로운 값을 저장하면 기존의 값은 사라진다.
변수의 선언과 초기화
int age; //age라는 이름의 변수를 선언
- 변수 타입은 변수에 저장될 값이 어떤 타입인지를 지정하는 것이다.
- 저장하고자 하는 값의 종류에 맞게 변수의 타입을 선택해서 적어주면 된다.
변수를 선언하면, 메모리의 빈 공간에 '변수타입'에 맞게 알맞은 크기의 저장공간이 확보되고, 앞으로 이 저장공간은 '변수이름'을 통해 사용할 수 있게 된다.
- 변수를 선언한 이후에는 변수를 사용할 수 있으나, 그 전에 반드시 변수를 초기화해야한다.
: 메모리는 여러 프로그램이 공유하는 자원으로 다른 프로그램에 의해 저장된 알 수없는 값이 남을 수 있기 때문에 초기화 시켜주는 것이 좋다.
변수의 초기화란, 변수를 사용하기 전에 처음으로 값을 저장하는 것
int age = 25; //변수 age를 선언하고 25로 초기화
변수의 명명규칙
- 프로그래밍에서 사용하는 모든 이름을 식별자라고 하며, 식별자는 같은 영역 내에서 서로 구분 될 수 있어야한다.
* 규칙 * 1. 대소문자가 구분되며 길이에 제한이 없다. 2. 예약어를 사용해서는 안 된다. - true는 예약어라서 사용 X, True는 O 3. 숫자로 시작해서는 안 된다. 4. 특수문자는 '_' , '$'만 허용된다. |
int, long, boolean, float, double, case, if, while, switch, true, false, this, import 등등이 있다.
자세한 내용은 아래 참고 자료를 보도록 !
http://wiki.hash.kr/index.php/%EC%9E%90%EB%B0%94_%EC%98%88%EC%95%BD%EC%96%B4
변수의 타입
주로 사용하는 값의 종류는 크게 문자와 숫자로 나눌 수 있고, 숫자는 정수와 실수로 나눌 수 있다.
값의 종류에 따라 값이 저장될 공간의 크기와 저장형식을 정의한 것이 자료형이다.
정수형 : byte(1 byte), short(2 byte), int(4 byte), long(8 byte)
실수형 : float(4 byte), double(8 byte)
문자형 : char(2 byte)
논리형 : boolean(1 byte)
기본형과 참조형
기본형 변수는 실제 값을 저장 , 참조형 변수는 어떤 값이 저장되어 있는 주소 값을 갖는다.
기본형 - 논리형(boolean), 문자형(char), 정수형(byte,short,int,long), 실수형(float, double) 참조형 - 객체의 주소를 저장 - 기본형을 제외한 나머지 타입 |
참조형 변수를 선언할 때는 변수의 타입으로 클래스의 이름을 사용하므로 클래스 이름이 참조변수의 타입이 된다.
그래서 새로운 클래스를 작성한다는 것은 새로운 참조형을 추가하는 셈이다.
클래스이름 변수이름;
ex) Math math = new Math(); //Math객체를 생성해서, 그 주소를 math에 저장
참조변수 math를 통해서 생성된 객체를 사용할 수 있다.
상수와 리터럴
상수는 변수와 마찬가지로 값을 저장할 수 있는 공간이지만, 변수와 달리 한 번 값을 저장하면 다른 값으로 변경할 수 없다.
final double PI = 3.14;
상수는 선언과 동시에 선언해야 한다.
리터럴
- 그 자체로 값을 의미하는 것
- 상수의 다른 이름
필요한 이유 ?
- 값을 계산할 때 여러 곳을 수정할 필요 없이 상수의 초기화만 다른 값으로 해주면 되기 때문이다.
final int WIDTH = 10; //폭
final int HEIGHT = 20; //높이
int triangleArea = (WIDTH * HEIGHT) / 2; //삼각형 면적
int rectangleArea = (WIDTH * HEIGHT; //사각형 면적
'Backend > Java' 카테고리의 다른 글
[Java의 정석] 조건문과 반복문 1️⃣ (1) | 2023.11.19 |
---|---|
[Java의 정석] 변수 (Variable) 2️⃣ (0) | 2023.11.16 |
[Java] JDBC 사용법 (0) | 2023.11.13 |
[Java] 메모리 구조 (0) | 2023.11.13 |
[Java] UML 다이어그램 3️⃣ - 연관, 집합, 합성 (0) | 2023.11.07 |