티스토리 뷰
『API』
[String 클래스]
불변 클래스 // 문자열 값 수정 불가능
수정 시 수정된 문자열이 새롭게 할당 되어 새 주소 값이 나옴
(배열 크기 변경할 때 새 주소 값이 나오는 상황과 비슷)
- 출력할 때 사용하는 것이 유리
▼
(설명)
≫ str1과 str2의 주소 값이 같은 이유는 해당 문자열 값이 constant pool이라는 곳에 담기게 되기 때문
(문자열은 정말 많이 활용되기 때문에, 메모리 영역을 많이 차지하여 이런 식으로 구현)
≫ str3 같은 경우는 new 연산자를 통해 새로운 객체가 생성된 경우기 때문에 주소 값이 다름
▼
그럼 복합 대입 연산자 +=를 사용해
str2 += "최고"; 를 해서 문자열을 추가했을 경우에는?
≫ str2 "java" 뒤에 "최고"를 붙이면 원래 같이 공유하던 "java"는 그대로 놔 두고,
새롭게 "java최고"가 만들어져 해당 주소 값을 str2가 가지게 되는 것이다
[StringBuffer 클래스]
가변 클래스 // 문자열 값 수정 가능
문자열 수정을 가능하게 하는 클래스(주소 값 그대로)
기본 16문자 크기로 지정된 버퍼 이용(크기 증가 가능[자동, 수동 가능])
쓰레드 safe 기능 제공(성능 저하 요인) ≫ 동기화 (쓰레드 줄 세우기)
[StringBuilder 클래스]
가변 클래스 // 문자열 값 수정 가능
StringBuffe 클래스와 동일하지만 쓰레드 safe 기능 제공 X
▼
(문자열 관련 메소드 1)
(문자열 관련 메소드 2)
[StringTokenizer 클래스]
:: String클래스에서 제공하는 split()메소드와 같은 기능을 하는 클래스
▼
[Wrapper 클래스]
:: 기본 자료형을 객체화 해주는 클래스
예를 들면 int 는 null이 안 되는데 아무것도 입력하지 않았을 때를 대비해서.
▲ 이보다 간단한 방법은
int num = 10;
String i = num + ""; // 정수에 문자열 더해 문자열화 하는 것.
▼
[날짜 관련 클래스]
기본 생성자랑 long 빼고는 전부 deprecated.
▼ Date 대신 이걸 쓰자
Calendar :
추상 클래스 (추상 클래스는 미완성이라 객체 생성 불가능)
protected 접근제한자로 상속 받아서 사용해야 함
GregorianCalendar : 가장 최신!
▼ 메소드 써 보기
[Format 관련 클래스]
우리가 원하는 형식대로 만들 수 있음
[Math 클래스]
:: 객체 생성이 안 된다
- 객체 생성이 안 된다
- 상수 필드는 import할 필요 없음 (객체 생성 x)
- 그럼 부를 땐? 클래스.메소드() 로 쓰면 됨
public final class Math {
private Math() {}
◇ 싱글톤 패턴
외부에서 객체 생성 불가능 ≫ private Math(){} 가 증거
대신 필드나 메소드를 static으로 만들어 놓음
따라서 클래스만 써도 사용할 수 있도록 함
+) mvc 패턴
▼ Math 클래스 종류 알아보기
'KH' 카테고리의 다른 글
[JAVA] 20230224 (IO) (0) | 2023.02.24 |
---|---|
[JAVA] 20230223 예외 처리(Exception) (0) | 2023.02.23 |
[JAVA] 20230220 (다형성) (0) | 2023.02.20 |
[JAVA] 2023년 2월 17일 (상속) (0) | 2023.02.17 |
[JAVA] 2023년 2월 16일 木 (객체 배열) (0) | 2023.02.16 |