Gibt es einen bestimmten Grund, warum diese Art von Literal nicht enthalten ist, während Hex- und Octal-Formate erlaubt sind?Warum gibt es in Java keine Binärliterale?
Antwort
Hier ist eine neuere und mehr "offizielle" Referenz - http://openjdk.java.net/projects/coin/ –
Great link +1. Es führt mich zu dieser http://mail.openjdk.java.net/pipermail/coin-dev/2009-March/000929.html, die alle meine Gründe zusammenfasst, warum ich ein binäres Literal sehen möchte. –
Es gibt den neueren Link: http://download.oracle.com/javase/7/docs/technotes/guides/language/binary-literals.html –
Binary Literale wurden in Java 7 eingeführt Siehe "Improved Integer Literals":
int i = 0b1001001;
Der Grund für sie, ohne sich von Tag wahrscheinlich die folgende ist: Java ist ein High-Level-Sprache und ist ziemlich restriktiv, wenn es kommt zu Sprachkonstrukten, die weniger wichtig und wenig ausgeprägt sind. Java-Entwickler haben eine allgemeine Richtlinie "im Zweifelsfall, halten Sie es aus".
Wenn Sie auf Java sind 6 oder mehr Jahren, die beste Wahl
int yourInteger = Integer.parseInt("100100101", 2);
C ist Mid-Level-Sprache und war historisch ziemlich permissiv, wenn es um Sprachkonstrukte geht, die sehr niedrig sind. Immer noch keine binären Literale. –
Ja, das ist IMO Fremder. Es ist seit einiger Zeit in GCC präsent, so wie ich es verstehe. – aioobe
Wie viele Menschen finden Oktal Literale nützlicher als sie binäre finden würden? – supercat
Die associated bug ist im April 2004 eröffnet, zu tun ist, hat eine niedrige Priorität und wird als Antrag auf Erweiterung von Sun/Oracle betrachtet .
Ich denke, sie denken, binäre Literale würde die Sprache komplexer machen und bietet keine offensichtlichen Vorteile ...
tatsächlich, es ist. in Java7.
http://code.joejag.com/2009/new-language-features-in-java-7/
Es scheint hier einen Eindruck davon zu sein, dass die Umsetzung binäre Literale komplex ist. Es ist nicht. Es würde ungefähr fünf Minuten dauern. Und natürlich die Testfälle.
Java 7 erlaubt binäre Literale! Überprüfen Sie dies: int binVal = 0b11010; bei diesem Link: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
- 1. Warum gibt es in JavaFX keine ObservableQueues?
- 2. Warum gibt es keine Zeitzonendateien in Java 8 u31?
- 3. Warum gibt es in Java keine Ceil (Float)?
- 4. Warum gibt es in Java keine blockbereichsvariablen Deklarationen?
- 5. Warum gibt es keine Duration.ofWeeks()?
- 6. Warum gibt es keine Grenze?
- 7. Warum gibt es keine Seq.partition in F #
- 8. Warum gibt es keine gleichzeitige TreeMap?
- 9. Warum gibt es in C# keine gleichzeitigen Sammlungen?
- 10. Warum gibt es keine lubridate ::: update Funktion?
- 11. Warum gibt es keine Monitor.EnterAsync-ähnliche Methode
- 12. Warum gibt es keine Zeichenfolge.Split (String) Überladung?
- 13. Warum gibt es hier keine Inferenz?
- 14. Warum gibt es keine strnchr-Funktion?
- 15. Warum gibt es keine richtigen Permutationen zurück!
- 16. Warum gibt es keine Testinstrumentierung für BroadcastReceiver?
- 17. Warum gibt es keine Typklasse für Containertypen?
- 18. istringstream - warum gibt es keine Reset-Funktion
- 19. Warum gibt es keine pausenlosen GCs?
- 20. Warum hat Java eine "NullPointerException", wenn es in Java keine Zeiger gibt?
- 21. Warum gibt es keine "Iterable" -Schnittstelle in der STL?
- 22. Warum wird es in Java 7 keine nativen Eigenschaften geben?
- 23. Warum gibt es keine list.clear() Methode in Python?
- 24. Warum gibt es in der Haskell-Standardbibliothek keine Scanl-Funktion?
- 25. Warum gibt es keine String.IsNumeric Funktion in C#
- 26. Warum gibt es in Scala keine "Functor" Eigenschaft?
- 27. Warum gibt es in Petapoco keine LastOrDefault-Methode wie FirstOrDefault?
- 28. Warum gibt es in .NET keine SortedList <T>?
- 29. Warum gibt es keine Functor Beispiel für Array in Scalaz
- 30. Warum gibt es in FlexUnit keine assertError() - Funktion?
Es ist nicht in den meisten Sprachen enthalten, vielleicht der gleiche Grund dafür, dass es nicht in Java enthalten ist. Aber ich würde den allgemeinen Grund trotzdem gerne wissen. –
Danke Jungs für die schnellen Antworten. Zusammenfassend würde ich sagen, dass es nicht einfach enthalten ist, weil C es nicht hat und nicht wirklich, weil es Komplexität hinzufügt. Heck, Oktal ist enthalten und ich sehe es nicht viel zu benutzen im Vergleich zu Binär, sondern nur weil C es hat. Wie wir aus diesem Vorschlag http://mail.openjdk.java.net/pipermail/coin-dev/2009-March/000929.html sehen können, hat binäre Literale viele Vorteile, besonders in der bitorientierten Domäne. –