DEV ℧ Developer Diary

[EffectiveJava] item07 - 다 쓴 객체 참조를 해제하라.

다 쓴 객체 참조를 해제하라.

자바는 C, 와 C++과는 다르게 JVM에서 GC(Garbage Collection)에 의해 더이상 사용하지 않는 개체들을 메모리단에서 정리해준다. 반면에 C와 C++은 GC같은 개념이 없이 메모리 해제를 하지 않으면 시스템을 재시작 하지 않는 이상 메모리에 계속 남아있게 된다.

하지만 JVM에서 작동하고 있는 GC도...

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

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

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

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

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

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

단지번호붙이기

No.02667 단지번호붙이기

문제

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

[Silver1] No.02468 안전 영역

안전 영역

안전 영역

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

[Silver3] No.01072 게임

게임

No.01072 게임

문제

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