Итак, int
- это примитив, а Integer
- это примитив в штучной упаковке (также в штучной упаковке).
В общем:
Предпочитают использовать примитивы над коробочными типами.
Использовать в штучной упаковке, когда:
- Использование параметризованных типов (список Collection). Параметризованные типы не допускают примитивы.
- Использование значения в качестве ключа или значения в коллекциях.
- Использование рефлексивного вызова метода (другой не делать). например Class.forName ( "java.lang.Integer");
Источник: Эффективная Ява Джошуа Блоха.
В вашем случае:
Если в базе данных отсутствует популяция, следует ли ее инициализировать до 0
(для примитивов) или null
(для штучных типов)? На мой взгляд, 0 означает что-то. Это значит, что там 0 граждан, там никто не живет. Кроме того, вам нужно будет выполнить проверку population > 0
, чтобы увидеть, присутствует ли значение. Несмотря на общую рекомендацию, в этом случае я бы пошел в штучной упаковке Integer
типа.