DEV ℧ Developer Diary

[Silver1] No.16953 A -> B

A -> B

No.16953 A -> B

문제

정수 A를 B로 바꾸려고 한다. 가능한 연산은 다음과 같은 두 가지이다.

  • 2를 곱한다.
  • 1을 수의 가장 오른쪽에 추가한다.

A를 B로 바꾸는데 필요한 연산의 최솟값을 구해보자.

문제 풀이

생각보다 너무 쉽게 풀려...

[EffectiveJava] item09 - try-finally보다는 try-with-resources를 사용하라.

try-finally보다는 try-with-resources를 사용하라.

자바 라이브러리에는 close()메서드를 호출해 닫아줘야 하는 자원이 많다.

예를 들면 InputStream,OutputStream,java.sql.Connection 같은 클래스들이 있다.

close();를 사용하는 이유 IO 객체와 같은 클래스는 OS로부터 자원을 할당받아 사용하는 네이티브 메서드들을 가지고 있는 경우가 있다. GC는...

[Git] Git 메시지 컨벤션이란?

Git - Commit Message Convention

커밋 메시지를 작성할 때는 원칙을 정하고 일관성있게 정해야 협업간에 쉬운 의사소통이 가능하다. 이번에 기회가 되면 정리하고자 하던 깃 메세지 컨벤션을 정리해 보았다. 아직 깃커밋 메시지가 익숙하지 않아 내가 참고하려고 정리를 다시 해보았다. 이런 약속은 사소하지만 정말 중요한것 같다.

<h2…

[EffectiveJava] item08 - finalizer와 cleaner 사용을 피해라.

finalizer와 cleaner 사용을 피해라.

finalizercleaner은 자바에서 제공하는 객체 소멸자이다. 하지만 이름이 무색하게도 해당 객체들은 크게 쓰이지 않는다.

@Override public void finalize() { ... } 

finalize 메서드를...

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

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

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

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