κΈ°λ³Έ API ν΄λμ€
APIλ λΌμ΄λΈλ¬λ¦¬λΌκ³ λΆλ₯΄κΈ°λ νλλ°
νλ‘κ·Έλ¨ κ°λ°μ μμ£Ό μ¬μ©λλ ν΄λμ€ λ° μΈν°νμ΄μ€μ λͺ¨μμ λ§νλ€.
1. java.lang ν¨ν€μ§
μλ° νλ‘κ·Έλ¨μ κΈ°λ³Έμ μΈ ν΄λμ€λ₯Ό λ΄κ³ μλ ν¨ν€μ§μ΄λ€.
- java.lang ν¨ν€μ§μ μλ ν΄λμ€μ μΈν°νμ΄μ€λ import μμ΄ μ¬μ©ν μ μλ€.
1) Object ν΄λμ€
μλ° ν΄λμ€μ μ΅μμ ν΄λμ€λ‘ μ¬μ©λλ―λ‘ λͺ¨λ ν΄λμ€λ Object ν΄λμ€μ μμμ΄κ±°λ μμ ν΄λμ€μ΄λ€.
- μλ‘μ΄ ν΄λμ€λ₯Ό μ μΈν λ λ€λ₯Έ ν΄λμ€λ₯Ό μμνμ§ μλλΌλ μμμ μΌλ‘ Object ν΄λμ€λ₯Ό μμνκ² λλ€.
- Object ν΄λμ€μ νλλ μ‘΄μ¬νμ§ μκ³ μμ±μμ λ©μλλ‘ κ΅¬μ±λμ΄ μλ€.
- λͺ¨λ κ°μ²΄λ Object νμ μΌλ‘ μλ νμ λ³νλ μ μκΈ° λλ¬Έμ λ§€κ° νμ μ Objectλ‘ μ μΈνλ©΄ λͺ¨λ κ°μ²΄κ° λ§€κ° κ°μΌλ‘ λμ λ μ μλ€.
// 1. κ°μ²΄ λΉκ΅ λ©μλ (equals())
// κ°μ²΄κ° μ μ₯νκ³ μλ λ°μ΄ν°κ° λμΌνλ©΄ True, κ·Έλ μ§ μμΌλ©΄ False
public boolean equals(Object obj) {...}
boolean result = obj1.equals(obj2);
boolean result = (obj1 == obj2);
// μΌλ°μ μΌλ‘ μ§μ μ¬μ©λμ§ μκ³ μ¬μ μ(μ€λ²λΌμ΄λ©)νμ¬ λ
Όλ¦¬μ μΌλ‘ λλ± λΉκ΅ν λ μ΄μ©νλ€.
// Ex) String κ°μ²΄μ κ²½μ°μ κ°μ²΄μ λ²μ§κ° μλ λ¬Έμμ΄μ΄ λμΌνμ§ μ‘°μ¬
@Override
public boolean equals(Object obj) {
// 맀κ°κ°κ³Ό κΈ°μ€ κ°μ²΄κ° λμΌν νμ
μΈμ§ νμΈ
if(obj instanceof Member) {
// κ°μ νμ
λ³ν ν νλκ°μ΄ λμΌνμ§ κ²μ¬
Member member = (Member) obj;
if(id.equals(member.id)) {
return true;
}
}
return false;
}
// 2. κ°μ²΄ ν΄μμ½λ (hashCode())
// κ°μ²΄λ₯Ό μλ³νλ νλμ μ μκ°
// κ°μ²΄μ λ©λͺ¨λ¦¬ λ²μ§λ₯Ό μ΄μ©ν΄μ ν΄μμ½λλ₯Ό λ§λ€μ΄ 리ν΄νκΈ° λλ¬Έμ κ°μ²΄λ§λ€ λ€λ₯Έ κ°μ κ°μ§κ³ μλ€.
// κ°μ²΄μ λλ± λΉκ΅λ₯Ό μν΄μλ equals()λ§ μ¬μ μνμ§ λ§κ³ hashCode()λ μ¬μ μκ° νμνλ€.
@Override
public int hashCode() {
return id.hashCode();
}
// 3. κ°μ²΄ λ¬Έμ μ 보 (toString())
// κΈ°λ³Έμ μΌλ‘ 'ν΄λμ€μ΄λ¦@16μ§μν΄μμ½λ'λ‘ κ΅¬μ±λ κ°μ²΄μ λ¬Έμ μ 보λ₯Ό 리ν΄νλλ°
// μ μ©ν μ λ³΄κ° μλλ―λ‘ λ³΄ν΅ μ¬μ μλ₯Ό ν΅ν΄ κ°κ²°νκ³ μ μ΅ν μ 보λ₯Ό 리ν΄νλλ‘ λμ΄ μλ€.
obj1.toString();
2) System ν΄λμ€
μλ° νλ‘κ·Έλ¨μ μ΄μ체μ κ° μλ JVM μμμ μ€νλκΈ° λλ¬Έμ μ΄μ체μ μ λͺ¨λ κΈ°λ₯μ μ§μ μ΄μ©νκΈ°λ μ΄λ ΅λ€. νμ§λ§ System ν΄λμ€λ₯Ό ν΅ν΄ μ΄μ체μ μ μΌλΆ κΈ°λ₯μ μ¬μ©ν μ μλ€.
- νμ€ μ λ ₯ μ₯μΉ(ν€λ³΄λ)λ‘λΆν° λ°μ΄ν°λ₯Ό μ λ ₯λ°κ±°λ νμ€ μΆλ ₯ μ₯μΉ(λͺ¨λν°)λ‘ μΆλ ₯νκΈ° μν΄ μ¬μ©νλ€.
- μλ° κ°μ κΈ°κ³λ₯Ό μ’ λ£νκ±°λ GC μ€νμ μμ²ν λ μ¬μ©νλ€.
- System ν΄λμ€μ λͺ¨λ νλμ λ©μλλ μ μ νλμ μ μ λ©μλμ΄λ€.
// 1. νλ‘κ·Έλ¨ μ’
λ£ (exit())
// νμ¬ μ€νλκ³ μλ νλ‘μΈμ€λ₯Ό κ°μ μ’
λ£μν€λ μν
System.exit(0); // μ μ μ’
λ£
// 2. νμ¬ μκ° μ½κΈ° (currentTimeMillis(), nanoTime())
// μ»΄ν¨ν°μ μκ³λ‘ νμ¬ μκ°μ μ½μ΄ λ°λ¦¬μΈμ»¨λ(1/1000μ΄) λ¨μμ λλ
ΈμΈμ»¨λ λ¨μμ long κ°μ 리ν΄
long time = System.currentTimeMillis();
long time = System.nanoTime();
3) Class ν΄λμ€
ν΄λμ€μ μΈν°νμ΄μ€μ λ©ν λ°μ΄ν°λ₯Ό Class ν΄λμ€λ‘ κ΄λ¦¬νλ€. λ©ν λ°μ΄ν°λ ν΄λμ€ μ΄λ¦, μμ±μ μ 보, νλ μ 보, λ©μλ μ 보λ₯Ό λ§νλ€.
- ν΄λμ€λ₯Ό λ©λͺ¨λ¦¬λ‘ λ‘λ©ν λ μ¬μ©νλ€.
// Class κ°μ²΄ μ»κΈ° (getClass(), forName())
Class c = ν΄λμ€μ΄λ¦.class;
Class c = Class.forName("ν¨ν€μ§.ν΄λμ€μ΄λ¦");
Class c = μ°Έμ‘°λ³μ.getClass(); // κ°μ²΄κ° μμ±λμ΄ μμ κ²½μ°μ μ¬μ©
4) String ν΄λμ€
λ¬Έμμ΄μ μ μ₯νκ³ μ¬λ¬ κ°μ§ μ 보λ₯Ό μ»μ λ μ¬μ©νλ€.
- λ€μν μμ±μλ₯Ό μ΄μ©ν΄ μ§μ String κ°μ²΄λ₯Ό μμ±νμ¬ μ¬μ©ν μ μλ€.
- λ¬Έμμ΄μ μΆμΆ, λΉκ΅, μ°ΎκΈ°, λΆλ¦¬, λ³ν λ±κ³Ό κ°μ λ€μν λ©μλλ₯Ό κ°μ§κ³ μλ€.
5) Wrapper ν΄λμ€
κΈ°λ³Έ νμ (byte, short, char, int, float, double, boolean, long)μ κ°μ κ°λ κ°μ²΄λ₯Ό ν¬μ₯ κ°μ²΄λΌ νλ€. μλνλ©΄ κΈ°λ³Έ νμ μ κ°μ λ΄λΆμ λκ³ ν¬μ₯νκΈ° λλ¬Έμ΄λ€. κ·Έλμ ν¬μ₯νκ³ μλ κΈ°λ³Έ νμ κ°μ μΈλΆμμ λ³κ²½ν μ μκ³ λ³κ²½νκ³ μΆλ€λ©΄ μλ‘μ΄ ν¬μ₯ κ°μ²΄λ₯Ό λ§λ€μ΄μΌ νλ€.
- κΈ°λ³Έ νμ μ λ°μ΄ν°λ₯Ό κ°λ κ°μ²΄λ₯Ό λ§λ€ λ μ¬μ©λκ³ κ° κΈ°λ³Έ νμ μ λμλλ ν¬μ₯ ν΄λμ€κ° μλ€.
- λ°μ±μ κΈ°λ³Έ νμ
κ°μ ν¬μ₯ κ°μ²΄λ‘ λ§λλ κ³Όμ μ΄κ³ μΈλ°μ±μ ν¬μ₯ κ°μ²΄μμ κΈ°λ³Έ νμ
κ°μ μ»μ΄λ΄λ κ³Όμ μ΄λ€.
- λ°μ±νκΈ° μν΄μλ ν¬μ₯ ν΄λμ€μ μμ±μλ νμ .valueOf()μ λ§€κ° κ°μΌλ‘ κΈ°λ³Έ νμ κ° λλ λ¬Έμμ΄μ λκΈ΄λ€.
- μΈλ°μ±νκΈ° μν΄μλ νμ +Value()λ₯Ό νΈμΆνλ€.
- ν¬μ₯ ν΄λμ€ νμ μ κΈ°λ³Έ κ°μ΄ λμ λ κ²½μ° μλ λ°μ±μ΄ μΌμ΄λλ€.
- κΈ°λ³Έ νμ μ ν¬μ₯ κ°μ²΄κ° λμ λκ±°λ μ°μ°ν λ μλ μΈλ°μ±μ΄ μΌμ΄λλ€.
- λ¬Έμμ΄μ κΈ°λ³Έ νμ κ°μΌλ‘ λ³ννκ±°λ μ λ ₯κ°μ κ²μ¬ν λ μ¬μ©νλ€.
- 컬λ μ νλ μμν¬μμ κΈ°λ³Έ νμ κ°μ κ°μ²΄λ‘ μμ±ν΄μ κ΄λ¦¬ν λ μ¬μ©λλ€.
// 1. λ°μ±κ³Ό μΈλ°μ±
Integer obj1 = new Integer(100);
Integer obj2 = new Integer("200");
Integer obj3 = Integer.valueOf("300");
int value = obj1.intValue();
// 2. μλ λ°μ±κ³Ό μλ μΈλ°μ±
Integer obj = 100;
int value = obj;
int result = obj + 100;
// 3. λ¬Έμμ΄μ κΈ°λ³Έ νμ
κ°μΌλ‘ λ³ν
int value1 = Integer.parseInt("10");
double value2 = Double.parseDouble("3.14");
boolean value3 = Boolean.parseBoolean("true");
// 4. ν¬μ₯ κ° λΉκ΅
obj1.intValue() == obj2.intValue();
obj1.equals(obj2);
6) Math ν΄λμ€
μν κ³μ°μ μ¬μ©ν μ μλ λ©μλλ₯Ό μ 곡νλ€.
2. java.util ν¨ν€μ§
νλ‘κ·Έλ¨ κ°λ°μμ μμ£Ό μ¬μ©λλ μλ£κ΅¬μ‘°μΌ λΏλ§ μλλΌ λ μ§ μ 보λ₯Ό μ 곡ν΄μ£Όλ APIλ₯Ό ν¬ν¨νκ³ μλ ν¨ν€μ§μ΄λ€.
1) Date ν΄λμ€
νΉμ μμ μ λ μ§λ₯Ό νννλ ν΄λμ€λ‘ νΉμ μμ μ μ°λ, μ, μΌ, μκ° μ λ³΄κ° μ μ₯λλ€.
2) Calendar ν΄λμ€
λ¬λ ₯μ ννν ν΄λμ€λ‘ μ΄μ체μ μ Calendar κ°μ²΄λ₯Ό μ»μΌλ©΄ μ°λ, μ, μΌ, μμΌ, μ€μ /μ€ν, μκ° λ±μ μ λ³΄κ° μ μ₯λλ€.