2013-08-20 10 views
6

Diese Frage kam mir in den Sinn, weil ich irgendwo gelesen habe, dass Java keine reine objektorientierte Sprache ist, da es Primitive (die keine Objekte sind) verwendet. Dem kann ich zustimmen. Jetzt ist mein Problem, warum wir primitives/wrappers verwenden, während wir bereits Objekt in demselben Typ haben?Primitive vs Objekttyp in Java

Als Beispiel, wenn wir Integer betrachten, hat es die gleiche Wertgrenze wie int außer Objektverhalten. warum noch Java primitives unter diesen Bedingungen verwenden?

Als meine Meinung, wenn Java nur Objekttyp Autoboxing and Unboxing nicht brauchen. Es gibt übrigens auch kein Primitiv für String.

+3

bezogen: http://stackoverflow.com/questions/3257967/primitives-types-in-java?rq=1 –

+1

Bitte beachten Sie: [Warum verwenden Menschen immer noch primitive Typen in Java?] (Http: // stackoverflow .com/questions/5199359/why-do-people-noch-verwenden-primitive-types-in-java) – Jost

+1

Dies ist eine Diskussionsfrage, die es für StackOverflow off-topic macht. –

Antwort

5

Ein Grund ist aufgrund der Speichernutzung. Primitive wie int, float usw. benötigen weniger Speicherzuweisungen (ich denke 4 Bytes) im Vergleich zu Objekten, die mindestens 8 Bytes sind. Bitte beachten Sie die folgenden reference:

Darüber hinaus wird eine Menge von arithmetischen (numerischen) mit der Verwendung von Primitiven anstelle ihrer Objekt-Äquivalente abgeschlossen und dies ist ein weiterer Grund, warum sie in der Sprache Java ziemlich kritisch sind.

+0

Warum hat String dann kein Primitiv? –

+1

Weil Zeichenfolgen keine primitiven Typen der CPU sind. Charaktere sind bis zu einem gewissen Grad. Der Overhead eines 'String'-Objekts im Vergleich zu einem' char [] 'ist vernachlässigbar. –

+0

Es tut. 'char []'. –