API 1-2) String 클래스
https://kwanghyung.tistory.com/entry/API-1-1-Math%ED%81%B4%EB%9E%98%EC%8A%A4
API 1-1) Math클래스
1. Math 클래스 Math 클래스의 특징 -모든 필드와 메소드가 다 static으로 되어있다. -굳이 생성할 필요가 없으므로 생성자가 private -java.lang이라는 패키지 안에 존재. 필드 Math.PI 메소드 Math.ceil..
kwanghyung.tistory.com
오늘은 String 클래스에 대해서 얘기해보겠습니다.
str1,str2를 변수로 정의해서 string 클래스를 사용하겠습니다.
1. toString() 메소드
String 클래스에선 실제 담겨있는 문자열을 반환하도록 재정의 되어있습니다.
오버라이딩이 되어서 그 문자를 출력하는 것으로 정의 되었습니다.
2. equals()메소드
3. hashCode() 메소드
hashcode를 String메소드로 오버라이딩 하면 문자열 기반이기 때문에 같지만, 실제 주소값의 헤시코드는 다릅니다.
문자열을 리터럴로 했을대 비교
1. toString() 메소드
2. equals 메소드
3. hashCode() 메소드
4.System.identityHashCode()메소드
리터럴로 했을때는 hashcode와 실제 해시코드도 같다.
리터럴 값에 대한 이해
String pool에 중복문자는 이미 있는것을 참조하고 있는 것에 더 추가하면 새로운 영역에서 변경된 값이 들어갑니다.
문자열의 단점
불변클래스이기떄문에 합성이 느립니다(새 메모리영역을 할당받는 작업이 이루어지기 때문에)
그래서 가변형클래스를 사용합니다
StringBuffer/StringBuilder
차이점
StringBuffer는 순서가 있어서 조금 느리지만(안전합니다)
StringBuilder는 순서가 없어서 빠르지만 안전하지 않습니다.