배열
배열은 인덱스(index)와인덱스에 대응하는 데이터들로 이루어진 연속적인 자료 구조로서, 같은 종류의 데이터들이 순차적으로 저장된다.
자바에서의 배열 생성은 C/C++와 달리 2단계로 이루어진다.
- 배열에 대한 레퍼런스 변수 선언
- 배열 생성 - 배열의 저장공간 할당
1. 배열에 대한 레퍼런스 변수 선언
int intArray [];
배열 공간을 할당되지 않으며 레퍼런스 변수 intArray만 생성된다. intArray는 배열 공간에 대한 주소 값을 가지며 그 자체가 배열은 아니다. 이때 intArray의 값은 null이다. 이처럼 배열 주소를 레퍼런스라고 부르며, 주소값을 가지는 변수를 레퍼런스 변수라고 한다.
2. 배열 생성
배열 생성은 데이터를 저장할 배열 공간을 할당받는 과정이다. 반드시 new 연산자를 이용하여 배열을 생성하며 [] 안에 생성할 원소 개수를 지정한다. 다음 코드는 정수 5개의 배열 공간을 할당받고 이 배열에 대한 레퍼런스 값(주소 값)을 intArray에 저장한다.
int [] intArray = new int[5];
int size = intArray.length;
또한 자바는 new를 이용하여 생성된 것은 다 객체로 관리하기 때문에 기본형 배열도 객체가 생성된다.
- 배열 객체 안에는 배열의 실제공간, 함수 들이 들어있다.
- .length 찍으면 크기 나오는 것이 다 객체의 멤버변수이기 때문이었던 것
예외처리
▶︎ 컴파일 오류
- 문법에 맞지 않게 작성된 코드
▶︎ 예외
오동작이나 결과에 악영향을 미칠 수 있는 실행 중 발생한 오류
- 정수를 0으로 나누는 경우
- 정수 입력을 기다리는 코드가 실행되고 있을 때, 문자가 입력된 겨우
자바에서 예외처리 가능
- 예외 발생 -> 자바 플랫폼이 인지 -> 응용 프로그램에서 전달
- 전달 받았을 때 대체할 수 있는 예외처리를 해야한다.
✓ 예외처리, try-cathc-finally 문
try{
예외가 발생할 가능성이 있는 실행문(try문)
}
catch(처리할 예외 타입 선언){
예외처리문(catch 블록)
}
finally{
예외 발생 여부와 상관없이 무조건 실행되는 문장
}
try문 중 예외가 발생하면 바로 cathch로 점프. 다시 try문으로 돌아오지 않음
✓자주 발생하는 예외
예외 타입 | 예외 발생 경우 | 패키지 |
ArithmeticException | 정수를 0으로 나눌 때 발생 | java.lang |
NullPointerException | null 레퍼런스를 참조할 때 발생 | java.lang |
ClassCastException | 변환할 수 없는 타입으로 객체를 변환할 때 발생 | java.lang |
OutOfMemoryError | 메모리가 부족한 경우 발생 | java.lang |
ArrayIndexOutOfBounds | 배열의 범위를 벗어난 접근 시 발생 | java.lang |
IllegalArgumentException | 잘못된 인자 전달 시 발생 | java.lang |
IOException | 입출력 동작 실패 또는 인터럽트 시 발생 | java.io |
NumberFormatException | 문자열이 나타내는 숫자와 일치하지 않는 타입의 숫자로 변환 시 발생 | java.lang |
InputMismatchException | Scanner 클래스의 nextInt()를 호출하여 정수로 입력받고자 하였지만, 사용자가 'a'등과 같이 문자를 입력한 경우 |
java.util |
728x90
'CS > 자바' 카테고리의 다른 글
자바 #5 - 생성자와 접근 지정자 (1) | 2024.02.09 |
---|---|
자바 #4 - 객체지향 언어의 특징 (0) | 2024.02.07 |
자바#2 - 자바의 데이터 타입과 입력 (1) | 2024.02.04 |
자바#1 - JAVA의 시작 (JAVA의 태동과 특징) (0) | 2024.02.03 |
Arrays.sort()와 Collections.sort() 차이 (0) | 2024.01.10 |