본문 바로가기

JAVA

(30)
[JAVA] 어노테이션 (Annotation) 어노테이션이란? 어노테이션(Annotation)은 사전적으로는 "주석"이라는 의미를 가지고 있습니다. 자바에서는 @를 이용하여 주석처럼 달아 특수한 의미를 부여해줍니다. 어노테이션은 소스 코드가 컴파일되거나 실행될 때 컴파일러 및 다른 프로그램에게 필요한 정보를 전달해 주는 문법 요소입니다. 어노테이션의 종류 JDK에서 기본적으로 제공하는 어노테이션은 아래의 두 가지로 분류됩니다. 표준 어노테이션: 자바에서 기본적으로 제공하는 어노테이션 메타 어노테이션: 다른 어노테이션에서도 사용되는 어노테이션을 말하며, custom-annotation을 생성할 때 주로 사용 표준 어노테이션 표준 어노테이션은 자바에서 기본적으로 제공하는 어노테이션입니다. 표준 어노테이션을 여러 가지가 있지만, 그중에서도 @Overrid..
[JAVA] 컬렉션 프레임워크(Collection Framework) - Iterator (6) Iterator 인터페이스 Collection 인터페이스에서는 Iterator 인터페이스를 구현한 클래스의 인스턴스를 반환하는 iterator() 메서드를 정의하여 각 요소에 접근하도록 하고 있습니다. 예제 코드를 통해 확인해 보도록 하겠습니다. import java.util.Iterator; import java.util.LinkedList; public class Main { public static void main(String[] args) { LinkedList lnkList = new LinkedList(); lnkList.add(4); lnkList.add(2); lnkList.add(3); lnkList.add(1); Iterator iter = lnkList.iterator(); whil..
[JAVA] 컬렉션 프레임워크(Collection Framework) - Stack,Queue (5) Stack 클래스 Stack 클래스는 List 컬렉션 클래스의 Vector 클래스를 상속받아, 전형적인 스택 메모리 구조의 클래스를 제공합니다. 스택 메모리 구조는 선형 메모리 공간에 데이터를 저장하면서 후입선출(Last In First Out)의 시멘틱을 따르는 자료 구조입니다. 즉, 가장 나중에 저장된 데이터가 가장 먼저 인출되는 구조입니다. 위 예제를 보면서 후입선출을 이해해 봅시다. Stack 클래스는 stack memory structure를 표현하기 위해, Vector 클래스의 메서드를 5개만 상속받아 사용합니다. 메서드 설명 boolean empty() 해당 스택이 비어 있으면 true를, 비어 있지 않으면 false를 반환 E peek() 해당 스택의 제일 상단에 있는(제일 마지막으로 저장..
[JAVA] 컬렉션 프레임워크(Collection Framework) - Map <K,V> (4) Map 컬렉션 클래스란? Map 인터페이스는 Collection 인터페이스와는 다른 저장 방식을 가집니다. Map 컬렉션 클래스들은 키와 값을 하나의 쌍으로 저장하는 방식(Key-value 방식)을 사용합니다. 여기서 키(key)란 실질적인 값(value)을 찾기 위한 이름의 역할입니다. Map 인터페이스를 구현한 모든 Map 컬랙션 클래스는 다음과 같은 특징을 가집니다. 요소의 저장 순서를 유지하지 않습니다. 키는 중복을 허용하지 않지만, 값의 중복은 허용합니다. 대표적인 Map 컬렉션 클래스에 속하는 클래스는 다음과 같습니다. HashMap HashTable TreeMap HashMap 클래스 HashMap 클래스는 Map 컬렉션 클래스에서 가장 많이 사용되는 클래스입니다. HashMap 클래스는 M..
[JAVA] 컬렉션 프레임워크(Collection Framework) - Set <E> (3) Set 컬렉션 클래스란? Set 인터페이스를 구현안 모든 Set 컬렉션 클래스는 다음과 같은 특징을 가집니다. 요소의 저장 순서를 유지하지 않습니다. 같은 요소의 중복 저장을 허용하지 않습니다. Set 인터페이스에서 공통적으로 사용 가능한 메서드는 다음과 같습니다. 기능 리턴 타입 메서드 설명 객체 추가 boolean add(Object o) 객체를 추가하고, 성공하면 true를, 중복 객체면 false를 반환. 객체 검색 boolean contains(Object o) 객체가 Set에 존재하는지 확인 boolean isEmpty() Set이 비어있는지 확인 Iterator Iterator() 저장된 객체를 하나씩 읽어오는 반복자를 리턴 int size() 저장되어 있는 전체 객체의 수 리턴 객체 삭제 ..
[JAVA] 컬렉션 프레임워크(Collection Framework) - List <E> (2) List 컬렉션 클래스란? List 인터페이스를 구현한 모든 List 컬렉션 클래스는 다음과 같은 특징을 가지고 있습니다. 요소의 저장 순서가 유지됩니다. 같은 요소의 중복 저장을 허용합니다. List 인터페이스에서 공통적으로 사용 가능한 메서드는 다음과 같습니다 기능 리턴 타입 메서드 설명 객체 추가 void add(int index, Object element) 인덱스에 객체를 추가 boolean addAll(int index, Collection c) 인덱스에 컬렉션을 추가 Object set(int index, Object element) 위치에 객체를 저장 객체 검색 Object get(int index) 인덱스에 저장된 객체를 반환 int indexOf*Object o) / lastIndexO..
[JAVA] 컬렉션 프레임워크(Collection Framework) (1) 컬렉션 프레임 워크란? 컬렉션 프레임워크(Collection Framework)는 여러 데이터들의 집합을 의미하는 컬렉션과 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조인 프레임워크가 합쳐진 말입니다. 컬렉션 프레임워크는 특정 자료 구조에 데이터를 추가하고, 삭제하고, 수정하고, 검색하는 등의 동작을 수행하는 편리한 메서드들을 제공해 줍니다. 배열과 비슷한 동작을 하지만, 배열은 크기가 고정되어 있는 데에 반해, 컬렉션 프레임 워크는 가변적인 크기를 갖는 (Resizable) 특징을 갖습니다. 이러한 이점으로 개발자는 배열보다는 적절한 컬렉션 클래스를 선택해 사용하는 것을 권장합니다. 컬렉션 프레임워크의 장점 컬렉션 프레임 워크의 장점은 아래와 같습니다. List, Queue, Set, ..
[JAVA] 예외 처리(Exception Handling) 예외 처리란? 프로그램을 실행하다가 보면 어떠한 원인 때문에 비정상적인 동작을 일으키며 프로그램이 종료되는 상황을 보신 적 있으실 겁니다. 에러의 종류는 우리가 컴파일할 때 발생할 수 있는 컴파일 오류와 실행 중 발생하는 런타임 오류 두 종류가 있습니다. 컴파일 오류는 IDE를 통해 잡기 쉬집지만, 런타임 오류는 잡기가 까다롭습니다. 자바에서는 런타임 오류를 두 종류로 보고 있습니다. 바로 에러(Error)와 예외(Exception)입니다. 에러는 프로그램이 코드로 복구할 수 없는 오류를 의미하고 예외는 프로그래머가 직접 예측하여 막을 수 있는 처리 가능한 오류입니다. 아래의 예제 코드를 보도록 하겠습니다 class Test { public static void main(String[] args){ in..