[Java] 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에 대해 호출하는 것보다 더 빠름. (당연!)
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할 수 없으므로)
댓글