남궁성님의 자바의 정석 기초편을 보면서 혼자 공부하는 공간입니다. 참고 부탁드립니다.
StringBuilder
- StringBuffer는 동기화 > 멀티 쓰레드에 안전
- StringBuilder는 동기화 X
- 멀티쓰레드 프로그램이 아닌 경우 동기화는 불필요한 성능 저하 ( StringBuffer 대신 StringBuilder 사용하면 성능 향상)
Math클래스
- 수학 관련 static 메서드의 집합
- round()로 원하는 소수점 아래 세 번째 자리에서 반올림하기
래퍼(wrapper)클래스
- 8개의 기본형을 객체로 다뤄야할 때 사용하는 클래스
Number클래스
- 모든 숫자 래퍼 클래스의 조상
문자열을 숫자로 변환하기
- 문자열을 숫자로 변환하는 방법
int i = new Integer("100").intValue();
int i2 = Integer.parseInt("100");
Integer i3 = Integers.valueOf("100");
- n진법의 문자열을 숫자로 변환하는 방법
int i4 = Integer.parseInt("100",2); //100(2) > 4
int i5 = Integer.parseInt("100",8); //100(8) > 64
int i6 = Integer.parseInt("100",16); //100(16) > 256
오토박싱 & 언박싱
int > Integer (오토박싱) integer > int (언박싱)
- JDK1.5 이전에는 기본형과 참조형간의 연산 불가능
int i = 5;
Integer iObj = new Integer(7);
int sum = i +iObj; // 에러 기본형과 참조형간의 덧셈 불가(JDK1.5 이전)
컴파일 전의 코드
int i = 5;
Integer iObj = new Integer(7);
int sum = i +iOjb;
컴파일 후의 코드
int i = 5;
Integer iObj = new Integer(7);
int sum = i +iObj.intValue();
- 기본형의 값을 객체로 자동변환하는 것을 오토박싱, 그 반대는 언박싱
ArrayList<Integer> list = new ArrayList<integer>();
list.add(10); // (오토박싱) 10 > new Integer(10)
int value = list.get(0); // (언박싱) new Integer(10) > 10
컴파일 전의 코드
integer intg = (integer) i;
Object iObj = (Object)i;
Long lng = 100L;
컴파일 후의 코드
Integer intg = Integer.valueOf(i);
Object obj = (Object)Integer.valueOf(i);
Long lng = new Long(100L);
댓글