[JAVA]변수란 무엇인가? 변수 선언 및 초기화, 메모리 할당 및 데이터 변경 정리
안녕하세요
오늘은 JAVA 변수에 대해서 알아보고자 합니다.
변수는 어떤 프로그래밍을 하던 중요한 개념중 하나입니다.
변수에 대해 정리해보도록 하겠습니다ㅎㅎ
1. 변수란 무엇인가?
변수는 쉽게말하면 바구니같은 개념이라고 보시면 됩니다.
우리가 바구니를 쓸 때 그 안에다가 보관할 물건을 넣고 필요할 때 꺼내쓰고는 합니다.
이를 컴퓨터에 적용해보자면...
우리가 컴퓨터를 하면서 메모리라는 말을 어느정도 들어보셨을 건데,
(이 컴퓨터는 메모리가 몇기가이다.. 뭐 그런식으로요ㅎㅎ)
이 때 메모리에 필요한 데이터를 저장하고 필요할때 꺼내서 사용하는 개념이라고 볼 수 있습니다.
2. 변수 선언과 초기화
그러면 개념에 대해 알아보았으니 구체적으로 어떻게 코딩하면 되는지 알아볼까요?
변수를 선언할 때는 다음과 같이 합니다.
각 부분에 대한 구체적인 설명은 다음과 같습니다.
1) 선언부
말 그대로 변수를 새로 만들겠다고 컴퓨터에게 알려주는 부분입니다. 선언부를 작성하면 컴퓨터가 메모리가 선언한 변수의 자료형에 맞는 크기의 메모리를 할당해줍니다.
2) 초기화
변수에 값을 넣어주는 부분입니다. 보통 변수를 새로 만들면 처음에 값을 무엇을 넣고있을 지 정해주는데 이 때 정해주지 않으면 컴퓨터 메모리 어딘가에 떠도는 아무 의미없는 값인 일명 쓰레기 값이 담기게 됩니다.
(참고로 ;(세미콜론)은 우리가 글을 쓸 때 .(마침표)로 문장의 끝을 알리는 것처럼 프로그래밍의 한 줄이 끝났음을 알려주는 기호입니다.)
3) 자료형
변수가 어떤형태의 데이터를 담을 것인지를 결정합니다. 변수의 자료형에는 정수형, 실수형 등 다양한 자료가 있습니다만 여기서 다루면 너무 양이 많아지므로 다음 포스팅에서 다뤄보도록 하겠습니다.
4) 변수 이름
말 그대로 변수 이름입니다. 변수 이름을 지을 때는 기본적으로는 그 변수 용도에 맞게 지으시고 추가로 혼자서 작업한다면 본인이 잘 기억할 수 있게 , 협업을 하고 있다면 팀끼리 잘 협의하에 변수명 짓는 규칙에 따라 지어야 합니다.
5) 대입 연산자
보통 = 기호는 수학에서 "같다"라는 의미로 사용됩니다. 하지만 프로그래밍에서는 어떤 데이터를 변수에 대입한다는 의미로 사용되므로 주의해주세요ㅎㅎ
(저도 처음 배울 때 수학기호와 헷갈렸습니다ㅋㅋ)
6) 변수 값
변수에 대입할 값 입니다. 자료형에 맞는 값을 넣어줘야 에러가 안납니다.
3. 메모리 할당과 진법
1) 10진법? 2진법?
우리는 10진법을 사용해서 수를 표현하고 있습니다.
하지만 컴퓨터는 우리가 쓰는 이 10진법을 이해하지 못합니다.
왜냐하면 컴퓨터는 전류가 통했을 때 1, 통하지 않을 때 0 이렇게 두가지 케이스로 데이터를 인식하기 때문입니다.
때문에 모든 데이터들을 0과 1로만 표현되는 2진법을 사용하는데 이 2진법으로 변수들을 저장하게 됩니다.
(2진법 자체에 대한 설명은 구글링 해보면 좋은 글들이 많으니 생략하겠습니다.)
2) 메모리가 할당되는 과정
방금 말씀드린 1 또는 0 데이터가 담기는 공간을 1bit(비트)이고
1비트가 8개 모이면 1byte(바이트)라고 약속을 정해놓았습니다.
설명만 적으면 헷갈리니 예시를 들어 설명드리겠습니다.
예를 들어 만약 우리가 int i=10; 이라고 하면
10은 2진수로 1010 이므로 아래 그림과 같이 저장되게 됩니다.
그림에 대한 자세한 설명을 드리면
앞에서 int 라는 자료형을 썼으니 먼저 컴퓨터가 int의 자료형 크기만큼 메모리를 할당합니다.
(미리 말씀드리자면 정수는 4바이트입니다. 자료형 관련해서 포스팅 할 때 자세히 적을 예정입니다ㅎㅎ)
그리고 여기서 i에 들어간 데이터인 10을 2진수로 바꾼 1010의 데이터가 각 비트마다 들어가게 되는 구조입니다.
4. 변수 데이터 변경
변수 초기화를 하였으니 이 데이터를 써야겠죠?
데이터를 쓰다보면 데이터를 변경할 일도 생기게 됩니다.
변수 데이터를 변경하는 것은 아주 간단합니다.
i=20;
(변수명=값;)
이런 식으로 적어주면 해당 값으로 변수에 들어가 있는 데이터가 바뀌게 됩니다.ㅎㅎ
(물론 적어준 변수 자료형에 맞는 값을 넣어줘야 하며
초기화를 먼저 해 준 다음에 데이터 변경을 할 수 있습니다!)
변수에 관한 포스팅은 여기서 마치고
다음 포스팅에서는 자료형에 대해 다뤄보도록 하겠습니다!
감사합니다:)
Reference
이 포스팅은 아래의 강좌를 참고하여 만들어졌습니다.
- 자바 프로그래밍 입문 강좌 (renew ver.) - 초보부터 개발자 취업까지!!
https://www.inflearn.com/course/%EC%8B%A4%EC%A0%84-%EC%9E%90%EB%B0%94_java-renew/dashboard
'Language > Java' 카테고리의 다른 글
[Java]배열의 개념, 선언및 초기화하는 방법+예제 (2) | 2020.08.11 |
---|---|
[Java]자바의 연산자의 종류 및 설명, 예시 (1) | 2020.08.06 |
[JAVA]자료형에 대해 정리해보자(기본자료형과 객체자료형 차이, 기본자료형, 자동 형 변환과 명시적 형 변환) (0) | 2020.07.29 |
[JAVA]JDK(Java Development Kit)+Eclipse 설치하기! (0) | 2020.07.24 |
[JAVA]Java프로그래밍이란? 자바를 알아보자! (0) | 2020.07.22 |