기본형 값을 String(문자열)으로 변환
int i = 100;
String str1 = i +"";
String atr2 = String.valueOf(i);
String을 기본형 값으로 변환
parseInt() 혹은 valueOf()를 사용
기본형 -> 문자열 | 문자열 -> 기본형 |
String String.valueOf(boolean b) String String.valueOf(int i) String String.valueOf(char ch) String String.valueOf(long l) String String.valueOf(float f) String String.valueOf(double d) |
boolean Boolean.parseBoolean(String s) int Int.parseInt(String s) . . . . |
byte,short 변환은 String valueOf(int i) 사용
문자열 "A"를 문자 'A'로 변환 char ch = "A".charAt(0);
StringBuffer 클래스
String처럼 문자형 배열(char[])을 내부적으로 가지고 있다
String과 달리 내용을 변경할 수 있다(mutable) //문자열 편집 버퍼(buffer)
StringBuffer의 생성자
배열은 길이 변경불가 공간이 부족하면 새로운 배열을 생성해야 함
1. 새로운 배열 생성
2. 내용 복사
3. 참조변경
StringBuffer는 저장할 문자열의 길이를 고려해서 적절한 크기로 생성해야 한다
StringBuffer의 변경
StringBuffer는 String과 달리 내용 변경이 가능하다
StringBuffer sb = new StringBuffer(“abc”);
sb.append(“123”).append("ZZ"); //append() 끝에 문자열 delete() 삭제 insert() 삽입
**append()는 지정된 내용을 StringBuffer에 추가 후 StringBuffer의 참조를 반환
StringBuffer의 비교
StringBuffer는 equals()가 오버라이딩 되어있지 않다 //내용이 같아도 false가 나옴
->StringBuffer을 String으로 변환 후에 equals()로 비교해야한다
Stringbuilder
StringBuffer는 멀티 쓰레드에 안전(thread-safe)하도록 동기화되어 있다.
멀티 쓰레드 프로그램이 아닌 경우, 동기화는 불필요하게 성능만 저하된다
이럴 때 StringBuilder를 사용하면 성능이 향상된다
Math클래스
수학관련 static메서드의 집합
E : 자연로그의 밑
PI : 원주율
round()로 원하는 소수점 아래 세 번째 자리에서 반올림한다
올림, 버림, 반올림
1. 원래값에 100을 곱한다
90.7552 * 100 -> 9075.52
2. 위의 결과에 Math.round()를 사용한다
Math.round(9075.52) -> 9076
3. 위의 결과를 다시 100.0으로 나눈다
9076/100.0 -> 90.76
9076/100 -> 90
예외를 발생시키는 메서드 (1.8 추가)
메서드 이름에 Exact가 포함된 메서드들이 추가되었다
정수형간의 연산에서 발생하는 오버플로우를 감지하기 위한 것이다.
int addExact(int x, int y)
.
.
.
.
.
int toIntExact(long value)
위의 메서드는 오버플로우가 발생하면 예외를 발생시킨다
StrictMath클래스
성능은 떨어지지만 어떤 OS에서 실행되어도 항상 같은 결과를 얻도록 Math클래스를 새로 작성한 것