Was wird dieses Programm ausgeben?
Neue Position:java.awt.Point[x=12,y=42]
Im Allgemeinen wird eine Konvertierung von einem Typ in einen anderen NICHT automatisch durchgeführt, wenn die Möglichkeit eines Datenverlustes besteht. Eine Konvertierung von einem Datentyp, der N Bits verwendet, in einen Datentyp, der weniger Bits verwendet, läuft Gefahr Daten zu verlieren und wird nicht automatisch durchgeführt. Der Compiler entscheidet, indem er die beteiligten Datentypen untersucht, nicht die darin aktuell enthaltenen Werte.
In den folgenden Situationen wird der Compiler automatisch, in einem Methodenaufruf, den Typ des Ausdrucks in den erforderlichen Typ konvertieren:
"Verlust an Genauigkeit" bedeutet, dass einige Ziffern mit einem niedrigen Stellenwert zu 0 werden, aber die wichtigsten Ziffern und die Größe der Zahl erhalten bleibt.
In den folgenden Situationen wird der Compiler eine Konvertierung NICHT automatisch durchführen.
Erinnern Sie sich an die Größen der verschiedenen primitiven Datentypen
(die primitiven Typen char
und boolean
werden hier nicht aufgeführt):
Typ | Anzahl der Bits |
---|---|
byte | 8 |
short | 16 |
int | 32 |
long | 64 |
float | 32 |
double | 64 |