반응형

Clone

    메서드- 규칙 39 필요하다면 방어적 복사본을 만들라.

    포인터를 사용하지 않아 잘못된 메모리 접근으로 다른 메모리 영역에 데이터를 건드려서 beffer overrun(오버플로우)등의 오류는 자바에서는 발생하지 않는다. 하지만 아무리 안전한 언어를 사용한다고 해도, 스스로 노력하지 않는 경우, 클래스의 클라이언트가 불변식(invariant)을 깨버릴 수 있기 때문에, 조금 더 방어적인 프로그래밍을 해야 한다. 예를 통해서 확인해보자. 결재정보를 담고 있는 BillTimeObj라는 클래스는 결재 날짜 정보를 가지고 있는 Date 클래스를 생성자를 통해서 전달받는다. BillTimeObj 클래스는 final로 선언되어 있어서 변경되지 않을 것 같아 보이지만 생성자로 전달되는 Date 객체가 변경이 가능하기 때문에 이는 불변식이 깨져버린다. 1234567891011..

    모든 객체의 공통 메서드 - 규칙 11 clone을 재정의할 때는 신중하라

    Cloneable은 객체의 복제를 허용한다는 사실을 알리는데 쓰려고 고안된 인터페이스이다. 하지만 Cloneable은 선언된 메서드가 없는 마커 인터페이스로, 상위 클래스의 protected 멤버가 어떻게 동작할지 규정하는 용도로 쓰인다. 또한 객체의 cloneable을 구현하면, Object의 clone 메서드는 해당 객체를 필드 단위로 복사한 객체를 반환한다. Cloneable을 구현하지 않았다면, clone 메서드는 CloneNotSupportedException을 던질 것이다. Java API 문서에 기재된 clone 메서드의 명세는 다음과 같다. - 객체의 복사본을 만들어서 반환한다. - "복사"의 정확한 의미는 클래스마다 다르다. - 일반적으로 x.clone() != x 는 참이다. - x.c..

    git사용을 위한 ssh-keygen 설정

    git을 사용하여 repository에 커밋하고 pull 받기위해서는 ssh 연결이 필요하다.이 과정에서 사용되는 keygen 설정을 진행해보자. [진행방법] 1. git을 먼저 설치한다. 2. window의 경우 git bash를 실행시키고, mac인 경우 terminal을 실행 시킨다. 3. ssh-keygen -t rsa -C "git계정"을 입력하고 계속 엔터를 입력한다. 4. 사용자 위치에 생성된 public key를 복사해서 git 관리 홈페이지에 ssh 부분에 입력한다.

반응형