ข้อแตกต่างของการประกาศ int และ Integer ใน Java

Short answer: An int is a number; an Integer is a pointer that can reference an object that contains a number. Using Integer for arithmetic involves more CPU cycles and consumes more memory. An int is not an object and cannot passed to any method that requires objects (just like what you said about Generics).

ถ้าจะให้พูดง่ายๆคือ int เป็น “ตัวเลข”  แต่ Integer เนี่ยเป็น pointer ซึ่งทำให้เราสามารถอ้างอิง object ที่เก็บตัวเลขนั้นๆได้แต่การใช้งาน Integer นั้นจะกิน CPU และหน่วยความจำมากกว่า int ธรรมดา และ int ไม่สามารถใช้งาน method ของ Integer Object ได้ อย่างเช่น

Credit :