본문 바로가기

Java

(37)
Ch5 - 배열 2 객체를 참조하는 배열 P.165 "참조타입(클래스, 인터페이스)" 배열은 각 항목에 객체의 번지를 가지고 있다. 대표적인 객체 배열 String[]배열은 각 항목에 문자열이 아닌 String 객체의 주소를 가지고 참조한다." 문자열을 참조하는 배열 객체를 참조하는 배열은 1차원 배열이더라도 내부 구조는 기본타입의 2차원 배열과 유사하다. 힙 영역안에 객체의 주소를 가진 배열과 각각의 객체들이 존재한다. (그림 참조) //문자열을 참고하는 배열 String[] sA = new String[3]; //1차원 배열 sA[0] = "Java" //Java란 문자열이 힙 영역에 생기고 주소값이 0열에 들어감 sA[1] = "Java" //new생성자를 사용하지 않고 문자열이 같으므로 같은 객체를 공유, 0열의 주..
add메소드와 배열생성 add()메소드 P.154 "매개 변수로 int[]배열이 선언된 add() 메소드가 있을 경우, 값 목록으로 배열을 생성함과 동시에 add() 메소드의 매개값으로 사용하고자 할 때는 반드시 new연산자를 사용한다" add()메소드를 호출하면서 int[]배열을 매개변수로 받기 위해서는 new연산자를 사용해야한다. 메소드를 호출하여 관련 연산이 시작될 때, 그 안에서 가장 먼저 배열이 새롭게 생성되어야 하기 때문이다. 아래 예제를 통해 알아본다. add()메소드를 통해 리턴된 값을 sum1에 저장하려 한다. 이때의 매개 변수는 값을 {83, 90, 87}로 가지는 int[]배열 자체이다. 방법은 두 가지다. 하나는 {83,90,87}이란 값을 가진 배열 scores를 미리 선언한 뒤 add()메소드의 매개변..
배열 속의 배열 예제 (p.164) -배열 속의 배열 package BookExampleHomework; public class ArrayInArrayExample { public static void main(String[] args) { int[][] mathScores = new int[2][3]; //2행 3열의 이차원배열 생성 for (int i = 0; i < mathScores.length; i++) { for (int k = 0; k < mathScores[i].length; k++) { System.out.println("mathScores["+i+"]["+k+"] = " +mathScores[i][k]); //각 배열값은 모두 0으로 초기화 } } System.out.println(); int[][] ..
Ch5 - 배열 1 배열 선언 P.151 "대괄호 []는 배열변수를 선언하는 기호로, 타입 뒤에 붙을 수도 있고 변수 뒤에 붙을 수도 있다" "배열 변수는 참조 변수에 속한다. 배열도 객체이므로 힙 영역에 생성되고 배열 변수는 힙 영역의 배열 객체를 참조하게 된다." 즉, iA는 참조변수로서 스택메모리에 올라가고, 배열객체는 힙메모리에 존재하며 주소값으로 연결된다. 이때 주소값은 iA에 저장되어 있으며, 배열객체의 첫번째 열 또한 이 주소를 가지고 있다. 값 목록으로 배열 생성 p. 152~3 "중괄호{}는 주어진 값들을 항목으로 가지는 배열 객체를 힙에 생성하고, 배열 객체의 번지를 리턴한다. 배열 변수는 리턴된 번지를 저장함으로써 참조가 이루어진다" 단, 이렇게 배열 선언을 한 경우에는 다른 실행문에서 중괄호를 사용한 ..
커맨드 라인 입력 public static void main(String[] args) P.159 "java 클래스"로 프로그램을 실행하면 JVM이 길이가 0인 String 배열을 먼저 생성하고 main() 메소드를 호출할 때 매개값으로 전달한다. main()메소드는 String[]args 매개 변수를 통해서 커맨드라인에서 입력된 데이터의 수(배열의 길이)와 입력된 데이터(배열의 항목 값)을 알 수 있게 된다. " "자바 프로그램의 실행 순간 외부값을 가져와서 프로그램 안에 사용하고자 할 때, 메모리에 저장할 공간을 미리 만들어 놓는다." 프로그램 실행과 동시에 바로 특정 값을 입력받아 프로그램을 수행해야 할때 커맨드라인을 사용한다. 사용법 : Run - Run Configurations - Program arguemen..