Donc j’apprends java et j’ai une question. Il semble que les types int
, boolean
et ssortingng
soient bons pour à peu près tout ce dont j’ai besoin en termes de variables, sauf peut float
être que float
pourrait être utilisé lorsque des nombres décimaux sont nécessaires dans un nombre.
Ma question est la suivante: les autres types tels que long
, double
, byte
, char
etc. ont-ils déjà été utilisés dans la programmation normale et quotidienne? Quelles sont les choses pratiques pour lesquelles ils pourraient être utilisés? Qu’est-ce qu’ils existent?
À l’exception peut-être de «court», qui est sans doute un peu un gaspillage d’espace – parfois littéralement, ils sont tous des chevaux pour des cours:
[*] Par exemple, dans les architectures Hotspot sur Pentium, les opérations fictives et doubles prennent généralement exactement le même temps , sauf pour la division.
Ne vous laissez pas embourber dans l’utilisation de la mémoire de ces types, à moins que vous ne le compreniez vraiment . Par exemple:
De toute évidence, il y a certains appels d’API (par exemple, divers appels pour des tâches non intensives en CPU qui, pour une raison quelconque, prennent des flottants) où il suffit de passer le type demandé …!
Notez que Ssortingng n’est pas un type primitif, il n’appartient donc pas vraiment à cette liste.
Un Java int est de 32 bits, alors qu’un long est de 64 bits, donc lorsque vous devez représenter des entiers supérieurs à 2 ^ 31, long est votre ami. Pour un exemple typique d’utilisation de long, consultez System.currentTimeMillis ()
Un octet est de 8 bits et la plus petite entité adressable sur le matériel le plus moderne. Il est donc nécessaire de lire des données binarys à partir d’un fichier.
Un double a deux fois la taille d’un flotteur, vous utiliseriez donc généralement un double plutôt qu’un flotteur, sauf si vous avez des ressortingctions de taille ou de vitesse et qu’un flotteur a une capacité suffisante.
Un court est de deux octets, 16 bits. À mon avis, c’est le 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 lire des formats de fichiers binarys ou faire des protocoles réseau de bas niveau. Par exemple, les numéros de port ip sont 16 bits.
Char représente un seul caractère, soit 16 bits. C’est la même taille qu’un short, mais un short est signé (-32768 à 32767) alors 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 que par un court, mais cela semble être hors de scope des caractères …)
Pour la source vraiment autorisée sur ces détails, reportez-vous à la spécification du langage Java .
Vous pouvez voir ici les types primitifs en Java.
L’intérêt principal entre ces types est l’utilisation de la mémoire. Par exemple, int utilise 32bits alors que l’ octet n’utilise que 8bits.
Imaginez que vous travailliez sur de grandes structures (tableaux, masortingces …), alors vous feriez mieux de prendre en compte le type que vous utilisez pour réduire l’utilisation de la mémoire.
Je suppose que les types de ce genre ont plusieurs objectives:
1) Ils imposent des ressortingctions sur la taille (et le signe) des variables qui peuvent y être stockées.
2) Ils peuvent append un peu de clarté au code (par exemple, si vous utilisez un caractère, toute personne lisant le code sait ce que vous prévoyez de stocker).
3) Ils peuvent économiser de la mémoire. Si vous avez un grand nombre de nombres, tous non signés et inférieurs à 256, vous pouvez le déclarer comme un tableau d’octets, économisant 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 que vous avez besoin de stocker sont plus grands que 2 ^ 32 et un double pour les très grands nombres à virgule flottante.
Les types de données primitifs sont nécessaires car ils constituent la base de toute collection complexe.
long, double, byte, etc. sont utilisés si vous n’avez besoin que d’un petit nombre entier (ou autre), qui ne gaspille pas votre espace de tas.
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 firebase database et de stream.
Les nombres entiers doivent être utilisés pour les nombres en général.
Les doubles sont le type de données de base utilisé pour représenter les décimales.
Les chaînes peuvent contenir essentiellement n’importe quel type de données, mais il est plus facile à utiliser ints et il est difficile d’utiliser des chaînes de caractères à l’exception du texte.
Les caractères sont utilisés lorsque vous ne souhaitez conserver qu’une seule lettre, bien qu’ils ne soient essentiellement que pour plus de clarté.
Les shorts, les longs et les flottants peuvent ne pas être nécessaires, mais si vous créez, par exemple, un tableau de taille 1,00000 qui ne nécessite que des nombres inférieurs à 1 000, vous voudrez utiliser des shorts, simplement pour économiser de l’espace.
C’est relatif aux données que vous traitez. Il est inutile d’utiliser un type de données qui réserve une grande partie de la mémoire lorsque vous ne traitez qu’une petite quantité de données. Par exemple, de nombreux types de données réservent de la mémoire avant même d’avoir été utilisés. Prenez des tableaux, par exemple, ils réservent une quantité par défaut (disons 256 octets <- un exemple!) Même si vous n’en utilisez que 4 octets.
Voir ce lien pour votre réponse