백엔드/Java의 정석

TIL 정리_13

ran4 2022. 2. 28. 23:31

 

 

 

기본형 값을 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의 변경

StringBufferString과 달리 내용 변경이 가능하다

StringBuffer sb = new StringBuffer(“abc”);

sb.append(“123”).append("ZZ"); //append() 끝에 문자열 delete() 삭제 insert() 삽입

 

**append()는 지정된 내용을 StringBuffer에 추가 후 StringBuffer의 참조를 반환

 

StringBuffer의 비교

StringBufferequals()가 오버라이딩 되어있지 않다 //내용이 같아도 false가 나옴

->StringBufferString으로 변환 후에 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클래스를 새로 작성한 것 

 

 

'백엔드 > Java의 정석' 카테고리의 다른 글

TIL 정리_15  (0) 2022.03.02
TIL 정리_14  (0) 2022.03.01
TIL 정리_12  (0) 2022.02.27
TIL 정리_11  (0) 2022.02.26
TIL 정리_10  (0) 2022.02.25