자바에 관한 몇가지 중요한 사실들 정리
[필드의 구분]
필드란?
클래스에 포함된 변수를 의미.
선언 위치에 따라서 클래스 변수 / 인스턴스 변수 / 지역 변수로 나뉜다.
| class Car { static int modelOutput; // 클래스 변수 String modelName; // 인스턴스 변수 void method() { int something = 10; // 지역 변수 } } | cs |
변수 |
생성 시기 |
소멸 시기 |
저장 메모리 |
사용 방법 |
클래스 변수 |
클래스가 메모리에 올라갈 때 |
프로그램이 종료될 때 |
메소드 영역 |
클래스이름.변수이름 |
인스턴스 변수 |
인스턴스가 생성될 때 |
인스턴스가 소멸할 때 |
힙 영역 |
인스턴스이름.변수이름 |
지역 변수 |
블록 내에서 변수의 선언문이 실행될 때 |
블록을 벗어날 때 |
스택 영역 |
변수이름 |
사용 방법에 대한 설명
클래스 변수 사용 방법 : Car.modelOutput
인스턴스 변수 사용 방법 : Car car = new Car();
car.modelName
지역 변수 사용 방법 : method() 메소드 안에서 사용
[Object 클래스]
자바에서 모든 클래스의 부모 클래스.
모든 클래스는 Object 클래스의 모든 필드와 메소드를 상속받는다.
별도로 extends Object를 하지 않아도 사용이 가능하며 toString()이나 clone() 같은 메소드를 바로 사용할 수 있는 이유가 Object클래스의 메소드이기 때문이다.
[String 클래스]
문자열을 위한 클래스이며 java.lang 패키지에 포함.
인스턴스를 한 번 생성하면 그 값을 읽기만 가능, 변경 안됨
String 클래스의 메소드 종류 :
char charAt(int index) | 해당 문자열의 특정 인덱스에 해당하는 문자를 반환함. |
int compareTo(String str) | 해당 문자열을 인수로 전달된 문자열과 사전 편찬 순으로 비교함. |
int compareToIgnoreCase(String str) | 해당 문자열을 인수로 전달된 문자열과 대소문자를 구분하지 않고 사전 편찬 순으로 비교함. |
String concat(String str) | 해당 문자열의 뒤에 인수로 전달된 문자열을 추가한 새로운 문자열을 반환함. |
int indexOf(int ch) int indexOf(String str) | 해당 문자열에서 특정 문자나 문자열이 처음으로 등장하는 위치의 인덱스를 반환함. |
int indexOf(int ch, int fromIndex) int indexOf(String str, int fromIndex) | 해당 문자열에서 특정 문자나 문자열이 전달된 인덱스 이후에 처음으로 등장하는 위치의 인덱스를 반환함. |
int lastIndexOf(int ch) | 해당 문자열에서 특정 문자가 마지막으로 등장하는 위치의 인덱스를 반환함. |
int lastIndexOf(int ch, int fromIndex) | 해당 문자열에서 특정 문자가 전달된 인덱스 이후에 마지막으로 등장하는 위치의 인덱스를 반환함. |
String[] split(String regex) | 해당 문자열을 전달된 정규 표현식(regular expression)에 따라 나눠서 반환함. |
String substring(int beginIndex) | 해당 문자열의 전달된 인덱스부터 끝까지를 새로운 문자열로 반환함. |
String substring(int begin, int end) | 해당 문자열의 전달된 시작 인덱스부터 마지막 인덱스까지를 새로운 문자열로 반환함. |
String toLowerCase() | 해당 문자열의 모든 문자를 소문자로 변환함. |
String toUpperCase() | 해당 문자열의 모든 문자를 대문자로 변환함. |
String trim() | 해당 문자열의 맨 앞과 맨 뒤에 포함된 모든 공백 문자를 제거함. |
length() | 해당 문자열의 길이를 반환함. |
isEmpty() | 해당 문자열의 길이가 0이면 true를 반환하고, 아니면 false를 반환함. |
[StringBuffer 클래스]
java.lang 패키지에 포함
인스턴스를 한 번 생성하면 그 값을 읽기, 변경, 추가가능
StringBuffer 클래스의 메소드 종류 :
append()...11가지 / capacity() / delete(int start, int end) / deleteCharAt(int index) / insert()... 10가지
[Math 클래스]
java.lang 패키지에 포함
수학에서 자주 자용하는 상수, 함수들을 미리 구현해 놓은 클래스
Math 클래스의 메소드 종류 :
random() / abs() / ceil() / floor() / round() / rint()/ max() / min() / pow() / sqrt() / sin() / cos() / tan() / toDegrees() / toRaidans()
[컬렉션 프레임워크란?]
다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합
컬렉션 프레임워크는 자바 인터페이스를 사용하여 구현된다.
데이터를 저장하는 자료 구조에 따라 List / Set / Map 인터페이스가 있으며 이 중에 List와 Set인터페이스는 모두 Collection 인터페이스를 상속받는다.
* 주요 인터페이스의 특징
인터페이스 |
설명 |
구현 클래스 |
List<E> |
순서가 있는 데이터의 집합으로, 데이터의 중복을 허용한다. |
Vector, ArrayList, LinkedList, Stack, Queue |
Set<E> |
순서가 없는 데이터의 집합으로, 데이터의 중복을 허용하지 않음. |
HashSet, TreeSet |
Map<K, V> |
키와 값의 한 쌍으로 이루어지는 데이터의 집합, 순서가 없다. 키는 중복을 허용안함, 값은 중복을 허용 |
HashMap, TreeMap, Hashtable, Properties |
Collection 인터페이스에서 제공하는 주요 메소드
boolean add(E e) | 해당 컬렉션(collection)에 전달된 요소를 추가함. (선택적 기능) |
void clear() | 해당 컬렉션의 모든 요소를 제거함. (선택적 기능) |
boolean contains(Object o) | 해당 컬렉션이 전달된 객체를 포함하고 있는지를 확인함. |
boolean equals(Object o) | 해당 컬렉션과 전달된 객체가 같은지를 확인함. |
boolean isEmpty() | 해당 컬렉션이 비어있는지를 확인함. |
Iterator<E> iterator() | 해당 컬렉션의 반복자(iterator)를 반환함. |
boolean remove(Object o) | 해당 컬렉션에서 전달된 객체를 제거함. (선택적 기능) |
int size() | 해당 컬렉션의 요소의 총 개수를 반환함. |
Object[] toArray() | 해당 컬렉션의 모든 요소를 Object 타입의 배열로 반환함. |
Map 인터페이스에서 HashMap클래스가 제공하는 메소드
void clear() | 해당 맵(map)의 모든 매핑(mapping)을 제거함. |
boolean containsKey(Object key) | 해당 맵이 전달된 키를 포함하고 있는지를 확인함. |
boolean containsValue(Object value) | 해당 맵이 전달된 값에 해당하는 하나 이상의 키를 포함하고 있는지를 확인함. |
V get(Object key) | 해당 맵에서 전달된 키에 대응하는 값을 반환함. 만약 해당 맵이 전달된 키를 포함한 매핑을 포함하고 있지 않으면 null을 반환함. |
boolean isEmpty() | 해당 맵이 비어있는지를 확인함. |
Set<K> keySet() | 해당 맵에 포함되어 있는 모든 키로 만들어진 Set 객체를 반환함. |
V put(K key, V value) | 해당 맵에 전달된 키에 대응하는 값으로 특정 값을 매핑함. |
V remove(Object key) | 해당 맵에서 전달된 키에 대응하는 매핑을 제거함. |
boolean remove(Object key, Object value) | 해당 맵에서 특정 값에 대응하는 특정 키의 매핑을 제거함. |
V replace(K key, V value) | 해당 맵에서 전달된 키에 대응하는 값을 특정 값으로 대체함. |
boolean replace(K key, V oldValue, V newValue) | 해당 맵에서 특정 값에 대응하는 전달된 키의 값을 새로운 값으로 대체함. |
int size() | 해당 맵의 매핑의 총 개수를 반환함. |
코딩 배우기 좋은 사이트
출처 : http://tcpschool.com/