[Java] 변수 variable

subbni·2022년 5월 2일

변수

프로그래밍에서 변수란, 값을 저장할 수 있는 메모리 상의 공간을 의미한다.

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

변수 선언과 초기화

변수 선언

int name;

변수타입: 변수에 저장될 값이 어떤 '타입'인지를 지정.
변수이름: 변수에 붙인 이름.

변수를 선언하면, 메모리의 빈 공간에 변수타입에 맞는 크기의 저장공간이 확보되고 앞으로 이 저장공간은 변수이름을 통해 사용 가능하다.

변수 초기화

int name = 10;

변수를 사용하기 전에는 반드시 변수를 초기화해야 한다.
처음 공부할 때는 당연히 그래야 마땅한 것이라고만 생각했는데, 변수를 초기화해줘야 하는 이유는 무엇일까?

현재 어떤 프로그램도 사용하지 않는 공간이 할당되기는 하지만, 컴퓨터 메모리는 운영체제 및 여러 프로그램이 함께 공유하는 자원이므로 다른 프로그램이 사용하면서 남긴 '알 수 없는 값= 쓰레기 값'이 남아있을 수 있기 때문이다.

변수 명명 규칙

  1. 대소문자가 구별되며 길이 제한은 없다.
  2. 예약어(=keyword=reserved word)를 사용할 수 없다.
  3. 숫자로 시작할 수 없다.
  4. 특수문자는 '_'와 '$'만이 허용된다.

변수의 타입

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

기본형과 참조형

자료형은 크게 기본형과 참조형 두 가지로 나뉜다.

  • 기본형 : 실제 값(data)을 저장
    ex) boolean, char, byte, short, int, long, float, double
  • 참조형 : 어떤 값이 저장되어 있는 주소(memory address)값을 저장
    -참조 변수를 선언할 때는 변수의 타입으로 클래스의 이름을 사용한다. 따라서 클래스의 이름이 참조변수의 타입이 된다.
    - ex) Student s;
    s는 참조변수, class Student가 s의 타입.
    -참조형 변수는 null 또는 객체가 저장된 메모리 주소(4byte, 혹은 JVM이 64bit라면 8byte)를 값으로 가진다.

java는 c언어와는 달리 참조형 변수간 연산을 할 수 없다.
-> c언어에서는 포인터 연산이 가능.
따라서 실제 연산에는 오직 기본형 변수만이 사용된다.

기본형

  • 논리형 boolean \ 1byte
  • 문자형 char \ 2byte
  • 정수형 byte, short, int(표준), long \ 각각 1,2,4,8byte
  • 실수형 float, double(표준) \ 각각 4,8byte

상수와 리터럴

상수

상수는 변수와 마찬가지로 '값을 저장할 수 있는 공간'이지만 변수와 달리 값이 한 번 저장되면 그 값을 다른 값으로 변경할 수 없다.

상수를 선언하는 방법은 변수 타입 앞에 키워드 final을 붙여주면 된다.

final int MAX_LENGTH=100;

  • keyword : final
  • 반드시 선언과 동시에 초기화 해주어야 함.
    -> JDK1.6부터 동시에 초기화 하지 않아도 되며, 사용 전에만 초기화를 해주면 된다고 함.

리터럴

우리가 아는 일반적인 상수, 2, 3.14, 'C' 등등의 값 자체를 의미한다.

변수(variable) : 하나의 값을 저장하기 위한 공간
상수(constant) : 값을 한 번만 저장할 수 있는 공간
리터럴(literal): 그 자체로 값을 의미하는 것

리터럴의 타입

변수에 타입이 있는 것처럼 리터럴에도 타입이 있다.
변수의 타입은 '그 변수에 저장할 값'(=리터럴)의 타입에 의해 결정되므로, 즉 리터럴 타입에 따라 변수의 타입을 결정한다고 볼 수 있다.

profile
개발콩나물

0개의 댓글