Java - 변수란 무엇인가?

김영한님의 Java 강의로 기초다지기 - 변수란?

Posted by Warner on November 28, 2023

변수란?

변수(variable) 는 변할 수 있는 수 이다.

변수 선언

create-variable.png

int a

  • 숫자 정수(integer)를 보관할 수 있는 이름이 a라는 데이터 저장소를 만든다. 이것을 변수라 한다.
  • 이렇게 변수를 만드는 것을 변수 선언이라 한다.
  • 이제 변수 a에는 숫자 정수를 보관할 수 있다.

변수에 값 대입

insert-variable.png

a=10

  • 자바에서 = 은 오른쪽에 있는 값을 왼쪽에 저장한다는 뜻이다.
  • 숫자를 보관할 수 있는 데이터 저장소인 변수 a에 값 10을 저장한다.
  • 처음 선언한 변수에 처음으로 값을 대입해서 저장하는 것을 변수 초기화라 한다.

변수 값 읽기

read-variable.png

System.out.println(a)

  • 변수에 저장되어 있는 값을 읽어서 사용하는 방법은 간단하다. 변수 이름을 적어주기만 하면 된다.
  • 변수 a에 10이 들어가 있다면 자바는 실행 시점에 변수의 값을 읽어서 사용한다. 따라서 다음과 같이 해석된다.
    • System.out.println(a) //변수 a의 값을 읽음
    • System.out.println(10) //a의 값인 10으로 변경, 숫자 10 출력
  • 참고로 변수의 값은 반복해서 읽을 수 있다. 변수의 값을 읽는다고 값이 없어지는 것이 아니다.

변수 값 변경

update-variable.png

        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을 출력한다.

변수의 값을 변경하면 변수에 들어있던 기존 값은 삭제된다.

변수 타입

변수는 데이터를 다루는 종류에 따라 다양한 형식이 존재한다. typeA-variable.png

  • int : 정수를 다룬다. 예) 1, 100, 1000
  • double : 실수를 다룬다. 예) 0.2, 1.5, 100.121
  • boolean : 불리언 타입이라 한다. true, false 값만 사용할 수 있다. 주로 참과 거짓을 판단하는 곳에서 사용한다.
  • char : 문자 하나를 다룰 때 사용한다. 작은따옴표(‘)를 사용해서 감싸야 한다. 예) ‘A’, ‘가’
  • String : 문자열을 다룬다. 큰따옴표를 사용해야 한다. 예) “hello java”

자신의 타임에 맞는 데이터 사용
지정한 타입에 맞는값을 사용하지 않으면 컴파일 오류가 발생 variable-error.png

리터럴

코드에서 개발자가 직접 적은 100, 10.5, true, ‘A’, “Hello Java”와 같은 고정된 값을 프로그래밍 용어로 리터럴(literal) 이라 한다.

변수와 메모리 공간 크기

size-variable.png

  • 정수형
    • 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)은 프로그래밍에서 변수, 함수, 클래스 등의 이름을 지을 때 많이 사용하는 표기법 중 하나이다. 이 표기법의 이름은 작성한 이름이 여러 단어로 구성되어 있을 때, 각 단어의 첫 글자가 대문자로 시작 하고, 이 대문자들이 낙타의 등봉처럼 보이는 것에서 유래했다. 낙타표기법을 사용하면 이름에 공백을 넣지 않고 도 여러 단어를 쉽게 구분할 수 있으므로, 변수의 이름을 이해하기 쉽게 만들어준다. 또한, 대부분의 프로그래밍 언어에서는 이름에 공백을 포함할 수 없기 때문에, 낙타표기법은 이런 제한을 우회하는 좋은 방법이다