package class01; public class Test01 { public static void main(String[] args) { int a = 10; int b = 0; System.out.println(a/b); } } Exception in thread "main" java.lang.ArithmeticException: / by zero at day13/class01.Test01.main(Test01.java:12) a / b를 연산하는 과정에서 나누는 수인 b가 0이라서 예외가 발생합니다. java.lang.ArithmeticException Thrown when an exceptional arithmetic condition has occurred. For example, an in..
오류와 예외 컴퓨터 시스템이 동작하는 도중에 예상하지 못한 사태가 발생하여 실행 중인 프로그램이 영향을 받는 것을 오류(error)와 예외(exception) 두 가지로 구분할 수 있습니다. 오류(error) 시스템 레벨에서 프로그램에 심각한 문제를 야기하여 실행 중인 프로그램을 종료시킵니다. 이러한 오류는 개발자가 미리 예측하여 처리할 수 없는 것이 대부분이므로, 오류에 대한 처리는 할 수 없습니다. 예외(exception) 예외는 오류와 마찬가지로 실행 중인 프로그램을 비정상적으로 종료시키지만, 발생할 수 있는 상황을 미리 예측하여 처리할 수 있습니다. 따라서 개발자는 예외 처리(exception handling)를 통해 예외 상황을 처리할 수 있도록 코드의 흐름을 바꿀 필요가 있습니다. 예외 처리 ..
삽입 정렬 삽입 정렬은 선택 정렬과 유사하지만, 좀 더 효율적인 정렬 알고리즘입니다. 삽입 정렬은 2번째 원소부터 시작하여 그 앞(왼쪽)의 원소들과 비교하여 삽입할 위치를 지정한 후, 원소를 뒤로 옮기고 지정된 자리에 자료를 삽입 하여 정렬하는 알고리즘입니다. 최선의 경우 O(N)이라는 엄청나게 빠른 효율성을 가지고 있어, 다른 정렬 알고리즘의 일부로 사용될 만큼 좋은 정렬 알고리즘입니다. 프로세스 정렬은 2번째 위치(index)의 값을 temp에 저장합니다. temp와 이전에 있는 원소들과 비교하며 삽입해나갑니다. '1'번으로 돌아가 다음 위치(index)의 값을 temp에 저장하고, 반복합니다. 코드 구현 void insertionSort(int[] arr) { for(int index = 1 ; i..
컬렉션 프레임워크 컬렉션 프레임워크란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미합니다. 즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것입니다. 컬렉션 프레임워크 주요 인터페이스 컬렉션 프레임워크에서는 데이터를 저장하는 자료 구조에 따라 다음과 같은 주요 인터페이스를 정의하고 있습니다. List 인터페이스 Set 인터페이스 Map 인터페이스 List List 특징 요소의 저장 순서가 유지됩니다. 같은 요소의 중복 저장을 허용합니다. 크기를 지정하지 않아도 선언 가능합니다. toString 오버라이딩이 가능합니다. 다양한 메서드가 제공됩니다. List 종류 ArrayList LinkedList Vector..
package class01; public class Test01 { public static void main(String[] args) { int[] data = new int[3]; data[0] = 10; data[1] = 20; data[2] = 30; System.out.println(data); data[3] = 40; System.out.println(data[3]); } } [I@4e50df2e Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3 at day12/class01.Test01.main(Test01.java:16) data 배열의 크기는 3인데..