Java 52

예외 (Exception)

예외 (Exception) 1. 예외란? 프로그래밍 언어의 문법에 맞지 않게 프로그램을 작성하면 컴파일 오류가 발생한다. 그러므로 실행하기 전에 문법에 맞지 않게 작서오딘 오류는 미리 걸러내어야 한다. 그러나 프로그램 실행 중 계속 변하는 배열의 인덱스가 범위를 벗어나는 것은 컴파일 시점에서 걸러낼 수 없다. 이퍼럼 프로그램 실행 중에 발생하는 런타임 오류(runtime error)는 미리 걸러낼 수가 없어 자바에서는 예외(Exception)라는 것을 사용하여 처리하낟. 예외란 프로그램의 실행 중에 런타임 오류틔 발생을 응용프로그램에게 알리는 행위이다. 예외가 발생하는 몇가지 경우를 나열해보자. 1) 정수를 0으로 나누는 경우2) 배열의 크기보다 큰 인덱스로 배열의 원소를 접근하는 경우3) 파일의 마지막..

Java/Java 기본 2018.06.21

main() 메소드의 인자

main() 메소드의 인자 main() 메소드는 자바에서 응용프로그램이 시작되는 메소드로서 특별한 의미를 가진다. main() 메소드의 원형은 다음과 같다. public static void main(String[] args) {...} 1. main() 메소드의 타입과 특징 1) 자바 응용프로그램 실행은 main() 메소드부터 시작한다. 2) main() 메소드는 public 속성이다.public 속성은 메소드가 다른 모든 클래스에서 호출 가능함을 표시한다. 자바 응용프로그램이 실행을 시작할 때 자바 가상 기계(JVM)에 의해 호출되어야 하므로 public 속성으로 선언 되어야 한다. 3) main() 메소드는 static 속성이다.main() 메소드는 시작할 때부터 JVM에 의해 호출되어야 하므로 프..

Java/Java 기본 2018.06.13

메소드에서 배열 리턴

메소드에서 배열 리턴 메소드에서 배열을 리턴할 수 있다. 이 경우 실제 배열에 대한 레퍼런스가 리턴된다. 메소드가 반환하는 배열의 타입과 배열의 차원은 리턴받는 배열 레퍼런스 변수의 타입과 배열의 차원에 일치하여야 한다. 그리고 메소드에서 리턴하는 배열의 크기는 매번 다를 수가 있으므로 메소드 선언 시 배열의 크기는 정하지 않는다. 다음은 예시를 위해서 만든 makeArray() 메소드의 코드이다. 이 메소드는 int[] 배열을 리턴타입으로 삼는다. int[] makeArray() {int temp[] = new int[4];return temp;} makeArray() 메소드로부터 배열을 리턴받는 코드를 작성을 해보도록 하자. int[] intArray = makeArray(); // 메소드 호출 후 ..

Java/Java 기본 2018.06.12

다차원 배열

다차원 배열 자바에서 여러 차원의 배열을 만들 수 있다. 그러나 일반적으로 3차원 이상의 배열은 잘 사용하지 않는다. 실무 상에서도 일반적으로 2차원 배열까지만 사용한다. 가끔 3차원 배열을 사용하는 경우도 있기는 하지만 워낙 드문 일이고, 그마저도 자바 컬렉션으로 대체하는 경우가 많다. 따라서, 사실상 3차원 배열 이상은 사용할 일이 없다고 생각하면 될 것이다. 자바의 다차원 배열은 독특한 구조를 가지기 때문에 비정방형 배열을 만들 수도 있다. 1. 2차원 배열 - 2차원 배열의 선언과 생성 자바에서 2차원 배열의 레퍼런스 변수 선언은 다음과 같다. int intArray[][];int[] intArray[];int[][] intArray; 위의 3가지 방식들 중에서 아무 방식이나 골라서 사용하면 된다..

Java/Java 기본 2018.06.12

배열의 크기와 인덱스

배열의 크기와 인덱스 다른 언어와 동일하게 자바에서도 배열의 인덱스는 정수만 가능하며 정수형 상수도 사용할 수 있다. 인덱스는 0부터 시작하며 마지막 원소의 인덱스는 (배열의 크기 - 1)이 된다. 예를 들어서 “int intArray = new int[5];” 라는 문장을 통해서 정수형 배열 intArray를 생성하게 되면, 이 배열의 크기는 5가 되고, 인덱스는 0부터 4까지 존재하게 된다. 1. 배열의 크기, length 필드 자바에서는 배열도 하나의 객체처럼 다루어진다. 객체에 대해서 아직 다루지 않았기에 모를 수도 있겠지만, 자바에서 객체는 필드라는 변수를 가질 수 있다. 이 변수는 각 객체마다 고유하게 가지게 되는 특성이라고 생각하면 된다. 객체에 대해서 더 자세한 개념은 이후에 설명하도록 하..

Java/Java 기본 2018.06.12

배열 원소 접근

배열 원소 접근 배열의 원소에 대한 접근은 배열 레퍼런스 변수와 인덱스를 이용한다. 배열 레퍼런스 변수와 [] 사이에 원소의 인덱스를 적어 접근한다. 이때, 원소에 대한 인덱스는 0부터 시작한다. 배열의 원소를 사용하는 예를 들면 다음과 같다. int[] intArray = new int[10];intArray[0] = 5; // 인덱스가 0인 원소에 5를 저장intArray[3] = 6; // 인덱스가 3인 원소에 6을 저장int a = intArray[3]; // 배열로부터 값을 읽음 배열의 원소에 접긍ㄴ하려면 반드시 배열이 생성되어 있는 상태여야 한다. 배열이 생성되어 있지 않는 상태에서 배열에 접근하면 배열이 초기화가 되지 않았다는 컴파일 오류가 발생하거나 실행시간 오류가 발생한다.

Java/Java 기본 2018.06.12

배열의 참조

배열 참조 앞에서 배열의 선언과 생성은 별개임을 설명하였다. 그러므로 생성된 하나의 배열을 다수의 레퍼런스가 참조할 수도 있다. 다음 예시 코드를 통해서 그 개념에 대해서 알아보도록 하자. int oldArray[] = {1, 2, 3, 4, 5};int newArray[] = oldArray;newArray[1] = 3; 위의 이미지를 보게 되면 stack과 heap이라는 글자가 보일 것이다. JVM내에는 지역변수와 같이 메소드 내에서 발생한 데이터를 저장하는 stack이라는 공간과 객체나 배열등의 인스턴스를 저장하는 heap이라는 공간이 있다. 즉, 메소드 내에서 레퍼런스 변수를 선언하게 되면 stack 공간에 레퍼런스 변수가 생기게 된다. 이어서, 배열을 생성하게 되면 heap 공간에 배열 데이터가..

Java/Java 기본 2018.06.11

배열 (Array)

배열 (Array) 1. 배열이란? 배열은 순서(index)와 그 순서에 대응하는 데이터들로 이루어진 자료구조이다. 배열에는 같은 타입의 데이터들이 순차적으로 저장된다. 변수를 선언하기 위해서는 변수의 타입과 이름을 지정해 주어야 한다. 또, 그 변수의 값을 사용하기 위해서는 변수의 이름을 통해서 값에 접근해야 한다. 그런데, 변수의 수가 많아져서 하나하나 선언을 하기가 힘들 때에 배열을 사용하면 매우 효과적이다. 처음 배열을 선언할 때에 배열의 이름과 크기만 지정해주면 된다. 그 이후에는 배열 내의 원소들의 순서에 맞춰서 배열 내의 각 공간에 접근하면 된다. 간단한 예시를 통해서 살펴보도록 하자. 10개의 변수 i1부터 i10에는 각각 고유한 정수 값이 저장되어 있다. 이들의 총합을 알아내기 위해서는 ..

Java/Java 기본 2018.06.11

continue 문과 break 문

continue 문과 break 문 반복문이 실행되는 동안 작업문 내에 continue 문이나 break 문을 이용하여 반복의 흐름을 변경할 수 있다. break 문은 반복문을 벗어나기 위해 사용되며 continue 문은 반복을 한 번 건너뛰기 위해 사용된다. 1. continue 문 continue 문은 반복문을 완전히 빠져나가지 않으면서 반복문 내의 작업문을 건너뛸때 사용한다. 작업문 실행 도중 다음 반복으로 진행하는 효과가 있다. 예시를 통해서 자세히 알아보도록 하자. i.e. int sum = 0; for (int i = 0; i

Java/Java 기본 2018.06.11

중첩 반복

중첩 반복 (nested loop) 자바에서, 반복문은 다른 반복문을 내포할 수 있다. 즉, 반복문 안에 다른 반복문이 올 수 있다. 이것을 중첩 반복이라 한다. i.e.int k; for (int i = 0; i < 10; i++) { for (int j = 0; j < i; j++) { k = i + j;System.out.println("i + j = " + k);}} 이론적으로는 몇 번이고 중첩 반복이 가능하지만, 너무 많은 중첩 반복은 프로그램 구조를 복잡하게 하므로 보통 2중 또는 3중 반복 정도가 적당하다. 일반적으로, 중첩 반복은 반복의 범위가 명확한 for 문을 주로 이용한다.

Java/Java 기본 2018.06.11