DEV ℧ Developer Diary

[EffectiveJava] item06 - 불필요한 객체 생성을 피하라.

불필요한 객체 생성을 피하라.

모두가 어렴풋이 알고있지만 쉽게 실천하기 어려운 그것. 불필요한 객체 생성을 피하는 방법을 알아보자.

똑같은 기능의 객체를 매번 생성하기보다는 객체 하나를 재사용 하는편이 더나을 때가있다. 특히 불변객체(final)은 언제든지 재활용이 가능하다!

다음엔 극단적으로 하지말아야할 예시를 들어 보겠다. 먼저 대표적인 불변객체인 String을 통해서...

[Silver1] No.02667 단지번호붙이기

단지번호붙이기

No.02667 단지번호붙이기

문제

<그림 1>과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른...

[Silver1] No.02468 안전 영역

안전 영역

안전 영역

재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 안전한 영역이 최대로 몇 개가 만들어 지는 지를 조사하려고 한다. 이때,...

[Silver3] No.01072 게임

게임

No.01072 게임

문제

김형택은 지금 몰래 Spider Solitaire(스파이더 카드놀이)를 하고 있다. 형택이는 이 게임을 이길 때도 있었지만, 질 때도 있었다. 누군가의 시선이 느껴진 형택이는 게임을 중단하고 코딩을 하기 시작했다. 의심을 피했다고 생각한 형택이는 다시 게임을 켰다. 그 때 형택이는 잠시 코딩을...

[EffectiveJava] item05 - 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라.

자원을 직접 명시하지 말고 의존 객체 주입을 사용하라.

item04에 static 메소드가 주로 사용되는 util클래스의 경우 생성자를 private로 만들어서 인스턴스화를 막아야 한다고 했지만, 전부 private 생성자를 만들어 막는것은 좋지가 않다.

예를 들어,

Util 클래스가 여러 클래스에 의존하는 경우는 private 생성자를 이용해 막는것이 옳지 않다. 아래...