안녕하세요 차세대 IT리더가 되고픈 비공자입니다.
오늘은 자바에서 변수에 대해서
조금 더 상세하게 알아보려고 해요~
저번 포스팅에서는 변수의 초기화 및 정의하는 방법과
변수의 타입에 대해서 공부를 했었습니다.
오늘은 조금 더 상세하게 공부를 해보도록 할게요!
그럼...
같이 공부를 해보겠습니다!
[ 오늘의 목록 ]
1. 변수가 그릇이라는데 크기는 얼마나 될까?
2. 변수는 어떻게 컴퓨터가 인식을 할까?
3. 변수에 데이터가 어떻게 저장이 되는 걸까?
[ 1. 변수가 그릇이라는데 크기는 얼마나 될까? ]
다들 흔히 변수는 데이터를 담는 그릇이다.
이러한 말들을 하는 이유가 데이터를 변수에
데이터의 타입과 변수의 타입이 맞다고 해서
무조건 담을 수 있는 게 아니라 크기 제한이 있어서
그릇이라고들 하는 것 같아요~
저희가 처음 배운 변수의 타입인
정수형 변수 int에 대해서 공부했지만
int형 변수도 데이터를 담을 수 있는 크기가 있습니다.
[ 변수의 크기 참고 ]
int형 변수 = 4Byte
float형 변수 = 4Byte
char형 변수 = 2Byte
string형 변수 = 클래스( 이건 나중에 따로 공부할게요^^.. )
[ int형 정수의 데이터 크기 ]
=> 4byte입니다.
( 4byte가 얼마만큼의 크기인가요? )
저희가 흔히들 Bit(b), Byte(B), Kilobyte(KB),
Megabyte(MB), GIGAbyte(GB).. 이러한
데이터의 크기에 대해서 들어보셨을 거예요~
이러한 데이터의 크기들이 실제로 코드에서
변수에 데이터를 담을 때 계산을 해서 데이터를 담아요!
[ 바이트의 크기 변화 ]
1Bit 8개가 전부 더하면 1Byte가 됩니다.
그림으로 이해하자면
위의 그림처럼 1bit 하나의 단위가 8개가 모이면
1Byte가 됩니다.
[ 그렇다면 여기서 문제 ]
2Byte는 몇 개의 비트가 필요할까요?
...
...
해결하셨을까요??
정답은....
2Byte는 1Byte에다가 2를 곱했으니 똑같이
8Bit 또한 2를 곱해주면 됩니다!
그렇다면 총 16Bit라는 결론이 나옵니다.
위와 같이 그림으로 보시면 좀 더 이해하기 쉽겠지요 ^^
[ 두 번째 실전문제 ]
이번엔 int형 변수는 4Byte입니다.
그러면 총 몇 Bit(비트)일까요?
....
....
해결하셨을까요?
정답은...
int형 변수는 4Byte
1Byte = 8Bit이니까
1Byte x 4 = 4Byte
8Bit x 4 = 32Bit
총 32Bit입니다!
위의 그림으로 조금 더 추상화를 표현해서 보시면
조금 더 이해가 쉽겠지요^^..
[ 2. 변수는 어떻게 컴퓨터가 인식을 할까? ]
두 번째는 바로 그렇다면 이렇게 변수의 크기도 알았고
변수를 선언해서 초기화 및 정의하는 법도 알았는데
그러면 이러한 변수는 컴퓨터가 어떻게 인식할까요?
그건 바로 bit 하나하나에 저장하는 위치 즉,
주소(메모리)가 있어요!
주소 배우기 이전에 이진수를 알아야 하지만!!
간략하게 설명하자면 이진수는 0과 1로 이루어진 수를
말할 수 있는데 이 부분은 나중에 자세하게 설명하도록 하고
1Byte는 8bit라고 말씀드렸지만 이러한
bit 하나씩이 이진수가 들어갈 수 있습니다.
그림으로 설명하자면
이렇게 1Byte 변수에 데이터를 아무것도 저장하지 않았다면
변수의 주소는 전부 0 0 0 0 0 0.. 이렇게 주소가 있어요~
( 데이터가 없어도 Bit는 존재해요~! )
여기서 변수에 데이터를 담는 거에 따라 주소가
00000101 이런 식으로 주소가 설정이 되는 거지요!
[ 예를 들어서 ]
1Byte 변수에 숫자 5를 저장한다고 치면
5를 이진수로 표현하자면
숫자 5를 이진수로 표현한 저 나머지(연두색)가
bit의 담겨서 주소가 되는 거고 컴퓨터는 이러한 주소(메모리)
를 인식할 수 있습니다!
[ 3. 변수에 데이터가 어떻게 저장이 되는 걸까? ]
Int형 변수에 정수 5를 저장하면
색칠된 부분의 주소를 사용하면서 저장이
되는 걸로 볼 수 있습니다. 이게 메모리가 되고~
이러한 메모리들을 컴퓨터가 인식을 할 수
있는 거예요~!
오늘은 자바의 변수를 조금 더 상세하게 공부를 했습니다.
변수의 크기와 변수의 주소, 컴퓨터가 변수를 인식하는 이유
변수에 데이터가 저장되지만 어떻게 저장이 되는 걸까?
조금 상세하게 공부를 했었는데 저도 많이 배워가는 것 같아요!
다들 제가 포스팅한 내용이 이해가 잘 되셨을지 모르지만..
열심히 작성을 했는데.. 꼭 도움이 되셨기를 바랍니다 ^^..
그럼...
오늘도 저의 포스팅을 읽어주셔서 감사합니다!
'Java 개발자가 되고 싶은 비공자' 카테고리의 다른 글
자바(Java)의 equals( 문자열 비교 ) 문자열에 대해 자세히 공부[4] (28) | 2024.01.17 |
---|---|
자바(Java)의 indexOf( 문자 위치 ) 문자열에 대해 자세히 공부[3] (27) | 2024.01.16 |
자바(Java)의 charAt( 문자 위치 ) 문자열에 대해 자세히 공부 [2] (30) | 2024.01.15 |
자바(Java)의 Wrapper클래스 문자열에 대해 자세히 공부 [1] (29) | 2024.01.14 |
자바(Java) 이클립스(Eclipse)에서 변수 생성 및 정의 [1] (28) | 2024.01.14 |