StringBuilder
- StringBuffer : 동기화 O ➔ 멀티 쓰레드에 안전 / StringBuilder : 동기화 X
- 멀티 쓰레드 프로그램이 아닌 경우, 동기화는 불필요한 성능 저하됨 ➔ 이럴 때는 StringBuilder 사용해야 성능 향상
Math클래스
수학관련 static메서드의 집합
Ex) round() : 소수점 아래 첫번째 자리에서 반올림
Math클래스의 메서드
래퍼(wrapper) 클래스
8개의 기본형을 객체로 다뤄야할 때 사용하는 클래스 (기본형을 감싸는 클래스)
public final class Integer extends Number implements Comparable {
...
private int value; // 기본형 int를 감싸고 있음
...
}
< 예제 >
Number 클래스
모든 숫자 래퍼 클래스의 조상
- 숫자 래퍼 클래스 : Byte, Short, Integer, Long, Float, Double, BigInteger(long보다 큰), BigDecimal(double보다 큰)
문자열을 숫자로 변환하기
- 문자열 ➔ 숫자
1. int i = new Integer("100").intValue(); // floatValue(), longValue()...
2. int i2 = Integer.parseInt("100"); // 주로 이 방법을 많이 사용
3. Int i3 = Integer.valueOf("100");
- n진법의 문자열 ➔ 숫자
int i4 = Integer.parseInt("100", 2); // 100(2) → 4 (2진수)
int i5 = Integer.parseInt("100", 8); // 100(8) → 64 (8진수)
int i6 = Integer.parseInt("100", 16); // 100(16) → 256 (16진수)
int i7 = Integer.parseInt("FF", 16); // FF(16) → 255 (16진수)
int i8 = Integer.parseInt("FF"); // NumberFormatException 발생 (안쓰면 10생략인데 10진수에 FF없음)
오토박싱 (Auto boxing) &언박싱 (unboxing)
- 오토박싱 : int(기본형) ➔ Integer(래퍼클래스-객체)
- 언박싱 : Integer(래퍼클래스-객체) ➔ int(기본형)
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(10); // 오토박싱. 10 → new Integer(10)
int value = list.get(0) // 언박싱. new Integer(10) → 10 (list에 저장된 첫번째 객체를 꺼낸다)
< 예제 1 >
< 예제 2 >