Note that it only applies to local variables. If you have a primitive inside an object then it's allocated on the heap as part of the outer object.