해시테이블

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)하다. 때문에 문자 배열을 사용한다