본문 바로가기

전체 글56

[JAVA] equals와 hashcode hashCode() hashCode()는 객체의 해시코드를 반환하는 메서드이다. Object클래스의 hashCode()는 객체의 주소를 int 형으로 변환해서 반환한다. 그래서 객체마다 다른 값을 가지게 된다. Object 클래스의 hashCode() 실제 코드를 살펴보자. public class Object { ... public native int hashCode(); } native 키워드가 붙어있는데 이는 이 메서드가 OS의 메서드(C, C++, 어셈블리어로 작성됨)를 호출해서 사용한다는 뜻이다. 즉, native 키워드를 붙이면 OS가 가지고 있는 메서드를 마치 자바가 가지고 있는 것처럼 호출해서 사용할 수 있다는 것이다.(이를 JNI라고 한다. JNI는 자바와 자바가 아닌 언어가 서로 호출해서.. 2022. 9. 28.
[디자인 패턴] 빌더(Builder) 패턴 0. 이 글을 쓰게 된 이유 남의 코드들을 보면서 빌더 패턴을 처음 접했다. 많은 개발자들이 이 패턴을 쓰는 이유와 제대로 알고 쓰고 싶어서 책을 읽고 공부한 내용을 정리해본다. 1. 빌더 패턴 빌더 패턴에 대해서 공부를 해보니 평소에 사용하는 빌더 패턴(Effective Java에서 설명하고 있는)과 GoF의 빌더 패턴의 목적이 조금 다르다는 것을 알게되었다. Effective Java에서 설명하는 빌더 패턴 객체 생성을 가독성 있고 유연하게 하기 위한 목적 Gof 디자인 패턴의 빌더 패턴 객체의 생성 알고리즘과 조립 방법을 분리하는 것이 목적 이 글에서는 Effective Java에서 설명하는 빌더 패턴의 목적 위주로 설명한다. 1.1 Effective Java 빌더 패턴 Effective Java .. 2022. 9. 28.