Packers, being objects, are put in a heap. Primitives are simply “values” and go on the stack. This is more efficient because for wrapped primitives in the heap you need (at least) both the value (which is on the stack) and the reference to the wrapper object.
, , , . , , 99% , . -, ; . , - , , , ( , ).