둘 다 원소로 정수형을 가지는 배열이라는 점은 동일하다.
코드 단에서 타입도 둘 다 Int이다.
그렇다면 도대체 무엇이 다를까?
바로 JVM에서 바이트코드로 변환될 때 차이점을 확인해 볼 수 있다.
먼저 IntArray는 원소들이 Java의 primmitive type인 int로 이루어져 있고
Array<Int>는 Boxing type(Wrapper Class)인 Integer로 이루어져 있다.
속도면 에서는 primmitive type이 좀 더 유리하겠지만
필요에 따라 취사선택해서 사용하면 되겠다.
그리고 서로 변환도 손쉽게 가능한데
toIntArray()
를 통해 IntArray로 변환 가능toTypedArray()
를 통해 Array<Int>로 변환 가능설명을 하느라 Int를 기준으로 설명했지만
String, Double 등을 비롯한 자료형들은 모두 해당되는 얘기이다.