web-dev-qa-db-fra.com

Quel est le but de long, double, byte, char en Java?

Donc, j'apprends Java et j'ai une question. Il semble que les types int, boolean et string conviendront à peu près tout ce dont j'aurai besoin en termes de variables, sauf que float pourrait peut-être être utilisé lorsque des nombres décimaux sont nécessaires.

Ma question est la suivante: les autres types tels que long, double, byte, char etc. ont-ils déjà été utilisés dans une programmation quotidienne normale? Quelles sont les choses pratiques pour lesquelles ils pourraient être utilisés? Pourquoi existent-ils? 

45
Click Upvote

Un java est 32 bits, tandis qu'un long 64 bits. Par conséquent, lorsque vous devez représenter des entiers supérieurs à 2 ^ 31, votre ami est long. Pour un exemple typique d'utilisation de long, consultez System.currentTimeMillis ().

Un octet est 8 bits, et la plus petite entité adressable sur le matériel le plus moderne, il est donc nécessaire lors de la lecture de données binaires à partir d'un fichier.

Un double a deux fois la taille d'un flotteur, vous utiliserez donc généralement un double plutôt qu'un flottant, sauf si vous avez des restrictions de taille ou de vitesse et qu'un flotteur a une capacité suffisante.

Un court est deux octets, 16 bits. À mon avis, il s'agit du type de données le moins nécessaire, et je ne l'ai pas vraiment vu dans le code réel, mais encore une fois, cela pourrait être utile pour la lecture de formats de fichiers binaires ou la création de protocoles réseau de bas niveau. Par exemple, les numéros de port ip sont 16 bits.

Char représente un seul caractère, qui est de 16 bits. Sa taille est identique à celle d'un court, mais un court est signé (-32768 à 32767), tandis qu'un caractère est non signé (0 à 65535). (Cela signifie qu'un numéro de port IP est probablement plus correctement représenté par un caractère qu'un caractère court, mais cela semble être en dehors de la portée prévue pour les caractères ...)

Pour la source qui fait autorité sur ces détails, voyez la spécification du langage Java .

18
Rolf Rander

Vous pouvez consulter ici à propos des types primitifs en Java.

Le principal intérêt entre ces types est l'utilisation de la mémoire. Par exemple, int utilise 32 bits tandis que byte utilise uniquement 8 bits.

Imaginez que vous travailliez sur une structure volumineuse (tableaux, matrices, etc.), alors vous feriez mieux de vous occuper du type que vous utilisez afin de réduire l'utilisation de la mémoire.

3
Romain Linsolas

J'imagine que les types de ce type ont plusieurs objectifs:

1) Ils imposent des restrictions sur la taille (et le signe) des variables pouvant y être stockées. 

2) Ils peuvent ajouter un peu de clarté au code (par exemple, si vous utilisez un caractère, toute personne qui lit le code sait ce que vous envisagez de stocker dans celui-ci).

3) Ils peuvent économiser de la mémoire. Si vous avez un grand tableau de nombres, qui seront tous non signés et inférieurs à 256, vous pouvez le déclarer comme un tableau d'octets, ce qui économise de la mémoire par rapport à si vous déclariez un tableau d'ints.

4) Vous avez besoin de beaucoup de temps si les nombres à stocker sont supérieurs à 2 ^ 32 et un double pour les très grands nombres à virgule flottante.

3
Ben

Entiers devrait être utilisé pour les nombres en général.
Doubles sont le type de données de base utilisé pour représenter les décimales.
Strings peut contenir essentiellement n'importe quel type de données, mais il est plus facile d'utiliser ints et confuse d'utiliser string sauf pour le texte.
Les caractères sont utilisés lorsque vous ne souhaitez contenir qu'une lettre, bien qu'ils ne soient essentiellement que pour la clarté.
Shorts, longs et floats peuvent ne pas être nécessaires, mais si vous créez, par exemple, un tableau de taille 1,00000 qui ne doit contenir que des nombres inférieurs à 1 000, vous voudrez alors utiliser shorts, simplement pour économiser de l'espace.

0
Ben Bowles

Les types de données primitifs sont obligatoires car ils constituent la base de chaque collection complexe.

long, double, byte, etc. sont utilisés si vous n'avez besoin que d'un petit entier (ou autre) qui ne gaspille pas votre espace mémoire.

Je sais, il y a assez de RAM à notre époque, mais vous ne devriez pas le gaspiller.

J'ai besoin des "petits" pour les opérations de base de données et de flux.

0
guerda