Qua prestaties is een int in bijna alle gevallen sneller. De CPU is ontworpen om efficiënt te werken met 32-bits waarden.
Kortere waarden zijn ingewikkeld om mee om te gaan. Om bijvoorbeeld een enkele byte te lezen, moet de CPU het 32-bits blok lezen dat het bevat en vervolgens de bovenste 24 bits maskeren.
Om een byte te schrijven, moet het het 32-bits doelblok lezen, de onderste 8 bits overschrijven met de gewenste bytewaarde en het hele 32-bits blok opnieuw schrijven.
Qua ruimte bespaar je natuurlijk een paar bytes door kleinere datatypes te gebruiken. Dus als u een tabel bouwt met een paar miljoen rijen, dan kunnen kortere datatypes het overwegen waard zijn. (En hetzelfde zou een goede reden kunnen zijn waarom u kleinere datatypes in uw database zou moeten gebruiken)
En qua correctheid loopt een int niet snel over. Wat als je denkt je waarde gaat binnen een byte passen, en op een bepaald moment in de toekomst betekent een onschuldig ogende verandering in de code dat er grotere waarden worden opgeslagen?
Dat zijn enkele van de redenen waarom int uw standaardgegevenstype zou moeten zijn voor alle integrale gegevens. Gebruik byte alleen als u machinebytes daadwerkelijk wilt opslaan. Gebruik alleen shorts als je te maken hebt met een bestandsformaat of protocol of iets dergelijks dat daadwerkelijk 16-bits integerwaarden specificeert. Als je alleen met gehele getallen in het algemeen te maken hebt, maak ze dan ints.