본문 바로가기
프로그래밍/JAVA

자바의 정석 기초 (StringBuilder / Math클래스 / wrapper클래스 / Number클래스 / 오토박싱 / 언박싱 )

by ✲ 2020. 8. 1.
반응형

남궁성님의 자바의 정석 기초편을 보면서 혼자 공부하는 공간입니다. 참고 부탁드립니다. 

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);

 

 

반응형

댓글