Exception 클래스 : 모든 예외의 조상 클래스 1. RuntimeExecption 클래스 주로 프로그래머의 실수에 의해 발생할 수 있는 예외 상황 예) 배열 범위 벗어난 경우, null 참조 변수 호출, 잘못된 형변환, 잘못된 수식계산.. 2. 그 외 Exception 클래스 (환경적인 문제) 주로 외부의 영향으로 발생할 수 있는 예외 상황 예) 파일의 이름이 잘못 호출, 클래스 이름이 잘못된 경우, 입력한 데이터 형식이 잘못된 경우 Exception 객체 이름 = new Exception("메세지"); throw 객체 이름; 예시 1) 자바에서는 throw 키워드를 사용하여 강제로 예외를 발생시킬 수 있습니다. 예시 2) 고의로 예외를 발생한 경우 * 구간 내에서 발생할 때 throw라고 쓴다...
Exception(예외) 오류(Error) 자바 프로그램을 작성할 때 문법이 맞지 않게 코드를 작성하고 컴파일 할 경우 나오는 상황입니다. 예외(Exeption) 시스템이 동작하는 도중에 예상하지 못한 사태가 발생하여 실행 중인 프로그램이 영향을 받는 것을 의미합니다. ● 예외가 발생하는 원인 - 사용자가 데이터를 잘못 입력하는 경우 - 개발자가 로직이나 계산을 잘못 작성하는 경우 - 하드웨어나 네트워크가 제대로 동작하지 못하는 경우 - 악의적으로 잘못된 연산을 요구하거나 시스템을 공격하는 경우 * 예외처리 try{ 예외 상황이 예상되는 문장; ... }catch(예외 상황에 맞는 클래스1 객체1){ 예외 상황1이 벌어졌을 경우 처리할 문장; ... }catch(예외 상황에 맞는 클래스2 객체2){ 예외..
Set 인터페이스 : 순서가 없는 데이터 집합으로 데이터의 중복을 허용하지 않습니다. (HashSet, TreeSet) Map 인터페이스 : 키와 값의 한 쌍으로 이루어지는 데이터의 집합으로 순서가 없습니다. 또한, 키는 중복으로 허용하지 않지만, 값은 중복될 수 있습니다. (HashMap, TreeMap, HashTable, Properties) HashSet - 요소의 저장 순서를 유지하지 않습니다. - 같은 요소의 중복 저장을 허용하지 않습니다. - 해시 알고리즘을 사용하기 때문에 검색 속도가 매우 빠릅니다. 해시 : 임의의 크기를 가진 데이터를 고정된 데이터의 크기로 변환시키는 것을 말합니다. 즉시 저장하거나 찾고자 하는 위치를 참조할 수 있으므로 빠른 속도로 처리할 수 있는 장점이 있습니다. 예..
List 인터페이스 : 순서가 있는 데이터들의 집합으로 데이터의 중복을 허용합니다. (Vector, ArrayList, LinkedList, Stack, Queue(Stack의 반대)) Stack(스택) 스택의 구조는 선형 메모리 공간에 데이터를 저장하면서 후입선출(LIFO)의 시멘틱을 따르는 자료구조입니다. 예시 1) 예시 2) LinkedList LinkedList는 데이터를 저장하는 각 노드가 이전 노드와 다음 노드의 상태만 알고 있는 저장 형태입니다. ArrayList와 같이 데이터의 추가, 삭제 시 불필요한 데이터의 복사가 없어 데이터의 추가, 삭제 시에 유리한 반면 데이터의 검색 시에는 처음부터 노드를 순회해야 하기 때문에 성능상 불리합니다. - 단일 연결 리스트 : 요소의 저장과 삭제 작업이..
List 인터페이스 : 순서가 있는 데이터들의 집합으로 데이터의 중복을 허용합니다. (Vector, ArrayList, LinkedList, Stack, Queue(Stack의 반대)) ArrayList 클래스 벡터와 동일하게 동적 배열을 사용할 수 있습니다. 자바 표준 배열보다 조금 느릴 수 있지만 배열에서 많은 조작이 필요할 때 유용하게 사용됩니다. (벡터보다는 속도가 빠릅니다.) 데이터 저장 시 기본 데이터 타입으로 만들 수 없기 때문에 래퍼 클래스를 사용해야 합니다. 예시) Iterator 클래스를 통해 컬렉션 프레임워크의 요소들을 탐색할 수 있습니다. 자바의 컬렉션 프레임워크에서 컬렉션이 저장되어 있는 요소들을 탐색하여 읽어오는 방법을 표준화한 클래스입니다. 예시) 문제) [영어 단어장] pri..
#컬렉션 프레임워크(collection framework) 여러 가지의 데이터를 메모리에서 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스들의 집합을 의미합니다. ● 컬렉션 프레임워크 주요 인터페이스 1. List 인터페이스 : 순서가 있는 데이터들의 집합으로 데이터의 중복을 허용합니다. (Vector, ArrayList, LinkedList, Stack, Queue(Stack의 반대)) 2. Set 인터페이스 : 순서가 없는 데이터 집합으로 데이터의 중복을 허용하지 않습니다. (HashSet, TreeSet) 3. Map 인터페이스 : 키와 값의 한 쌍으로 이루어지는 데이터의 집합으로 순서가 없습니다. 또한, 키는 중복으로 허용하지 않지만, 값은 중복될 수 있습니다. (HashMap, ..
#Object클래스 자바의 모든 클래스의 최상위 조상(부모) 클래스는 object 클래스입니다. 모든 타입은 object 클래스는 기본 데이터 타입을 객체화 시킨 Wrapper type으로 대입받을 수 있습니다. - Object obj 어떠한 타입을 보내도 모든 내용을 저장할 수 있음 예시 1) ● box1.getValue(); 는 Object 객체이기 때문에 괄호안에 타입을 적어준것이다.! 이렇게 할 경우 값이 손실되거나 잘못된 결과가 나오는 문제가 생길 수 있다. 사용을 권장하지 않는다.! #제네릭(generic) 다양한 타입의 객체에 재사용을 높일 수 있는 기법으로 클래스에서 사용할 타입을 외부에서 설정하는 것을 말합니다. ● 장점 1. 반복적인 코드, 불필요한 코드를 사용하지 않도록 재활용이 가능..
#래퍼클래스(Wrapper Class) 기본 타입의 데이터를 객체로 취급해야 할 경우 기본 타입의 데이터를 먼저 객체로 변환하고 작업을 수행해야 하는 데, 이를 객체로 포장해 주는 클래스를 래퍼클래스라고 합니다. byte - > Byte short - > Short int - > Integer long - > Long float - > Float double - > Double char - > Character boolean - > Boolean ●박싱과 언박싱 인스턴스에 저장된 값을 변경할 수 없습니다. 다만, 값을 참조하기 위해 인스턴스를 생성하고 그 생성된 인스턴스의 값만을 참조할 수 있습니다. -박싱 기본타입(값) --> 래퍼클래스 int a = 10; Integer num = new Intege..
#인터페이스(interface) interface는 클래스를 만들기 전에 앞으로 이런 기능들을 만들겠다 라고 협의해놓은 명세서와 같습니다. 인터페이스는 그 자체가 객체를 의미하지 않으며, 어떤 객체가 할 수 있는 기능 자체를 의미하고 그 기능을 하나의 스펙으로 모은 것에 불과합니다. 따라서, 인터페이스가 실제 기능을 가지는 것은 아닙니다. 인터페이스에서는 일반 필드를 갖지 못합니다. 일반 필드로 작성하면 JVM이 static final 키워드를 추가합니다. 예를 들면) 타회사에서 class를 만들고 그 class 를 사용하기 위해서 내가 맞는 기능을 추가해주면 된다 ● 특징 - 인터페이스의 상수는 private으로 만들 수 없습니다. - 인터페이스에는 추상 메서드만 존재합니다. 예외인 경우도 있음 - 인..
#추상클래스 (abstract) 추상클래스는 클래스의 용도가 객체 생성 용도로 사용하지 않는 경우에 사용합니다. 변수의 타입으로 선언하는 용도와 상속의 본연의 기능으로 특정한 코드를 하위 클래스로 물려주는 기능을 활용할 때 사용합니다. 추상메소드가 있으면 추상클래스로 바꿔줘야한다. 추상 메소드라는 것은 하위 클래스에서 반드시 오버라이드 해야하는 메소드 입니다. 사용 예시) abstract class TestClass1 { < -- 추상 클래스 private int a; private String b; public void methodA(){ System.out.println("추상 메소드 테스트!"); } public abstract void methodB(); // 추상 메소드