2017-02-13 1 views
-4

Lequel de là les expressions sont considérées java longues littéraux:Java longues littéraux

1) 0Xf000L

2) 6L

3) (489 - 0L)/80

4) 30508600000

5) 0XBD000


Ma réponse:

1) est considéré en raison de "L" a la fin

2) Identique à la première

3) n'est pas un calcul littéral mais?

4) est à un grand nombre pour longtemps

5) est pas longtemps littérale

Si je me trompe quelque part s'il vous plaît me corriger. De plus, si la variable longue que nous initialisons n'a pas de "L" à la fin, est-ce encore considéré comme long littéral? Parce que si je fais ça dans le compilateur ça me permet de le faire (par exemple 5. question) Merci!

+1

2 et 4 sont désireux de certains, 3 pourraient dépendre des règles de casting (que j'oublie). Mais dans tous les cas, ne pouvez-vous pas tester cela dans votre Java local? –

+2

C'est très simple: si elle n'a pas "L", ce n'est pas un long littéral. Si c'est un calcul plutôt qu'un nombre simple, alors ce n'est pas un littéral. – RealSkeptic

+0

@RealSkeptic Pas tout à fait ... 4 n'a pas L, mais il est beaucoup trop grand pour tenir dans un int, il doit donc être traité aussi longtemps. –

Répondre

1

Pour 1) et 2) vous avez tout à fait raison, ce sont des littéraux longs.

3), correct: Ceci est une expression constante de type long. Même s'il s'agit d'une constante à la compilation, elle ne compte pas comme un littéral.

4) Non, ce n'est pas trop grand pour tenir dans un long. Cependant, puisqu'il n'a pas le suffixe L, il ne compte pas comme long. C'est un int, mais en même temps trop grand pour tenir dans un int, ainsi que discuté dans les commentaires, c'est une erreur de compilation. 5) est un int littéral. Il peut être utilisé chaque fois qu'une valeur long est attendue (par exemple, affectée à une variable long), mais vous avez raison, cela ne le rend pas long.

La règle de base est que RealSkeptic dit: "Un littéral entier est de type long s'il est suffixé avec une lettre ASCII L ou l (ell); sinon, il est de type int (§4.2.1). "(cité ici de JLS section 3.10.1).

(Et juste pour obtenir sur une caisse à savon, la citation se poursuit. Le suffixe L est préféré, parce que la lettre l (ell) est souvent difficile de distinguer du chiffre 1 (un))

+0

Merci, c'est ce que je cherchais – vucko95

+0

Rien à me remercier, je viens de résumer ce qui avait déjà été dit dans les commentaires. Je pensais juste que cela pourrait être agréable pour les futurs lecteurs, aussi qu'il est clair maintenant que la question a été répondue. –