- 자바의 정석 109~113강 ch9 java.lang 패키지와 유용한 클래스(2)2023년 08월 13일 02시 37분 48초에 업로드 된 글입니다.작성자: 민발자728x90
ch 9-15~18 StringBuffer클래스
1. StringBuffer클래스
문자형 배열 char[] 을 내부적으로 가지고 있음
String과 다르게 내용 변경 가능 mutable
append() : 문자열을 추가할 수 있음
2. StringBuffer의 생성자
배열을 이용해 문자열을 다루기 때문에 배열의 길이가 부족하면 새로운 배열을 생성해야 함 → 저장할 문자열 길이를 고려해 생성
크기 미설정시 기본 크기 16
3. StringBuffer의 변경
append() : 지정된 내용 추가 후 StringBuffer 참조 반환
StringBuffer sb = new StringBuffer("abc"); sb.append("123").append("zz"); // append()메서드는 StringBuffer의 참조를 반환하기 때문에
4. StringBuffer의 비교
equals() 오버라이딩 되어있지 않음 → 주소를 비교함
값 비교를 원하는 경우 String으로 변환 후 equals()로 비교
ch 9-15~18 StringBuffer 클래스의 메서드
메서드 설명 StringBuffer() 16문자 담을 수 있는 StringBuffer 인스턴스 생성 StringBuffer(int length) length만큼 담을 수 있는 StringBuffer 인스턴스 생성 StringBuffer(String str) str을 갖는 StringBuffer 인스턴스 생성 StringBuffer append(boolean b)
StringBuffer append(char c)
StringBuffer append(char[] str)
StringBuffer append(double d)
StringBuffer append(float f)
StringBuffer append(int i)
StringBuffer append(long l)
StringBuffer append(object obj)
StringBuffer append(string str)매개변수로 입력된 값을 문자열로 변환해 StringBuffer 문자열 뒤에 추가 int capacity() 버퍼 크기를 알려줌(length는 문자열 길이) char charAt(int index) index위치의 문자 반환 StringBuffer delete(int start, int end) start~end 사이 문자 제거, end index는 포함하지 않음 StringBuffer deleteCharAt(int index) index위치의 문자 제거 StringBuffer insert(int pos, boolean b)
StringBuffer insert(int pos, char c)
StringBuffer insert(int pos, char[] str)
StringBuffer insert(int pos, double d)
StringBuffer insert(int pos, float f)
StringBuffer insert(int pos, int i)
StringBuffer insert(int pos, long l)
StringBuffer insert(int pos, object obj)
StringBuffer insert(int pos, String str)지정 위치 pos에 두 번째 매개변수 문자열로 변환하여 추가 int length() 문자열 길이 반환 StringBuffer replace(int start, int end, String str) start~end의 문자열을 str로 변경, end index는 포함되지 않음 StringBuffer reverse() 문자열 순서를 거꾸로 나열 void setCharAt(int index, char ch) index위치의 문자를 ch로 변경 void setLength(int newLength) newLength로 문자열 길이 변경 → 빈공간은 널문자 '\u0000'으로 채움 String toString() StringBuffer 문자열을 String으로 변환하여 반환 String subString(int start)
String subString(int start, int end)지정된 범위의 문자를 String으로 뽑아서 반환, end index는 포함되지 않음
start만 있으면 start~끝까지
ch 9-21~24 StringBuilder, Math 클래스
1. StringBuilder
StringBuffer → 동기화, 멀티 쓰레드에 안전(thread-safe)
StringBuilder → 동기화 안됨
멀티 쓰레드 아닌 경우 동기화는 불필요한 성능 저하 → 싱글 쓰레드인 경우 StringBuilder 사용시 성능 향상
동기화 여부, 이름만 다르고 메서드 모두 동일
+)
싱글 쓰레드 : 한 번에 1개 작업
멀티 쓰레드 : 한 번에 여러 개 작업, 데이터 공유
2. Math클래스
수학 관련 static 메서드 집합
메서드 설명 static double abs(double a)
static float abs(float f)
static int abs(int f)
static long abs(long f)주어진 값의 절대값 반환
양수 → 양수
음수 → 양수static double ceil(double a) 주어진 값 올림하여 반환 static double floor(double a) 주어진 값 버림하여 반환 static double max(double a, double b)
static float max(float a, float b)
static int max(int a, int b)
static long max(long a, long b)주어진 두 값 비교하여 큰 쪽 반환 static double min(double a, double b)
static float min(float a, float b)
static int min(int a, int b)
static long min(long a, long b)주어진 두 값 비교하여 작은 쪽 반환 static double random() 0.0~1.0범위의 임의의 double값 반환 static double rint(double a) 주어진 값과 가장 가까운 정수값 double형으로 반환
정수 가운데 값 1.5, 2.5 등 짝수 반환
Math.rint(3.5), Math.rint(4.5) → 모두 4.0 반환
오차를 줄일 수 있음static long round(double a)
static long round(float a)소수점 첫째자리에서 반올림한 정수값long 반환
정수 가운데 값 1.5, 2.5 등 큰 정수 반환
Math.round(3.5) → 4
Math.round(4.5) → 5
ch 9-25~17 래퍼클래스, Number 클래스
1. 래퍼wrapper 클래스
기본형 값을 감싸는 클래스, 8개 기본형을 객체로 다루기 위해 사용하는 클래스
기본형 래퍼클래스 boolean Boolean char Character byte Byte short Short int Integer long Long float Float double Double 2. Number 클래스
모든 숫자 래퍼 클래스의 조상
래퍼객체를 기본형으로 변경해주는 메서드를 가지고 있음 intValue(), longValue(), ...
ch 9-28~31 문자열과 숫자 변환, 오토박싱 & 언박싱
1. 문자열을 숫자로 변환하기
// 문자열 → 기본형 byte b = Byte.parseByte("100"); short s = Short.parseShort("100"); int i = Integer.parseInt("100"); long l = Long.parseLong("100"); float f = Float.parseFloat("3.14"); double d = Double.parseDouble("3.14"); // 문자열 → 래퍼 클래스 Byte b = Byte.valueOf("100"); Short s = Short.valueOf("100"); Integer i = Integer.valueOf("100"); Long l = Long.valueOf("100"); Float f = Float.valueOf("3.14"); Double d = Double.valueOf("3.14");
2. n진법의 문자열을 숫자로 변환하는 방법
Integer.parseInt("100", 2); // 4 Integer.parseInt("100", 8); // 64 Integer.parseInt("100", 16); // 256 Integer.parseInt("FF", 16); // 255
3. 오토 박싱&언박싱
오토박싱 : 기본형 → 래퍼클래스
언박싱 : 래퍼클래스 → 기본형
JDK1.5이전 기본형과 참조형간의 연산 불가능했지만 1.5 이후 컴파일러가 자동으로 박싱&언박싱해줘 연산 가능
ArrayList<Integer> list = new ArrayList<Integer>(); list.add(new Integer(100)); // list에는 객체만 추가 가능 list.add(100); // JDK1.5이후 자동으로 박싱해서 기본형으로 넣을 수 있음 Integer i1 = list.get(0); // list에 있는 객체 꺼냄 int i2 = list.get(0).intValue(); // Integer를 기본형 int로 변환하여 꺼냄 int i3 = list.get(0); // 언박싱 컴파일러가 해주기 때문에 변환없이 꺼낼수있음
728x90'정리 > Java' 카테고리의 다른 글
자바의 정석 연습 문제 ch4 조건문과 반복문 (1) 2023.08.15 자바의 정석 ch10 날짜와 시간 & 형식화 (0) 2023.08.13 자바의 정석 104~108강 ch9 java.lang 패키지와 유용한 클래스(1) (0) 2023.08.12 자바의 정석 97~103강 ch8 예외처리 (0) 2023.08.09 자바의 정석 94~96강 내부클래스, 익명 클래스 (0) 2023.08.07 다음글이 없습니다.이전글이 없습니다.댓글