[JAVA] Chapter 02 - 1 변수

2019. 11. 12. 17:54·Language/Java

변수선언

컴퓨터 메모리(RAM)는 값을 저장할 수 있는 수 많은 번지(주소)들로 구성되어 있다.

그런데 메모리의 어디에 저장하고, 어떤 방식으로 저장할 지 정해놓지 않으면 프로그램 개발이 무척 어렵게 된다.

프로그래밍 언어는 이 문제를 해결하기 위해 변수라는 개념을 사용한다.

 

변수(variable)는 값을 저장할 수 있는 메모리의 특정 번지에 붙이는 이름이다.

프로그램은 변수를 통해 메모리의 특정 번지에 값을 저장하고 읽을 수 있다.

 

메모리에 값을 저장하고 싶다면 변수를 선언하고 변수에 값을 지정하면 된다.

그러면 메모리의 어디에 저장하고, 어떤 방식으로 저장할지는 프로그래밍 언어와 운영체제가 정한다.

 

변수를 사용하기 위해서는 먼저 변수를 선언해야 단다.

변수 선언은 변수에 어떤 타입의 데이터를 저장할 것인지 그리고 변수 이름이 무엇인지를 결정한다.

 

예약어란

이미 해당 프로그래밍 언어에서 의미를 갖고 사용되고 있는 단어로, 변수 이름으로 사용할 수 없다. 예약어로 변수 이름을 선언하면 컴파일 에러가 발생한다.

 

 

값 저장

변수에 값을 저장할 때에는 대입연산자(=)를 사용한다. 오른쪽 값을 왼쪽 변수에 저장한다는 의미를 갖는다.

 

ex)

int score //변수 선언
score = 90; //값 저장

 자바에서는 변수에 값이 저장되지 않으면 변수가 생성되지 않는다. 선언과 생성은 다른 이야기이다. 변수 선언은 저장되는 값의 종류와 이름만 언급한 것이다. 변수에 최초로 값이 저장될 때 변수가 생성된다. 이것을 변수 초기화라고 한다. 그리고 이때 사용된 값을 초기값이라고 한다. 위 코드에서는 90이 초기값에 해당한다.

 

변수가 초기화 되면 메모리 번지에 정보를 갖게 되고, 해당 메모리 번지에 값이 저장된다.

초기화되지 않은 변수는 아직 메모리 번지 정보를 갖고 있지 않으므로 변수를 통해 메모리 값을 읽을 수 없다.

 

변수 사용 범위

자바의 모든 변수는 중괄호{} 블록 내에서 선언되고 사용된다.

메소드 블록 내에서 선언된 변수를 로컬변수라고 부르는데, 로컬 변수는 메소드 블록 내부에서만 사용되고 메소드 실행이 끝나면 메모리에서 자동을 없어진다.

 

변수는 블록 내 어디든지 선언할 수 있지만, 변수 사용에는 제한이 따른다. 변수는 자신이 선언된 위치로부터 자신이 속한 블록 내부에서만 사용할 수 있다.

 

변수를 선언할 떄 주의해야할 사항

- 변수가 어떤 범위에서 사용될 것인지를 생각하고, 선언 위치를 결정해야 한다.

- 메소드 블록 전체에서 사용하고 싶다면 메소드 블록 첫머리에 선언한다.

- 특정 블록 내부에서만 사용된다면 해당 블록 내에 선언한다.

'Language > Java' 카테고리의 다른 글

[자바 프로그래밍 입문] 객체와 메모리  (0) 2021.11.09
[자바 프로그래밍 입문] 02 Java 프로그램의 실행 구조  (0) 2021.11.04
[자바 프로그래밍 입문] 01 Hello Java World!  (0) 2021.11.03
[Java] 클래스(Class)  (0) 2019.10.16
[Java] Map  (0) 2019.08.27
'Language/Java' 카테고리의 다른 글
  • [자바 프로그래밍 입문] 02 Java 프로그램의 실행 구조
  • [자바 프로그래밍 입문] 01 Hello Java World!
  • [Java] 클래스(Class)
  • [Java] Map
soyeon26
soyeon26
  • soyeon26
    개발 일지
    soyeon26
  • 전체
    오늘
    어제
    • 분류 전체보기 (107)
      • Web (22)
        • Web (1)
        • HTTP (0)
      • Language (29)
        • Java Script (3)
        • Type Srcipt (1)
        • Java (25)
      • Front (19)
        • HTML+CSS (4)
        • React (15)
      • Back (41)
        • Spring(Springboot) (9)
        • JSP (21)
        • Database (5)
        • NestJS (6)
      • Devops (6)
        • Docker (1)
        • Git & SVN (5)
      • App (7)
        • Android (7)
      • IT 정보 (3)
  • 블로그 메뉴

    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    React
    sql강의
    SSR
    프론트엔드
    과학기술인등록번호 조회
    서블릿
    java의 정석
    스프링부트
    springboot
    과학기술인 등록번호 발급
    csr과ssr의 차이
    Next.js
    Java
    김영한
    백엔드
    자바스크립트set
    csrvsssr
    Spring
    Next.js 필요성
    인프런
    SQL강의 추천
    데이터베이스 강의
    과학기술인번호 조회
    과학기술인 번호 발급
    강의 후기
    과학기술인 등록
    React Next.js
    중복제거
    강의후기
    javascript
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
soyeon26
[JAVA] Chapter 02 - 1 변수
상단으로

티스토리툴바