기본 API 클래스(1)

zooyeong·2023년 3월 27일
0

8주차

목록 보기
6/6
post-thumbnail

📌기본 API 클래스

💡자바 API 도큐먼트

자바 API란 자바에서 기본적으로 제공하는 라이브러리(library)다. 프로그램 개발에 자주 사용되는 클래스 및 인터페이스의 모음이다. API 도큐먼트는 쉽게 API를 찾아 이용할 수 있도록 문서화한 것이다. HTML 페이지로 작성되어 있어 웹 브라우저에서 바로 볼 수 있다.

http://docs.oracle.com/javase/8/docs/api/

💡java.lang 패키지

java.lang 패키지는 자바 프로그램의 기본적인 클래스를 담은 패키지이다. 포함된 클래스와 인터페이스는 import 없이 사용이 가능하다.

주요클래스

클래스용도
Object- 자바 클래스의 최상위 클래스로 사용
System- 표준 입렵장치(키보드)로부터 데이터를 입력 받을 때 사용
- 표준 출력장치(모니터)로 출력하기 위해 사용
- 자바 가상 머신을 종료시킬 때 사용
- 쓰레기 수집기를 실행 요청할 때 사용
Class- 클래스를 메모리로 로딩할 때 사용
String- 문자열을 저장하고 여러가지 정보를 얻을 때 사용
StringBuffer, StringBuilder- 문자열을 저장하고 내부 문자열을 조작할 때 사용
Math- 수학 함수를 이용할 때 사용
Wrapper:Byte, Short, Character, Integer, Float, Double, Boolean- 기본 타입의 데이터를 갖는 객체를 만들 때 사용
- 문자열을 기본 타입으로 변환할 때 사용
- 입력값 검사에 사용

📌컬렉션 프레임워크

💡컬렉션 프레임워크

컬렉션 프레임워크는 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 제공되는 컬렉션 라이브러리이다. java.util 패키지에 포함되며 인터페이스를 통해서 정형화된 방법으로 다양한 컬렉션 클래스를 이용한다.
컬렉션 프레임워크의 주요 인터페이스는 List, Set, Map이다.

인터페이스 분류특징구현 클래스
List 계열- 순서를 유지하고 저장
- 중복 저장 가능
ArrayList, Vector, LinkedList
Set 계열- 순서를 유지하지 않고 저장
- 중복 저장 불가능
HashSet, TreeSet, LinkedHashSet
Map 계열- 키와 값의 쌍으로 저장
- 키는 중복 저장 불가능, 값은 가능
HashMap, Hashtable, TreeMap, Properties

💡List 컬렉션

List 컬렉션은 인덱스로 관리하고 중복해서 객체 저장이 가능하다는 특징이 있다.

↓주요 메소드

기능메소드설명
객체 추가boolean add(E e)주어진 객체를 맨 끝에 추가
void add(int index, E element)주어진 인덱스에 객체를 추가
set(int index, E element)주어진 인덱스에 저장된 객체를 주어진 객체로 바꿈
객체 검색boolean contains(Object o)주어진 객체가 저장되어 있는지 여부
E get(int index)주어진 인덱스에 저장된 객체를 리턴
isEmpty()컬렉션이 비어있는지 조사
int size()저장되어있는 전체 객체수를 리턴
객체 삭제boolean remove(Object o)주어진 객체를 삭제

📖ArrayList
List<E> list = new ArrayList<E>();
E는 타입파라미터
ArrayList의 저장용량은 초기에는 10(따로 지정 가능)이고, 저장 용량을 초과한 객체들이 들어오면 자동으로 늘어난다. 고정도 가능하다. 객체 제거 시에는 바로 뒤 인덱스부터 마지막 인덱스까지 모두 앞으로 1씩 당겨진다.

📖Vector
List<E> list = new Vector<E>();
Vector는 스레드 동기화(synchronization), 복수의 스레드가 동시에 Vector에 접근해 객체를 추가, 삭제하더라도 스레드에 안전하다.

📖LinkedList
List<E> list = new LinkedList<E>();
인접 참조를 링크해서 체인처럼 관리한다. 특정 인덱스에서 객체를 제거하거나 추가하게 되면 바로 앞뒤 링크만 변경한다. 빈번한 객체 삭제와 삽입이 일어나는 곳에서는 ArrayList보다 좋은 성능이다.

💡Set 컬렉션

Set 컬렉션은 수학의 집합에 비유한다. 저장 순서가 유지되지 않고 객체를 중봅 저장할 수 없다. 하나의 null만 저장이 가능하다. Set은 인덱스로 객체를 검색해서 가져오는 메소드는 없다. 전체 객체 대상으로 한 번씩 반복해 가져오는 반복자(Iterator)를 제공한다.

↓주요 메소드

기능메소드설명
객체 추가boolean add(E e)주어진 객체를 저장, 객체가 성공적으로 저장되면 true를 리턴하고 중복 객체면 false를 리턴
객체 검색boolean contains(Object o)주어진 객체가 저장되어 있는지 여부
isEmpty()컬렉션이 비어 있는지 조사
Iterator<E> iterator()저장된 객체를 한번씩 가져오는 반복자 리턴
int size()저장되어있는 전체 객체수 리턴
객체 삭제void clear()저장된 모든 객체를 삭제
boolean remove(Object o)주어진 객체를 삭체

📖HashSet
Set<E> set = new HashSet<E>();
동일 객체 및 동등 객체는 중복 저장하지 않는다.

💡Map 컬렉션

키(key)와 값(value)으로 구성된 Map.Entry 객체를 저장하는 구조이다. 키와 값은 모두 객체이고 키는 중복될 수 없지만 값은 중복 저장이 가능하다.

↓ 주요 메소드

기능메소드설명
객체 추가V put(K key, V value)주어진 키와 값을 추가, 저장이 되면 값을 리턴
객체 검색boolean containsKey(Object key)주어진 키가 있는지 여부
boolean containsValue(Object value)주어진 값이 있는지 여부
Set<Map.Entry<K,V>> entrySet()키와 값의 쌍으로 구성된 모든 Map.Entry 객체를 Set에 담아서 리턴
V get(Object key)주어진 키의 값을 리턴
boolean isEmpty()컬렉션이 비어있는지 여부
Set<K> keySet()모든 키를 Set 객체에 담아서 리턴
int size()저장된 키의 총 수를 리턴
Collection<V> values()저장된 모든 값 Collection 에 담아서 리턴
객체 삭제void clear()모든 Map.Entry(키의 값)를 삭제
V remove(Object key)주어진 키와 일치하는 Map.Entry 삭제, 삭제가 되면 값을 리턴

📖HashMap
키 객체는 hashCode()와 equals()를 재정의해 동등 객체가 될 조건을 정해야 한다. 키 타입은 String을 많이 사용한다. String은 문자열이 같은 경우 동등 객체가 될 수 있도록 hashCode()와 equals() 메소드가 재정의되어 있기 때문이다.

📖Hashtable
Hashtable은 스레드 동기화(synchronization)가 된 상태이다. 복수의 스레드가 동시에 Hashtable에 접근해서 객체를 추가, 삭제하더라도 스레드에 안전하다.

📖Properties
키와 값을 String 타입으로 제한한 Map 컬렉션이다. Properties는 *프로퍼티(.properties) 파일을 읽어들일 때 주로 사용한다.

*프로퍼티 파일

  • 옵션 정보, 데이터베이스 연결 정보, 국제화(다국어) 정보를 기록하여 텍스트 파일로 활용한다.
  • 애플리케이션에서 주로 변경이 잦은 문자열을 저장하여 유지 보수를 편리하게 만들어 준다.
  • 키와 값이 = 기호로 연결되어 있는 텍스트 파일로 ISO 8859-1 문자셋으로 저장한다. 한글은 유니코드(Unicode)로 변환되어 저장된다.

📌Object 클래스

object 클래스는 자바의 최상의 부모 클래스이다. 다른 클래스를 상속하지 않으면 java.lang.Object 클래스 상속을 암시한다. Object 메소드는 모든 클래스에서 사용 가능하다.

💡객체 비교(equals() 메소드)

equals() 메소드는 기본적으로 == 연산자와 동일한 결과를 리턴한다.(번지를 비교함)
논리적 동등을 위해 오버라이딩이 필요하다. 논리적 동등이란 같은 객체이건 다른 객체이건 상관없이 객체 저장 데이터가 동일한 것이다. Object의 equals() 메소드는 재정의하여 논리적 동등 비교할 때 이용한다.

💡객체 해시코드(hashCode())

객체 해시코드란 객체를 식별할 하나의 정수값이다. 객체의 메모리 번지를 이용해 해시코드를 만들어 리턴한다. 개별 객체는 해시코드가 모두 다르다. 논리적 동등 비교 시 hashCode() 메소드를 오버라이딩 할 필요성이 있다. 컬렉션 프레임워크의 HashSet, HashMap, Hashtable과 같은 클래스는 두 객체가 동등한 객체인지 판단할 때 아래와 같은 과정을 거친다.

논리적동등비교

(교재 : 이것이 자바다 저자 : 신용권)

profile
Have a good day ⌯’▾’⌯

0개의 댓글