JAVA_변수(variable)

호근·2022년 11월 26일
0

java

목록 보기
2/35

변수

단 하나의 값을 저장할 수 있는 메모리 공간


선언과 초기화

int age;

int > 변수타입 == 저장될 값의 타입을 지정(정수형, 실수형, 문자형 등)
age > 변수이름 == 변수에 붙인 이름, 같은 이름의 변수가 여러개 존재해서는 안된다.
이렇게 변수를 선언하고,
변수를 선언한 이후 부터는 변수를 사용할 수 있지만
그 전에 반드시 변수를 초기화(initialization)해야한다.

왜냐하면, 메모리는 여러 프로그램이 공유하는 자원이므로 전에 다른 프로그램에 의해 저장된 알 수 없는 값(쓰레기값 : garbage value)이 남아있을 수 있기 때문이다.

변수에 값을 저장할 때는 대입연산자인 '='를 이용한다.
우측의 값을 좌측 변수에 저장한다는 의미이다.
대입연산자('=')는 우변의 모든 계산이 끝난 후 제일 마지막에 수행된다.


두 변수의 값 교환하기

변수 X의 값을 변수 Y의 값과 교환하고 싶을 땐,
임의로 값을 저장할 변수를 하나 더 만들면 된다.

변수의 명명규칙

변수의 이름처럼 프로그래밍에서 사용하는 모든 이름을 '식별자(identifier)'라고한다.

식별자는 같은 영역 내 구별될 수 있어야한다.
1. 대소문자가 구분되며 길이에 제한이 없다.
2. 예약어를 사용해서는 안된다.
3. 숫자로 시작되어서는 안된다.
4. 특수문자는 '_'와 '$'만 허용한다.


다음은 필수는 아닌 "권장하는 규칙"이다.
1. 클래스 이름의 첫 글자는 항상 대문자.
- 변수와 메서드의 이름의 첫 글자는 항상 소문자.
2. 여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로한다.
- LastIndexOf, StringBuffer
3. 상수의 이름은 모두 대문자로 한다. 여러 단어일 경우 '_'로 구분.
- PI, MAX_NUMBER


변수의 타입

데이터 타입은 문자와 숫자로 나눌 수 있다.
숫자는 다시 정수와 실수로 나눌 수 있다.

데이터 종류에 따라 값이 저장될 공간의 크기와 저장형식을 정의한 것이
자료형(data type)이다.

자료형에는 문자형(char), 정수형(byte, short, int, long), 실수형(float, double) 등이 있다.

상황에 따라 알맞게 사용하면 된다.


자료형은 기본형(primitive type)과 참조형(reference type) 두 가지로 나눌 수 있다.

기본형 //

  • 논리형(boolean)
    - true와 false 중 하나를 값으로 가짐. 조건식과 논리적 계산시 사용
  • 문자형(char)
    - 문자를 저장하는데 사용됨, 변수에 하나의 문자만 저장가능
  • 정수형(byte,short,int,long)
    - 정수를 저장하는데 사용됨. byte는 이진데이터를 다룰 때 사용, short는 C언어와의 호환을 위해 추가됨.
  • 실수형(float,double)
    - 실수를 저장하는데 사용되며 주로 double이 사용된다.

boolean을 제외한 나머지 7개 기본형은 서로 연산, 변환이 가능하다.


정수는 가장 많이 사용되므로 타입을 4가지나 제공한다.

4개의 정수형 중 int는 기본자료형이다.
int는 CPU가 가장 효율적으로 처리할 수 있는 타입이다.
효율적인 실행보다 메모리를 절약하려면 short나 byte를 사용하자.

실수형 중에서는 double이 기본자료형이다.


각 자료형의 메모리 크기는 다음과 같다.

boolean == 1byte
byte == 1byte

char == 2byte
short == 2byte

int == 4byte
float == 4byte

long == 8byte
double == 8byte


참조형 //

  • 객체의 주소를 저장, 8개의 기본형을 제외한 나머지 타입.

기본형 변수는 실제 값을 저장하는 반면,
참조형 변수는 어떤 값이 저장되어있는 주소(memory address)를 값으로 가진다.

자바는 C언어와 달리 참조형 변수 간의 연산이 불가하여
실제 연산에 사용되는 것은 모두 기본형 변수이다.

profile
22.11.28 ~

0개의 댓글