It's not so much about abstraction as about reducing memory churn. For big arrays, using primitives is going to be vastly superior than using the unboxed types.