예외의 발생은 여러가지 방면에서 발생할 수 있다. 가령 사용자의 실수나, 네트워크의 불안정성, 디스크의 메모리부족, 개발자의 코드 에러 등 다양한 부분에서 예외가 발생한다. 그렇다면 이러한 예외는 어떻게 해결할 수 있을까? java에서는 예외가 발생하게 되면 컴파일러가 컴파일을 멈추고 에러가 발생된다. 이러한 에러는 컴파일 에러와 런타임에러가 있다. 컴파일 에러 이름 그대로 컴파일을 할 때 발생하는 에러다. 새미콜론의 생략, 오탈자, 잘못된 포맷 및 자료형 등 문법적 오류를 뜻하게 된다. 컴파일 오류는 IDE가 특정 라인에서 발생하는 오류를 빨간색으로 표시해주기 때문에 보다 쉽게 파악 할 수 있다. 런타임 에러 런타임은 런타임시에 발생하는 에러를 뜻한다. 또한 런타임에러는 JVM(Java Virtual ..
제네랄!!! 장군이라는 의미를 담고있지만 "일반적인"이라는 의미를 담고 있는 언어다. 반면, 제네릭은 "데이터 타입을 일반화 한다"는 의미를 가지고 있다. 따라서, 제네릭은 단 하나의 클래스만으로 모든 타입의 데이터를 저장 할 수 있는 인스턴스를 만들 수 있다. 제네릭의 예시 다음과 같이 제네릭을 코딩할 수 있다. class ImGeneric { private G people; public ImGeneric(G people){ this.people = people; } public G getPeople(){ return people; } public void setPeople(G people){ this.people = people; } } 이 상태에서 Integer 타입을 리턴하고 싶다면 다음과 같이 ..
열거형 클래스는 JDK 1.5이상의 버전에서만 사용된다. 열거형 클래스의 특징을 말하자면 서로 연관성이 있는 상수들의 집합을 의미한다. 이전의 클래스는 public static final을 통해 상수를 처리했지만 상수명이 중복될 수 있다는 단점이 있었다. 이러한 단점은 Interface를 활용하여 상수를 구분함으로써 해결 할 수 있지만 타입 안정성 문제 때문에 완전한 해결방법이 되지 못했다. 하지만 Enum은 이러한 문제를 효과적으로 처리 할 수 있다. Enum의 정의 enum Man{ // enum + 열거형 이름 이름 상수명 1, 상수명 2, 상수명3 } enum에 정의하는 방법은 간단하다. 클래스에 static 변를 참조하듯이 열거형 이름과 상수명을 작성하면 된다. enum은 필드를 선언할 수 있으..