<java.lang 패키지>
http://web.deu.edu.tr/doc/oreily/java/langref/ch10_js.htm
[Chapter 10] The java.lang Package
The package java.lang contains classes and interfaces that are essential to the Java language. These include: Because the classes in the java.lang package are so essential, the java.lang package is implicitly imported by every Java source file. In other wo
web.deu.edu.tr
<java.util 패키지>
- 컬렉션 클래스들이 대부분을 차지
http://web.deu.edu.tr/doc/oreily/java/fclass/ch17_js.htm
[Chapter 17] The java.util Package
The package java.util contains a number of useful classes and interfaces. Although the name of the package might imply that these are utility classes, they are really more important than that. In fact, Java depends directly on several of the classes in thi
web.deu.edu.tr
<Object 클래스>
객체 비교 equals()
- 두 객체를 비교해서 논리적으로 동등하면 true (객체가 같은지 여부를 보는게 아닌 객체가 저장하고 있는 데이터가 동일한지를 비교)
- Object의 equals()를 직접 사용하지 않고 하위 클래스에서 재정의하여 논리적 비교를 하려고 할 때 equals() 메소드를 재정의하여 필드가 같음을 비교하는데 사용
- instanceof 연산자로 기준 객체와 동일한 타입인지 먼저 체크한다.
객체 해시코드 hashCode()
- 객체를 식별할 하나의 정수값
- 객체의 메모리 번지를 이용해서 해시코드를 리턴. 객체마다 다른 값을 가진다.=.
- 논리적 동등 객체를 확인하려는 경우에는 equals() 뿐만 아니라 hashCode()도 재정의 해줘야 한다.
ex) String의 hashCode()는 같은 문자열인 경우 동일한 해시코드를 리턴한다.
객체 문자 정보 toString()
객체 복제 clone()
- thin clone: 필드값만 복사해서 객체를 복제
- clone()으로 객체를 복제하려면 원본 객체는 반드시 java.lang.Cloneable 인터페이스를 구현하고 있어야 한다.
deep clone
- Object의 clone() 메소드를 재정의해서 참조 객체를 복제하는 코드를 직접 작성한다.
객체 소멸자 finalize()
<Objects 클래스>
- Object의 유틸리티 클래스
객체 비교 compare(T a, T b, Comparator<T>c)
- 두 객체를 Comparator로 비교해서 int 값을 리턴
동등비교 equals()와 deepEquals()
해시코드 생성 hash(). hashCode()
널 여부 조사 isNull(), nonNull(), requireNonNull()
객체 문자 정보 toString()
<System 클래스>
- 운영체제의 일부 기능을 이용할 수 있다.
- 프로그램 종료, 키보드 입력, 모니터 출력, 메모리 정리, 현재 시간 읽기, 시스템 프로퍼티, 환경 변수 읽기 등
현재시각읽기 currentTimeMillis(), nanoTime()
- 1/1000초와 1/10^9초 단위의 long 값을 리턴 한다.
시스템 프로퍼티 읽기 getProperty()
환경 변수 읽기 getenv()
- 프로그램상의 변수가 아니라 OS에서 Nave과 Value로 관리되는 문자열 정보
<Class 클래스>
- 클래스와 인터페이스의 메타 데이터를 관리한다.
리플렉션
- 클래스의 생성자, 필드, 메소드 정보를 알아냄
- java.lang.reflect 패키지에 소속
동적 객체 생성 newInstance()
<String 클래스>
리턴 타입 | 매소드명(매개변수) | 설명 |
char | charAt(int index) | 특정 위치의 문자 리턴 |
boolean | equals(Object anObject) | 두 문자열을 비교 |
byte[] | getBytes() | byte[]로 리턴 |
byte[] | getBytes(Charset charset) | 주어진 문자셋으로 인코딩한 byte[]로 리턴 |
int | indexOf(String str) | 문자열 내에서 주어진 문자열의 위치를 리턴 |
int | length() | 총 문자의 수를 리턴 |
String | replace(CharSequence target, CharSequence replacement) | target 부분을 replacement로 대치한 새로운 문자열을 리턴 |
String | substring(int beginIndex) | beginIndex 위치에서 끝까지 잘라낸 새로운 문자열을 리턴 |
String | substring(int beginIndex, int endIndex) | beginIndex 위치에서 endIndex 전까지 잘라낸 새로운 문자열 리턴 |
String | toLowerCase() | 알파벳 소문자로 변환한 새로운 문자열 리턴 |
String | toUpperCase() | 알파벳 대문자로 변환한 새로운 문자열 리턴 |
String | trim() | 앞뒤 공백을 제거한 새로운 문자열 리턴 |
String |
valueOf(int i) valueOf(double d) |
기본 타입값을 문자열로 리턴 |
구분자 기준으로 문자열 분리하기
- String split("구분자1|구분자2|...") : 파이프(|) 기호로 연결한 구분자들의 정규표현식을 매개값으로 준다.
- StringTokenizer
<StringBuffer, StringBuilder 클래스>
메소드 | 설명 |
append(...) | 문자열 끝에 주어진 매개값을 추가 |
insert(int offset, ...) | 문자열 중간에 주어진 매개값을 추가 |
delete(int start, int end) | 문자열의 일부분을 삭제 |
deleteCharAt(int index) | 문자열에서 주어진 index의 문자를 삭제 |
replace(int start, int end, String str) | 문자열의 일부분을 다른 문자열로 대치 |
StringBuilder reverse() | 문자열의 순서를 뒤바꿈 |
setCharAt(int index, char ch) | 문자열에서 주어진 index의 문자를 다른 문자로 대치 |
정규표현식, Pattern 클래스
- java.util.regex.Pattern
기호 | 설명 |
[] |
한 개의 문자 [abc]: a, b, c 중 하나의 문자 [^abc]: a, b, c 이외의 하나의 문자 [a-zA-Z]: a~z, A~Z 중 하나의 문자 |
\d | 한 개의 숫자, [0-9]와 동일 |
\s | 공백 |
\w | 한 개의 알파벳 또는 한 개의 숫자, [a-zA-Z_0-9]와 동일 |
? | 없음 또는 한 개 |
* | 없음 또는 한 개 이상 |
{n} | 정확히 n개 |
{n,} | 최소 n개 |
{n,m} | n개에서부터 m개까지 |
() | 그룹핑 |
정규 표현식 예
- 전화번호: (02|010)-\d{3,4}-\d{4}
- 이메일: \w+@\w+\.\w(\.\w+)?
Arrays 클래스
Wrapper 클래스
- Boxing, Unboxing
Math, Random 클래스
Date, Calendar 클래스
Format 클래스
java.time 패키지
클래스명 | 설명 |
LocalDate | 로컬 날짜 클래스 |
LocalTime | 로컬 시간 클래스 |
LocalDateTime | 로컬 날짜 및 시간 클래스 |
ZonedDateTime | 특정 타임존의 날짜와 시간 클래스 |
Instant | 특정 시점의 Time-Stamp 클래스 |
'Java > Java' 카테고리의 다른 글
[이것이자바다]8. 인터페이스 (0) | 2020.04.20 |
---|---|
[이것이자바다]7. 상속 (0) | 2020.04.20 |
[이것이자바다]6. 클래스 (0) | 2020.04.19 |
[이것이 자바다]5. 참조 타입 (0) | 2020.04.19 |
[이것이 자바다]3. 연산자 (0) | 2020.04.18 |