StringBuffer - StringBuffer는 관리하는 문자열을 직접 조작할 수 있는 기능을 제공한다. 주요 메서드 - .toString : StringBuffer클래스가 관리하는 문자열을 String 으로 반환 - append : 뒤 부분에 문자열을 추가한다. - delete : 문자열을 삭제한다. - insert : 문자열을 삽입한다. - replace : 문자열을 변경한다.
String - String 클래스는 문자열에 대한 작업을 할 수 있도록 제공되는 클래스이다. - 코드상에 " " 로 묶인 문자열도 String 클래스의 객체이다. - " " 로 묶인 문자열은 가상 머신이 객체를 생성하고 소멸까지도 담당한다. - 프로그래밍을 할 떄는 " " 로 쓰지만 컴파일을 하게 되면 실제로 String 클래스로 부터 객체를 생성하는 것으로 변경된다. 주요 메서드 - equals() : 문자열 내용을 비교 - equlasIsIgnoreCase() : 대소문자를 무시한 문자열 비교 - toUpperCase() : 소문자를 대문자로 변경 - toLowerCase() : 대문자를 소문자로 변경 - startsWith() : ~로 시작여부 검사 - endsWith() : ~ 로 끝나는지 여부..
Runtime - Runtime 클래스는 프로그램과 운영체제 간의 상호 작용을 위한 메서드들이 정의되어 있다. - 프로그램이 실행이 되면 이미 Runtime 클래스의 객체를 생성해서 가지고 있으며 이 객체의 주소 값을 얻어와서 사용하면 된다. 대표 메서드 - totalMemory() : 메모리 전체의 양을 알아온다. - freeMemory() : 여유 메모리 양을 알아온다. - exec() : 운영체제에게 명령어를 전달한다. [ 도스에서 치는것과 같다 ] - gc() : 메모리를 청소해준다.
Wrapper - 자바에서 제공되는 기본 자료형에 대한 작업을 할 수 있는 클래스들을 의미한다. - Boolean, Byte, charater, Double, Float, Integer, Long, Short - 기본 자료형 값을 객체화 시킬 떄 사용한다. - 문자열로 되어있는 값을 숫자형 값으로 변환할 떄 사용한다. - 기타 다양한 기능 들이 제공된다.
예외 - 프로그래밍 상에서 예측이 가능한 오류 사항을 의미한다. - 특정 코드에 대해 오류가 날수도 있는 사항들을 기제하여 오류가 발생했을 경우 프로그램이 강제 종료되는 것을 막고 오류에 대한 처리를 개발자가 스스로 하여 프로그램이 비 정상적으로 종료되는것을 막아주는 기법이다. - 자바에서는 오류가 발생할 수도 있는 코드를 사용할 경우 사용하는 쪽에서 예외 처리를 강제적으로 하도록 유도할 수 있다. Exception - 예외가 발생하는 이를 처리해야 하는데 처리를 할 수 있는 기능을 가지고 있는 클래스가 Exception 클래스 이다. - Exception 클래스의 경우 예외가 발생되면 사용자에게 메시지를 전달할 수 있는 기능들이 포함되어 있다. - 기본적인 기능 외에 더 처리할게 있다면 그에 맞는 Ex..
임계영역 - 동시의 여러 개의 쓰레드가 특정 소스코드 혹은 메서드를 동시에 접근 할 경우 해당 메서드를 서로 사용하려고 하는데 이처럼 여러 개의 쓰레드가 동시에 접근 할 수 있는 코드 영역 혹은 메서드를 임계 영역이라고 부른다. - 프로그램에서 임계 역역이 있을 경우 프로그램 전체의 심각한 오류를 발생 시킬 수도 있다. - 자바에서는 동기화를 통해 이러한 부분을 해결할 수 있다. 동기화 - 동기화를 하게 되면 임계영역 떄문에 발생되는 문제를 막아 줄 수있다. - 동기화를 하게 되면 쓰레드가 접근하는 순서대로 코드를 처리하고 늦게 도착하는 쓰레드는 기다렸다가 먼저 도착한 쓰레드의 작업이 완료가 되면 다음 쓰레드가 작업을 하게 된다. - 동기화는 메서드를 동기화 하는 방법과 코드의 일부분을 동기화 하는 방법..
- 특정 코드에 대해 오류가 날수도 있는 사항들을 기제하여 오류가 발생했을 경우 프로그램이 강제 종료되는 것을 막고 오류에 대한 처리를 개발자가 스스로 하여 프로그램이 비 정상적으로 종료되는것을 막아주는 기법이다.
- 자바에서는 오류가 발생할 수도 있는 코드를 사용할 경우 사용하는 쪽에서 예외 처리를 강제적으로 하도록 유도할 수 있다.
Exception
- 예외가 발생하는 이를 처리해야 하는데 처리를 할 수 있는 기능을 가지고 있는 클래스가 Exception 클래스 이다.
- Exception 클래스의 경우 예외가 발생되면 사용자에게 메시지를 전달할 수 있는 기능들이 포함되어 있다.
- 기본적인 기능 외에 더 처리할게 있다면 그에 맞는 Exception을 상속 받은 클래스를 이용하면 된다.
- IOException, InteruptedException
RuntimeException
- 기본 사항은 Exception과 동일 하지만 Exception을 상속받은 예외 클래스는 프로그래밍을 할때 직접적인 예외 처리를 해야만 컴파일에 통과를 하지만 RuntimeException 을 상속받은 예외 클래스는 프로그래밍을 할때 직접적인 예외처리를 하지 않아도 컴파일 되게 허가를 해준다. 하지만 예외가 발생하면 똑같이 강제 종료가 되며 예외가 발생할 수도 있다면 예외 처리를 해줘야 한다. 하지만 이러한 예외의 경우 if 문과 같은 조건문 등을 이용하면 예외 처리 없이 오류를 방지할 수 있는 것만이 정의되어 있다.
예외 처리 블럭
- 예외 처리는 다음과 같은 문법을 통해 처리할 수 있다.
try{
예외가 발생 할 수 있는 코드
} catch (ArithmeticException e1){
arithmeticException 이 발생할 경우 처리할 코드
} catch (IOException ew) {
IOException 이 발생할 경우 처리할 코드
} finally {
예외 발생 여부에 관계없이 처리할 코드
}
오류 시에는 catch부분이 실행이 되고 finally 는 오류가 있던 정상 실행이건 실행이 된다.
throws
- 메서드에 throws 를 사용하면 예외가 발생할 경우 직접 처리하징 낳고 메서드를 호출한 곳에서 처리를 하도록 유도할 수 있다.
- 메서드에서 thorws를 통해 예외를 전달하면 메서드를 호출하는 쪽은 예외 처리 블록을 이용해 반드시 예외를 처리해줘야 한다.
throw
- 메서드 내부에서 예외를 발생시키는 경우에 사용한다.
- if 문과 같은 조건문을 통해 조건을 검사하고 잘못된 경우라 판단되면 예외를 발생시켜 메서드를 호출한 쪽에서 예외를 처리할 수 있도록 유도할 수 있다.
예외 발생 시에 해당되는 예외 문으로 코드 진행을 던진다 라고 해서 throw 라고 이해해도 무방하다.
사용자 정의 예외처리
- 자바에는 무수히 많은 예외처리 클래스를 제공하고 있다.
- 이러한 클래스들 외에 개발자가 만들어서 쓸 경우도 있는데 Exception 클래스를 상속받은 클래스를 만들어 주면 된다.
- 만약 어떠한 메시지를 사용자에게 전달하고 싶다면 getMessage 메서드를 overriding 하면 된다. 이 메서드는 예외가 발생될 때 자동으로 호출된다.