2019. 12. 30. 22:18ㆍ카테고리 없음
해시테이블 : key - value
인덱스 대신에 key 를 이용해 탐색하는 방식
구현방법: 연결리스트와 해시코드 함수
1. 키의 해시코드 계산? : 해시코드
StringBuilder 는 가변 크기의 배열로 필요한 경우에만 문자열을 복사하게끔 해준다.
" // 참조: https://novemberde.github.io/2017/04/15/String_0.html
String과 StringBuilder 의 차이점은 String 은 선언시마다 매번 String 객체를 새로 생성해서 각 String의 주소값이 stack 에 쌓이고 클래스 들은 Garbage Collector 가 호출되기 전까지 heap 에 지속적으로 쌓이게 된다. 메모리 관리 측면에서 치명적이다.
Stringbuilder는 값을 append 로 더하기 때문에 값이 추가되어도 클래스를 직접 생성하지않는다.
StringBuilder는 기본값(16)을 주고, 그 이상 넘어가면 2배로 사이즈를 늘린다.
곁들여서 Stringbuilder와 StringBuffer의 차이는
StringBuilder에서는 쓰레드들이 동시에 접근할 수있다.
StringBuffer는 multithread 환경에서 다른값을 변경하지 못하도록 하므로, web이나 소켓환경같이 비동기로 동작하는 경우가 많을때는 StringBuffer를 사용하는 것이 안전하다.
"
string 을 복사할때
java의 문자열은 수정이 불가능(immutable)하다. 때문에 문자 배열을 사용한다