"이번 레슨도 내가 한다. 설명하지 못한 게 있거든. 변수와 메모리 주소 지정에 관해 말해 줄게. 너무 깊이 파고들지는 않겠지만 적어도 뭔가 기억한다면 좋겠다."

"레슨에 접근하는 선생님의 방식이 정말 마음에 들어요. 뭔가 이해한다면 대단한 거야. 아무것도 이해하지 못해도 괜찮다."

"사랑은 강요할 수 없으니까. 이해되네요. 네 행성에서도 그렇지 않아?"

"저희는 좀 다르게 접근해요. 공부하고 싶으면 공부하고, 하고 싶지 않아도 마지못해 공부한다."

"배움에 있어서 얼마나 후진적인 접근 방식인가! 에너지와 시간을 많이 낭비하는 데다 좋지 못한 결과를 낳지."

"그런대로 낭비할 밖에요. 씁쓸한 얘기는 그만하자."

"좋아요. 엑셀을 생각해 봐. 엑셀은 누구나 알고 있지. 엑셀 시트는 셀로 구성되어 있다. 각 셀에는 고유한 자체 식별자(A1, A2,...B1, B2)가 있다. 어떤 셀의 식별자를 알고 있다면 거기에 언제나 값을 적거나 거기에 저장한 어떤 값도 취할 수 있다. 컴퓨터 메모리도 아주 비슷한 방법으로 조직되어 있다."

메모리 주소 지정과 변수 - 1

"지금까지는 이해해요."

"프로그램을 실행할 때 프로그램과 프로그램 데이터가 메모리에 저장된다. 모든 컴퓨터 메모리는 바이트라고 부르는 작은 셀로 나뉜다. 각 셀에는 연관된 고유한 식별자 또는 셀과 연관된 번호가 있다. 0,1,2,3,...(숫자는 0으로 시작한다). 셀 번호를 알면 셀 안에 데이터를 저장할 수 있다. 또는 셀에서 데이터를 취할 수 있다. 일부 셀에는 프로그램 코드, 즉 프로세서에 대한 명령어 집합을 저장한다. 다른 셀에는 프로그램에서 사용하는 데이터를 저장한다. 각 셀의 번호를 주소라고 부른다."

"교수님이 프로세서와 명령어를 이미 언급하셨지만, 자세한 말씀은 안 하셨어요."

"프로세서는 메모리에 로드된 명령어를 실행하는 방법을 안다. 거의 모든 프로세서 명령어는 '어떤 셀에서 데이터를 가져와라, 가져온 데이터로 뭔가를 해라, 결과를 다른 셀로 보내라'와 같은 것이다. 수백 개의 간단한 명령어를 조합해 복잡하고 유용한 명령을 만들어 낸다."

"그런데 이 모든 것이 왜 필요한가요?"

"코드에서 변수가 선언되면, 사용되지 않은 메모리에 선언된 변수를 할당한다. 보통 몇 바이트 정도로 할당한다. 변수를 선언하려면 프로그램이 변수에 저장할 정보 유형(숫자, 텍스트 또는 다른 데이터 유형)을 지정해야 한다. 편의상 각 변수에 고유한 이름을 지정하지."

"변수가 이름, 유형, 메모리의 일부, 값도 된다는 뜻인가요?"

"그런 것들이 모두 하나로 합쳐졌다고 봐야지. 몇 가지 예를 보자."

코드 설명
1
String s;
여기서는 s라는 변수를 생성한다. 텍스트를 저장하는데 사용할 변수니까 유형을 String으로 선언한다.
같은 함수나 클래스에서 동일한 이름으로 다른 변수를 선언할 수는 없다.
2
String s2 = "I'm Diego";
이 줄은 s2라는 문자열 변수를 생성하고 변수 값인 "I'm Diego"를 즉시 저장한다.
3
int a;
여기서는 a라는 변수를 생성한다. 이 데이터 유형이 변수에 저장될 데이터 유형과 일치한다. int 데이터 유형은 integer의 약어이다.
4
int b = 4;
b라는 변수를 생성한다. 데이터 유형(int)은 정수를 저장한다. 값 4가 변수에 즉시 지정된다.

"여기 디에고가 보낸 과제가 몇 개 있다. 한 번에 조금씩 해보도록."

1
과제
자바 구문,  레벨 1레슨 3
잠금
우리는 이 변수들을 명확하게 공개하고 선언합니다.
자바에서는 변수를 선언해야 합니다, 즉 지정한 변수 유형으로 공간을 할당해야 합니다. 이렇게 공간을 할당한 후에만 특정 값을 지정할 수 있습니다. 이 모든 것을 한 줄에 할 수 있다니 정말 깔끔하네요. 이 과제에서는 변수를 여러 개 선언하자 마자 값을 지정해야 합니다.
1
과제
자바 구문,  레벨 1레슨 3
잠금
화면상의 변수
초급 자바 프로그래머는 (변수)를 선언하고 (값을 변수)에 지정하며 (변수와 값)을 출력하는 것부터 우선 배웁니다. 이 과제에서는 기본 기술 세 가지를 모두 연습합니다. String 변수를 생성해 값을 지정하고 출력합니다.
1
과제
자바 구문,  레벨 1레슨 3
잠금
변수 하나로는 충분하지 않습니다
프로그래밍을 배울 때, 일부 작업이 처음에는 불필요한 반복처럼 보일 수도 있습니다. 그것은 착각입니다. 숙련은 반복(변화는 있겠죠!)으로 익힐 수 있으나 다른 방법으로는 성취할 수 없습니다. 짜증은 그만. 대신 변수를 한 번 더 선언해 봅시다. 이번에는 변수가 셋입니다. 이들 변수에 값을 지정합니다.
2
과제
자바 구문,  레벨 1레슨 3
잠금
숫자의 제곱 출력
첫인상이 최선인 경우는 거의 드물지만 그래도 남은 생애 동안 잊지 않는 것임에는 분명합니다. 프로그래밍에 관해 말하는 거예요, 분명히 말해 둘게요. 이 과제에서는 숫자의 제곱을 계산하여 결과 값을 화면에 표시하고 키보드에서 데이터를 읽어 들이는 기능도 사용할 거예요(프로그램을 실행하는 동안 사용자가 숫자를 입력합니다).