[자바 무료 강의] └ [심화] 변수는 상자이다 - 코드라떼
Lesson List button
코스자바로 배우는 프로그래밍
hamburger button
강의└ [심화] 변수는 상자이다최종수정일 2021-09-05
아이콘미정

참고 내용이 있습니다. 강의를 진행하는 데는 필요 없으나 이후에 궁금하실 때 다시 보시면 좋습니다.

노트 강의

심화는 이후에 보셔도 상관없습니다.


목차


  1. 1byte의 크기는 얼마나 클까?
  2. 메모리에는 주소가 존재한다.
  3. 변수에도 메모리 주소가 존재한다.
  4. 값이 존재하지 않는 변수는 메모리를 할당하지 않는다.
  5. 아스키 코드표




1. 1byte의 크기는 얼마나 클까?


image

1 byte를 알기 전에 가장 작은 단위인 bit에 대해서 알아봅시다. 1 bit는 2진수 표현되며 1 또는 0으로 표현될 수 있습니다. 옛날에는 7 bit나 9 bit도 1 byte라고 부를 때가 있었습니다만 현재는 일반적으론 8 bit를 1byte라 부릅니다.

1 byte의 범위는 2진수로 0000 0000부터 1111 1111까지 표현 가능하며, 이것을 정수로 표현하면 0000 0000은 십진수 0, 1111 1111은 십진수 255까지 표현할 수 있습니다.




2. 메모리에는 주소가 존재한다


image

땅에는 주소가 있듯이 메모리에도 논리적인 주소가 있습니다. 엄밀하진 않지만 그래픽적으로 메모리 공간을 보여줄 수 있다면 다음과 같습니다.

메모리 공간의 한 칸을 1 byte라고 했을 때 8 bit로 표현된다는 것을 대략적으로 확인할 수 있으며 해당 주소를 이용하여 메모리에 접근할 수 있습니다.




3. 변수에도 메모리 주소가 존재한다


image

변수를 선언하게 되면 변수를 위한 메모리가 할당됩니다. 이러한 변수에는 메모리 주소가 존재하며 변수를 접근하기 위해서는 메모리 주소를 알아야지 접근할 수 있습니다.

그러나 우리는 메모리 주소를 알지 못해도 변수에 접근할 수 있습니다. 자바 언어를 실행시키는 자바 가상 머신(Java Virtual Machine) 이 처리하기 때문입니다.




4. 값이 존재하지 않는 변수는 메모리를 할당하지 않는다


public class Main { public static void main(String[] args) { int num; // 값이 존재하지 않는 변수. // 이후에도 값이 존재 하지 않는 변수는 // 메모리에 할당하지 않는다 } }
copy

자바 가상 머신은 값이 존재하지 않는 변수는 메모리를 할당하지 않습니다. 이러한 변수들을 체크하여 메모리를 할당하지 않습니다. 이유는 사용하지 않기 때문입니다.

public class Main { public static void main(String[] args) { int num; // 값이 존재하지 않는 변수에는 // 접근할 수 없다 System.out.println(num); // 컴파일 오류 발생 } }
copy

그리고 값이 존재하지 않는 경우 변수에 접근할 수 없습니다. 자바 언어를 자바 가상머신이 읽을 수 있는 코드(자바 바이트 코드)로 바꾸는 컴파일이 되지 않습니다.

*이후에 배우는 멤버 변수는 값을 존재하지 않더라도 메모리에 적재도 하고 초기화도 해줍니다. 지금은 헷갈릴 테니 넘어갑시다.




5. 아스키 코드표


아스키코드 wiki

도전자 질문
아이콘iydo09(2021-08-26 00:31 작성됨)
값이 존재하지 않은 변수는 오브젝트 라고도 할수 있나요?
아이콘코드라떼(2021-08-26 15:12 작성됨)
안녕하세요. 코드라떼입니다.

변수와 리터럴(값)을 별도로 생각하셔야 합니다. 값이 존재하지 않는 변수는 공간을 점유하는 비어 있는 상자라고 보시면 됩니다. 그리고 오브젝트(개체 또는 객체)는 의미가 전혀 다릅니다. 이후의 객체에 대한 강의에서 아시게 됩니다.

감사합니다.
이용약관|개인정보취급방침
알유티씨클래스|대표, 개인정보보호책임자 : 이병록
이메일 : cs@codelatte.io
사업자등록번호 : 824-06-01921
통신판매업신고 : 2021-성남분당C-0740
주소 : 경기도 성남시 분당구 대왕판교로645번길 12, 9층 24호
Lesson List button
코스자바로 배우는 프로그래밍
hamburger button
강의└ [심화] 변수는 상자이다최종수정일 2021-09-05
아이콘미정

참고 내용이 있습니다. 강의를 진행하는 데는 필요 없으나 이후에 궁금하실 때 다시 보시면 좋습니다.

노트 강의

심화는 이후에 보셔도 상관없습니다.


목차


  1. 1byte의 크기는 얼마나 클까?
  2. 메모리에는 주소가 존재한다.
  3. 변수에도 메모리 주소가 존재한다.
  4. 값이 존재하지 않는 변수는 메모리를 할당하지 않는다.
  5. 아스키 코드표




1. 1byte의 크기는 얼마나 클까?


image

1 byte를 알기 전에 가장 작은 단위인 bit에 대해서 알아봅시다. 1 bit는 2진수 표현되며 1 또는 0으로 표현될 수 있습니다. 옛날에는 7 bit나 9 bit도 1 byte라고 부를 때가 있었습니다만 현재는 일반적으론 8 bit를 1byte라 부릅니다.

1 byte의 범위는 2진수로 0000 0000부터 1111 1111까지 표현 가능하며, 이것을 정수로 표현하면 0000 0000은 십진수 0, 1111 1111은 십진수 255까지 표현할 수 있습니다.




2. 메모리에는 주소가 존재한다


image

땅에는 주소가 있듯이 메모리에도 논리적인 주소가 있습니다. 엄밀하진 않지만 그래픽적으로 메모리 공간을 보여줄 수 있다면 다음과 같습니다.

메모리 공간의 한 칸을 1 byte라고 했을 때 8 bit로 표현된다는 것을 대략적으로 확인할 수 있으며 해당 주소를 이용하여 메모리에 접근할 수 있습니다.




3. 변수에도 메모리 주소가 존재한다


image

변수를 선언하게 되면 변수를 위한 메모리가 할당됩니다. 이러한 변수에는 메모리 주소가 존재하며 변수를 접근하기 위해서는 메모리 주소를 알아야지 접근할 수 있습니다.

그러나 우리는 메모리 주소를 알지 못해도 변수에 접근할 수 있습니다. 자바 언어를 실행시키는 자바 가상 머신(Java Virtual Machine) 이 처리하기 때문입니다.




4. 값이 존재하지 않는 변수는 메모리를 할당하지 않는다


public class Main { public static void main(String[] args) { int num; // 값이 존재하지 않는 변수. // 이후에도 값이 존재 하지 않는 변수는 // 메모리에 할당하지 않는다 } }
copy

자바 가상 머신은 값이 존재하지 않는 변수는 메모리를 할당하지 않습니다. 이러한 변수들을 체크하여 메모리를 할당하지 않습니다. 이유는 사용하지 않기 때문입니다.

public class Main { public static void main(String[] args) { int num; // 값이 존재하지 않는 변수에는 // 접근할 수 없다 System.out.println(num); // 컴파일 오류 발생 } }
copy

그리고 값이 존재하지 않는 경우 변수에 접근할 수 없습니다. 자바 언어를 자바 가상머신이 읽을 수 있는 코드(자바 바이트 코드)로 바꾸는 컴파일이 되지 않습니다.

*이후에 배우는 멤버 변수는 값을 존재하지 않더라도 메모리에 적재도 하고 초기화도 해줍니다. 지금은 헷갈릴 테니 넘어갑시다.




5. 아스키 코드표


아스키코드 wiki

도전자 질문
아이콘iydo09(2021-08-26 00:31 작성됨)
값이 존재하지 않은 변수는 오브젝트 라고도 할수 있나요?
아이콘코드라떼(2021-08-26 15:12 작성됨)
안녕하세요. 코드라떼입니다.

변수와 리터럴(값)을 별도로 생각하셔야 합니다. 값이 존재하지 않는 변수는 공간을 점유하는 비어 있는 상자라고 보시면 됩니다. 그리고 오브젝트(개체 또는 객체)는 의미가 전혀 다릅니다. 이후의 객체에 대한 강의에서 아시게 됩니다.

감사합니다.
이용약관|개인정보취급방침
알유티씨클래스|대표, 개인정보보호책임자 : 이병록
이메일 : cs@codelatte.io|운영시간 09:00 - 18:00(평일)
사업자등록번호 : 824-06-01921|통신판매업신고 : 2021-성남분당C-0740
주소 : 경기도 성남시 분당구 대왕판교로645번길 12, 9층 24호(경기창조혁신센터)