
패키지(package)
- 패키지는 자바 파일을 구분하기 위한 폴더
- variable 라는 패키지를 만들었다면, 해다 패키지에 들어가는 자바 파일 첫줄에 package variable;와 같이 소속된 패키지를 선언해주어야 한다
- 자바 파일이 위치하는 패키지와 package variable 선언 위치가 같아야 한다
이 코드는 단순히 숫자 10을 3번 출력하는 코드이다 그런데 여기서 10을 3번 출력하는 대신에 숫자20을 3번 출력하도록 코드를 변경해보자 어떻게 해야 할까?
System.out.println(20);
System.out.println(20);
System.out.println(20);
숫자 10이라고 적혀 있는 곳을 모두 찾아서 숫자 20으로 변경해야 한다 여기서는 총 3번의 코드 변경이 발생했다
단순한 예제여서 코드를 3번만 변경했지만, 만약 숫자 10을 출력하는 부분이 100개라면 100개의 코드를 모두 변경해야 한다
더 나아가서 사용자가 숫자를 입력하고, 사용자가 입력한 숫자를 출력하고 싶다면 어떻게 해야할까? 사용자가 입력한 값은 항상 변한다 누군가는 100을 입력하고 누군가는 200을 입력할 수도 있다
결국 어딘가에 값을 보관해두고 필요할 때 값을 꺼내서 읽을 수 있는 저장소가 필요하다
모든 프로그래밍 언어는 이런 문제를 해결하기 위해 변수(varable)라는 기능을 제공한다 변수는 이름 그대로 변할 수 있다는 뜻이다

- 숫자 정수(integer)를 보관할 수 있는 이름이 a라는 데이터 저장소를 만든다, 이것을 변수라 한다
- 이렇게 변수를 만드는 것을 변수 선언이라 한다
- 이제 변수a에는 숫자 정수를 보관할 수 있다

- 자바에서 =은 오른쪽에 있는 값을 왼쪽에 저장한다는 뜻이다
- 수학에서 이야기하는 두 값이 같다(equls)와는 다른 뜻이다!!
- 이처럼 변수에 처음으로 값을 대입해서 저장하는 것을 변수 초기화라 한다

- 변수에 저장되어 있는 값을 읽어서 사용하는 방법은 간단하다, 변수 이름을 적어주기만 하면 된다
- 변수 a에 10이 들어가 있다면 자바는 실행 시점에 변수의 값을 읽어서 사용한다
- 변수의 값은 반복해서 읽을 수 있다 변수의 값을 읽는다고 값이 없어지는 것이 아니다

- 변수의 값을 변경하면 변수에 들어있던 기존 값은 삭제된다
변수를 선언하면 컴퓨터의 메모리 공간을 확보해서 그곳에 데이터를 저장할 수 있다 그리고 변수의 이름을 통해서 해당 메모리 공간에 접근할 수 있다
-> 데이터를 보관할 수 있는 공간을 만들고, 그곳에 이름을 부여한다


컴퓨터에서 메모리는 여러 시스템이 함께 사용하는 공간이다 그래서 어떠한 값들이 계속 저장된다
변수를 선언하면 메모리상의 어떤 공간을 차지하고 사용한다 그런데 그 공간에 기존에 어떤 값이 있었는지는 아무도 모른다 따라서 초기화를 하지 않으면 이상한 값이 출력될 수 있다 이런 문제를 예방하기 위해 자바는 변수를 초기화 하도록 강제한다
컴파일 에러는 자바 문법에 맞지 않았을 때 발생하는 에러이다 컴파일 에러는 오류를 빨리, 그리고 명확하게 찾을 수 있기 때문에 사실은 좋은 에러이다 덕분에 버그를 빠르게 찾아서 고칠 수 있다