[Java] HashMap
Java 에서 HashMap은 key-value 값으로 이루어져 있고, key를 사용하여, value 값을 얻어낸다. Key는 중복을 허용하지 않고, Value는 중복을 허용한다. HashMap의 내부구조는 배열로 되어있고, Key는 직접 내부의 인덱스가 될 수 있으며 이를 버킷이라고 한다. 인덱스를 구하기 위해서는, 해시함수를 사용하는데 Hashcode % M 으로 산출할 수 있으나, 동일한 key값이 발생할 수 있고, 이를 해시 충돌이라고 한다. 이를 방지하기 위해서는 Open Addressing 방식과 Separate Chaning 방식이 있고, 해시 맵은 후자를 사용한다. Separate Chaning(동일한 해시값이 있을 경우, LinkedList로 관리하고, 8개 이상인 경우 Tree로 변경하..
[Java] final,finally,finalize 차이점
1. Final 변수나 참조에 적용 가능하다. -변수인 경우, 값 변경이, 참조에 적용하면 다른 객체를 가르키는것이 불가하다 -메서드에 적용하면, 해당 메서드를 상속 받는 하위 클래스에서 오버라이딩이 불가하다.(사용은 가능하나, 변경은 불가 ) -클래스에 적용하면, 해당 클래스를 다른 클래스가 상속 받을 수 없다. 즉, final 클래스의 하위 클래스를 정의 할 수 없다. 2. Finally Finally는 try-catch 블록 뒤에 둘 수 있는 선택적인 블록인데, try-catch 문이 끝나기 전에 항상 꼭 실행되어야 하는 로직이 있을 경우 finally 절에 두면된다. 예외가 던져지더라도, 항상 실행될 코드를 지정하기 위해 사용된다. finally 블록은 try와 catch 블록이 전부 실행된 후,..