Java 관련한 간단한 테스트

문득 생각나서 몇 가지 간단한 Java  테스트

1. private static method의 코드 블록 크기가 작을 경우 javac는 가볍게 inline 시켜줌.
(즉, 해당 method는 바이트코드에서 사라져버리고 caller method에 inline됨.)

2. instanceof 연산자가 getClass()를 ==비교하는 것보다 훨씬 빠름.
(instanceof는 child class여부까지 체크해야 함에도 불구하고)

3. instanceof 연산을 할 때 exact class에 대해 호출하는 것이 parent class나 interface에 대해 호출하는 것보다 더 빠름. (당연!)

4. java.lang.Object의 clone() 메소드를 사용하여 객체를 shallow copy하는 것은 그다지 효율적으로 구현되지 않아서 직접 copy() 메소드를 구현하여 멤버값들을 복사해주는 것이 대부분 더 빠름.
(자바는 C의 struct처럼value object 개념이 없어 메모리 복사만으로 clone할 수 없으므로)


댓글

이 블로그의 인기 게시물

Java G1 GC의 특성에 따른 Full GC 회피 튜닝 방법

Heap Dump 분석을 통한 Perm Area Memory Leak 원인 진단

맥북프로 13인치 2010년 버전의 하드웨어 업그레이드 산전수전 경험기