JShell은 Java 9부터 도입된 명령줄(command-line) 도구로, 간단한 문장, 표현식, 클래스, 메서드, 변수 등을 입력하면 그 결과를 즉시 화면에 출력해 주는 대화형 환경입니다. 코드를 파일로 저장하고 컴파일하는 과정 없이도 자바 문법을 빠르게 실험하고 학습할 수 있어 초보자에게 특히 유용합니다.
자바에서 배열(array) 역시 하나의 객체(object)입니다. 배열을 사용하려면 먼저 선언한 뒤 생성해야 하며, 정수 배열을 담을 변수를 선언할 때는 int[] array와 같이 표기합니다. 배열의 인덱스(index)는 0부터 (배열 길이 - 1)까지의 범위를 가진다는 점을 기억해 두세요.
아래 코드 예제에서는 인덱싱 연산자인 [ ]를 사용해 배열에서 특정 요소에 접근하는 방법을 확인할 수 있습니다. 예를 들어 marks[0]이라는 표현식은 marks 배열의 인덱스 0에 저장된 첫 번째 요소를 가리킵니다.
예제 1 - 배열 생성과 인덱스 접근
jshell> int[] marks = {80, 75, 95};
marks ==> int[3] { 80, 75, 95 }
jshell> marks[0]
$2 ==> 80
jshell> marks[1]
$3 ==> 75
jshell> marks[2]
$4 ==> 95
jshell> int sum = 0;
sum ==> 0
jshell> for(int mark:marks) {
...> sum = sum + mark;
...> }
jshell> sum
sum ==> 250다음 예제에서는 8개의 int 값을 저장할 수 있는 배열을 생성한 후, for 반복문으로 배열 전체를 순회하면서 각 요소의 값을 출력하는 방법을 보여줍니다. 또한 marks.length 속성을 통해 배열의 길이를 손쉽게 확인할 수 있습니다.
예제 2 - for 반복문으로 배열 순회하기
jshell> int[] marks = {1, 2, 3, 4, 5, 6, 7, 8};
marks ==> int[8] { 1, 2, 3, 4, 5, 6, 7, 8 }
jshell> marks.length
$1 ==> 8
jshell> for(int i=0; i < marks.length; i++) {
...> System.out.println(marks[i]);
...> }
1
2
3
4
5
6
7
8마지막 예제에서는 new 키워드로 배열을 생성했을 때 타입별 기본값이 어떻게 자동 초기화되는지 확인할 수 있습니다. int는 0, double은 0.0, boolean은 false, 객체 타입은 null로 초기화됩니다. 이처럼 자바에서는 개발자가 명시적으로 값을 지정하지 않아도 JVM이 타입에 맞는 기본값으로 배열 요소를 자동으로 채워 줍니다.
예제 3 - 타입별 기본값으로 배열 초기화하기
jshell> int[] marks = new int[5];
marks ==> int[5] { 0, 0, 0, 0, 0 }
jshell> double[] values = new double[5];
values ==> double[5] { 0.0, 0.0, 0.0, 0.0, 0.0 }
jshell> boolean[] tests = new boolean[5];
tests ==> boolean[5] { false, false, false, false, false }
jshell> class Person {
...> }
| created class Person
jshell> Person[] persons = new Person[5];
persons ==> Person[5] { null, null, null, null, null }