diff options
| author | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
|---|---|---|
| committer | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
| commit | 33613a85afc4b1481367fbe92a17ee59c240250b (patch) | |
| tree | 670b842326116b376b505ec2263878912fca97e2 /Master/Reference Architectures and Patterns/hjp5/html/k100024.html | |
| download | Studium-33613a85afc4b1481367fbe92a17ee59c240250b.tar.gz Studium-33613a85afc4b1481367fbe92a17ee59c240250b.tar.bz2 | |
Diffstat (limited to 'Master/Reference Architectures and Patterns/hjp5/html/k100024.html')
| -rw-r--r-- | Master/Reference Architectures and Patterns/hjp5/html/k100024.html | 518 |
1 files changed, 518 insertions, 0 deletions
diff --git a/Master/Reference Architectures and Patterns/hjp5/html/k100024.html b/Master/Reference Architectures and Patterns/hjp5/html/k100024.html new file mode 100644 index 0000000..d6414cc --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/html/k100024.html @@ -0,0 +1,518 @@ +<html>
+<head>
+<title>
+Handbuch der Java-Programmierung, 5. Auflage
+</title>
+</head>
+<body>
+<a name="startofbody"></a>
+<script language="JavaScript" src="hjp4lib.js">
+</script>
+<script language="JavaScript">
+installKbdHandler("97,#startofbody;101,#endofbody;116,cover.html;122,k100003.html;115,search.html;105,index.html;100,JDKDOCS;112,APIDOCS;104,k100022.html;106,k100023.html;107,k100025.html;108,k100030.html");
+</script>
+<table border=0 cellpadding=0 cellspacing=1 width="100%">
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html"> Titel </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html"> Inhalt </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html"> Suchen </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html"> Index </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()"> DOC </a>
+<td align="right">Handbuch der Java-Programmierung, 5. Auflage
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100022.html"> << </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100023.html"> < </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100025.html"> > </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100030.html"> >> </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()"> API </a>
+<td align="right">Kapitel 4 - Datentypen
+</table>
+<hr>
+
+
+<!-- Section -->
+<a name="sectlevel2id004002"></a>
+<h2>4.2 <a name="ixa100237">Primitive Datentypen</a><a name="ixa100238"></a></h2>
+<hr>
+<ul>
+<li><a href="k100024.html#sectlevel2id004002">4.2 Primitive Datentypen</a>
+<ul>
+<li><a href="k100024.html#sectlevel3id004002001">4.2.1 Der logische Typ</a>
+<ul>
+<li><a href="k100024.html#sectlevel4id004002001001">Literale</a>
+</ul>
+<li><a href="k100024.html#derzeichentyp">4.2.2 Der Zeichentyp</a>
+<ul>
+<li><a href="k100024.html#sectlevel4id004002002001">Literale</a>
+</ul>
+<li><a href="k100024.html#sectlevel3id004002003">4.2.3 Die integralen Typen</a>
+<ul>
+<li><a href="k100024.html#sectlevel4id004002003001">Literale</a>
+</ul>
+<li><a href="k100024.html#fliesskommazahlen">4.2.4 Die Fließkommazahlen</a>
+<ul>
+<li><a href="k100024.html#sectlevel4id004002004001">Literale</a>
+</ul>
+</ul>
+</ul>
+<hr>
+
+<p>
+Java kennt acht elementare Datentypen, die gemäß Sprachspezifikation
+als <i>primitive Datentypen</i> bezeichnet werden. Daneben gibt es
+die Möglichkeit, Arrays zu definieren (die eingeschränkte
+Objekttypen sind), und als objektorientierte Sprache erlaubt Java
+natürlich die Definition von Objekttypen.
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100%>
+<tr>
+<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top width=1000>
+
+<p>
+Im Gegensatz zu C und C++ gibt es die folgenden Elemente in Java jedoch
+nicht:
+<ul>
+<li>explizite Zeiger
+<li>Typdefinitionen (typedef)
+<li>Recordtypen (struct und union)
+<li>Bitfelder
+</ul>
+</td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top>
+<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#000077">
+<tr>
+<td><font color="#FFFFFF"> Hinweis </font></td>
+</tr>
+</table>
+</td>
+<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
+</tr>
+</table>
+
+<p>
+Was auf den ersten Blick wie eine Designschwäche aussieht, entpuppt
+sich bei näherem Hinsehen als Stärke von Java. Der konsequente
+Verzicht auf zusätzliche Datentypen macht die Sprache leicht
+erlernbar und verständlich. Die Vergangenheit hat mehrfach gezeigt,
+dass Programmiersprachen mit einem überladenen Typkonzept (zum
+Beispiel PL/I oder ADA) auf Dauer keine Akzeptanz finden.
+
+<p>
+Tatsächlich ist es ohne weiteres möglich, die unverzichtbaren
+Datentypen mit den in Java eingebauten Hilfsmitteln nachzubilden.
+So lassen sich beispielsweise Zeiger zur Konstruktion <a name="ixa100239">dynamischer
+Datenstrukturen</a> mit Hilfe von Referenzvariablen
+simulieren, und Recordtypen sind nichts anderes als Klassen ohne Methoden.
+Der Verzicht auf Low-Level-Datenstrukturen, wie beispielsweise Zeigern
+zur Manipulation von Speicherstellen oder Bitfeldern zur Repräsentation
+von Hardwareelementen, ist dagegen gewollt.
+
+<p>
+Alle primitiven Datentypen in Java haben - unabhängig von der
+Plattform auf der Java ausgeführt wird - eine feste Länge,
+die von den Designern der Sprache ein für allemal verbindlich
+festgelegt wurde. Ein <font color="#000077"><tt>sizeof</tt></font>-Operator,
+wie er in C vorhanden ist, wird in Java daher nicht benötigt
+und ist auch nicht vorhanden.
+
+<p>
+Ein weiterer Unterschied zu C und den meisten anderen Programmiersprachen
+besteht darin, dass Variablen in Java immer einen definierten Wert
+haben. Bei Membervariablen (also Variablen innerhalb von Klassen,
+siehe <a href="k100046.html#kapiteloop1">Kapitel 7</a>) bekommt eine
+Variable einen <a name="ixa100240">Standardwert</a> zugewiesen, wenn
+dieser nicht durch eine explizite Initialisierung geändert wird.
+Bei <i>lokalen</i> Variablen sorgt der Compiler durch eine <a name="ixa100241">Datenflussanalyse</a>
+dafür, dass diese vor ihrer Verwendung explizit initialisiert
+werden. Eine Erläuterung dieses Konzepts, das unter dem Namen
+<a name="ixa100242"><i>Definite Assignment</i></a> in der Sprachdefinition
+beschrieben wird, ist Bestandteil von <a href="k100030.html#kapitelausdruecke">Kapitel 5</a>.
+<a href="k100024.html#primitivedatentypen">Tabelle 4.1</a> listet
+die in Java verfügbaren Basistypen und ihre Standardwerte auf:
+<a name="primitivedatentypen"></a>
+<p>
+<table cols=4 border width=100%>
+
+<tr>
+<td valign=top align=left width=25%><b>Typname</b></td>
+<td valign=top align=left width=25%><b>Länge</b></td>
+<td valign=top align=left width=25%><b>Wertebereich</b></td>
+<td valign=top align=left width=25%><b>Standardwert </b></td></tr>
+<tr>
+<td valign=top align=left><a name="ixa100243"><a href="index_b.html#ixb100072"><font color=#000080><tt>boolean</tt></font></a></a></td>
+<td valign=top align=left>1</td>
+<td valign=top align=left><a name="ixa100244"><a href="index_t.html#ixb100233"><font color=#000080><tt>true</tt></font></a></a>,
+<a name="ixa100245"><a href="index_f.html#ixb100234"><font color=#000080><tt>false</tt></font></a></a></td>
+<td valign=top align=left><a href="index_f.html#ixb100234"><font color=#000080><tt>false</tt></font></a>
+</td></tr>
+<tr>
+<td valign=top align=left><a name="ixa100246"><a href="index_c.html#ixb100215"><font color=#000080><tt>char</tt></font></a></a></td>
+<td valign=top align=left>2</td>
+<td valign=top align=left>Alle Unicode-Zeichen</td>
+<td valign=top align=left>\u0000 </td></tr>
+<tr>
+<td valign=top align=left><a name="ixa100247"><a href="index_b.html#ixb100242"><font color=#000080><tt>byte</tt></font></a></a></td>
+<td valign=top align=left>1</td>
+<td valign=top align=left>-2<sup>7</sup>...2<sup>7</sup>-1</td>
+<td valign=top align=left>0 </td></tr>
+<tr>
+<td valign=top align=left><a name="ixa100248"><a href="index_s.html#ixb100243"><font color=#000080><tt>short</tt></font></a></a></td>
+<td valign=top align=left>2</td>
+<td valign=top align=left>-2<sup>15</sup>...2<sup>15</sup>-1</td>
+<td valign=top align=left>0 </td></tr>
+<tr>
+<td valign=top align=left><a name="ixa100249"><a href="index_i.html#ixb100244"><font color=#000080><tt>int</tt></font></a></a></td>
+<td valign=top align=left>4</td>
+<td valign=top align=left>-2<sup>31</sup>...2<sup>31</sup>-1</td>
+<td valign=top align=left>0 </td></tr>
+<tr>
+<td valign=top align=left><a name="ixa100250"><a href="index_l.html#ixb100245"><font color=#000080><tt>long</tt></font></a></a></td>
+<td valign=top align=left>8</td>
+<td valign=top align=left>-2<sup>63</sup>...2<sup>63</sup>-1</td>
+<td valign=top align=left>0 </td></tr>
+<tr>
+<td valign=top align=left><a name="ixa100251"><a href="index_f.html#ixb100246"><font color=#000080><tt>float</tt></font></a></a></td>
+<td valign=top align=left>4</td>
+<td valign=top align=left>+/-3.40282347 * 10<sup>38</sup></td>
+<td valign=top align=left>0.0 </td></tr>
+<tr>
+<td valign=top align=left><a name="ixa100252"><a href="index_d.html#ixb100247"><font color=#000080><tt>double</tt></font></a></a></td>
+<td valign=top align=left>8</td>
+<td valign=top align=left>+/-1.79769313486231570 * 10<sup>308</sup></td>
+<td valign=top align=left>0.0</td></tr>
+</table>
+<p><i>
+Tabelle 4.1: Primitive Datentypen </i></p>
+
+
+<!-- Section -->
+<a name="sectlevel3id004002001"></a>
+<h3>4.2.1 Der logische Typ<a name="ixa100253"></a> </h3>
+
+<p>
+Mit <a name="ixa100254"><a href="index_b.html#ixb100072"><font color=#000080><tt>boolean</tt></font></a></a>
+besitzt Java einen eigenen logischen Datentyp und beseitigt damit
+eine oft diskutierte Schwäche von C und C++. Der <a href="index_b.html#ixb100072"><font color=#000080><tt>boolean</tt></font></a>-Typ
+muss zwangsweise dort verwendet werden, wo ein logischer Operand erforderlich
+ist. Ganzzahlige Typen mit den Werten 0 oder 1 dürfen nicht als
+Ersatz für einen logischen Typen verwendet werden.
+
+<!-- Section -->
+
+<a name="sectlevel4id004002001001"></a>
+<h4><a name="ixa100255">Literale</a></h4>
+
+<p>
+Der Datentyp <a href="index_b.html#ixb100072"><font color=#000080><tt>boolean</tt></font></a>
+kennt zwei verschiedene Werte, nämlich <a name="ixa100256"><a href="index_t.html#ixb100233"><font color=#000080><tt>true</tt></font></a></a>
+und <a name="ixa100257"><a href="index_f.html#ixb100234"><font color=#000080><tt>false</tt></font></a></a>.
+Neben den vordefinierten Konstanten gibt es keine weiteren Literale
+für logische Datentypen.
+
+<!-- Section -->
+
+<a name="derzeichentyp"></a>
+<h3>4.2.2 Der <a name="ixa100258">Zeichentyp</a> </h3>
+
+<p>
+Java wurde mit dem Anspruch entworfen, bekannte Schwächen bestehender
+Programmiersprachen zu vermeiden, und der Wunsch nach Portabilität
+stand ganz oben auf der Liste der Designziele. Konsequenterweise wurde
+der Typ <a name="ixa100259"><a href="index_c.html#ixb100215"><font color=#000080><tt>char</tt></font></a></a>
+in Java daher bereits von Anfang an 2 Byte groß gemacht und
+speichert seine Zeichen auf der Basis des <a name="ixa100260">Unicode</a>-Zeichensatzes.
+Als einziger integraler Datentyp ist <a href="index_c.html#ixb100215"><font color=#000080><tt>char</tt></font></a>
+nicht vorzeichenbehaftet.
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100%>
+<tr>
+<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top width=1000>
+
+<p>
+Da das Sprachdesign und das Java-API so gestaltet wurden, dass die
+Verwendung des Unicode-Zeichensatzes weitgehend transparent bleibt,
+ergeben sich für die meisten Entwickler zunächst kaum Umstellungsprobleme.
+Ein <a href="index_c.html#ixb100215"><font color=#000080><tt>char</tt></font></a>
+oder <a href="index_s.html#ixb100117"><font color=#000080><tt>String</tt></font></a>
+kann in Java genauso intuitiv benutzt werden wie in Sprachen, die
+auf dem ASCII-Zeichensatz aufbauen. Unterschiede werden vor allem
+dann deutlich, wenn Berührungspunkte zwischen der internen Unicode-Darstellung
+und der Repräsentation auf Systemebene entstehen, beispielsweise
+beim Lesen oder Schreiben von Textdateien.</td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top>
+<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#000077">
+<tr>
+<td><font color="#FFFFFF"> Hinweis </font></td>
+</tr>
+</table>
+</td>
+<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
+</tr>
+</table>
+
+
+<!-- Section -->
+<a name="sectlevel4id004002002001"></a>
+<h4><a name="ixa100261">Literale</a></h4>
+
+<p>
+<a name="ixa100262"><a href="index_c.html#ixb100215"><font color=#000080><tt>char</tt></font></a></a>-Literale
+werden grundsätzlich in einfache Hochkommata gesetzt. Daneben
+gibt es <a name="ixa100263"><a href="index_s.html#ixb100117"><font color=#000080><tt>String</tt></font></a></a>-Literale,
+die in doppelten Hochkommata stehen. Ähnlich wie C stellt Java
+eine ganze Reihe von Standard-<a name="ixa100264">Escape-Sequenzen</a>
+zur Verfügung, die zur Darstellung von Sonderzeichen verwendet
+werden können: <a name="tableid004002"></a>
+
+<p>
+<table cols=2 border width=66%>
+
+<tr>
+<td valign=top align=left width=33%><b>Zeichen</b></td>
+<td valign=top align=left width=66%><b>Bedeutung </b></td></tr>
+<tr>
+<td valign=top align=left><font color="#000077"><tt>\b</tt></font></td>
+<td valign=top align=left>Rückschritt (Backspace) </td></tr>
+<tr>
+<td valign=top align=left><font color="#000077"><tt>\t</tt></font></td>
+<td valign=top align=left>Horizontaler Tabulator </td></tr>
+<tr>
+<td valign=top align=left><font color="#000077"><tt>\n</tt></font></td>
+<td valign=top align=left>Zeilenschaltung (Newline) </td></tr>
+<tr>
+<td valign=top align=left><font color="#000077"><tt>\f</tt></font></td>
+<td valign=top align=left>Seitenumbruch (Formfeed) </td></tr>
+<tr>
+<td valign=top align=left><font color="#000077"><tt>\r</tt></font></td>
+<td valign=top align=left>Wagenrücklauf (Carriage return) </td></tr>
+<tr>
+<td valign=top align=left><font color="#000077"><tt>\"</tt></font></td>
+<td valign=top align=left>Doppeltes Anführungszeichen </td></tr>
+<tr>
+<td valign=top align=left><font color="#000077"><tt>\'</tt></font></td>
+<td valign=top align=left>Einfaches Anführungszeichen </td></tr>
+<tr>
+<td valign=top align=left><font color="#000077"><tt>\\</tt></font></td>
+<td valign=top align=left>Backslash </td></tr>
+<tr>
+<td valign=top align=left><font color="#000077"><tt>\nnn</tt></font></td>
+<td valign=top align=left>Oktalzahl nnn (kann auch kürzer als
+3 Zeichen sein, darf nicht größer als oktal 377 sein) </td></tr>
+</table>
+<p><i>
+Tabelle 4.2: Standard-Escape-Sequenzen </i></p>
+
+<p>
+Weiterhin können beliebige Unicode-Escape-Sequenzen<a name="ixa100265"></a>
+der Form <font color="#000077"><tt>\uxxxx</tt></font> angegeben werden,
+wobei <font color="#000077"><tt>xxxx</tt></font> eine Folge von bis
+zu 4 hexadezimalen Ziffern ist. So steht beispielsweise <font color="#000077"><tt>\u000a</tt></font>
+für die Zeilenschaltung und <font color="#000077"><tt>\u0020</tt></font>
+für das Leerzeichen.
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100%>
+<tr>
+<td width=1 align=left valign=top bgcolor="#CC0000"><img src="trp1_1.gif"></td>
+<td><img src="trp1_1.gif" width=1></td>
+<td width=1 align=left valign=top bgcolor="#CC0000"><img src="trp1_1.gif"></td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top width=1000>
+
+<p>
+Eine wichtiger Unterschied zu Standard-Escape-Sequenzen besteht darin,
+dass Unicode-Escape-Sequenzen an beliebiger Stelle im Programm auftauchen
+dürfen, also auch außerhalb von <a href="index_c.html#ixb100215"><font color=#000080><tt>char</tt></font></a>-
+oder <a href="index_s.html#ixb100117"><font color=#000080><tt>String</tt></font></a>-Literalen.
+Wichtig ist außerdem, dass diese bereits <i>vor</i> der eigentlichen
+Interpretation des Quelltextes ausgetauscht werden. Es ist also beispielsweise
+nicht möglich, ein <a href="index_c.html#ixb100215"><font color=#000080><tt>char</tt></font></a>-Literal,
+das ein Anführungszeichen darstellen soll, in der Form '\u0027'
+zu schreiben. Da die Unicode-Sequenzen bereits vor dem eigentlichen
+Compiler-Lauf ausgetauscht werden, würde der Compiler die Sequenz
+''' vorfinden und einen Fehler melden.</td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top>
+<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#CC0000">
+<tr>
+<td><font color="#FFFFFF"> Warnung </font></td>
+</tr>
+</table>
+</td>
+<td width=1 align=left valign=top bgcolor="#CC0000"><img src="trp1_1.gif"></td>
+</tr>
+</table>
+
+
+<!-- Section -->
+<a name="sectlevel3id004002003"></a>
+<h3>4.2.3 Die integralen Typen<a name="ixa100266"></a> </h3>
+
+<p>
+Java stellt vier ganzzahlige Datentypen zur Verfügung, und zwar
+<a name="ixa100267"><a href="index_b.html#ixb100242"><font color=#000080><tt>byte</tt></font></a></a>,
+<a name="ixa100268"><a href="index_s.html#ixb100243"><font color=#000080><tt>short</tt></font></a></a>,
+<a name="ixa100269"><a href="index_i.html#ixb100244"><font color=#000080><tt>int</tt></font></a></a>
+und <a name="ixa100270"><a href="index_l.html#ixb100245"><font color=#000080><tt>long</tt></font></a></a>,
+mit jeweils 1, 2, 4 und 8 Byte Länge. Alle ganzzahligen Typen
+sind vorzeichenbehaftet, und ihre Länge ist auf allen Plattformen
+gleich.
+
+<p>
+Anders als in C sind die Schlüsselwörter <a href="index_l.html#ixb100245"><font color=#000080><tt>long</tt></font></a>
+und <a href="index_s.html#ixb100243"><font color=#000080><tt>short</tt></font></a>
+bereits Typenbezeichner und nicht nur Modifier. Es ist daher nicht
+erlaubt, <font color="#000077"><tt>long int</tt></font> oder <font color="#000077"><tt>short
+int</tt></font> anstelle von <a href="index_l.html#ixb100245"><font color=#000080><tt>long</tt></font></a>
+bzw. <a href="index_s.html#ixb100243"><font color=#000080><tt>short</tt></font></a>
+zu schreiben. Auch den Modifier <font color="#000077"><tt>unsigned</tt></font>
+gibt es in Java nicht.
+
+<!-- Section -->
+
+<a name="sectlevel4id004002003001"></a>
+<h4><a name="ixa100271">Literale</a></h4>
+
+<p>
+Ganzzahlige Literale können in Dezimal-, Oktal- oder Hexadezimalform
+geschrieben werden. Ein oktaler Wert beginnt mit dem Präfix <font color="#000077"><tt>0</tt></font>,
+ein hexadezimaler Wert mit <font color="#000077"><tt>0x</tt></font>.
+Dezimale Literale dürfen nur aus den Ziffern <font color="#000077"><tt>0</tt></font>
+bis <font color="#000077"><tt>9</tt></font>, oktale aus den Ziffern
+<font color="#000077"><tt>0</tt></font> bis <font color="#000077"><tt>7</tt></font>
+und hexadezimale aus den Ziffern <font color="#000077"><tt>0</tt></font>
+bis <font color="#000077"><tt>9</tt></font> und den Buchstaben <font color="#000077"><tt>a</tt></font>
+bis <font color="#000077"><tt>f</tt></font> und <font color="#000077"><tt>A</tt></font>
+bis <font color="#000077"><tt>F</tt></font> bestehen.
+
+<p>
+Durch Voranstellen eines <font color="#000077"><tt>-</tt></font> können
+negative Zahlen dargestellt werden, positive können wahlweise
+durch ein <font color="#000077"><tt>+</tt></font> eingeleitet werden.
+Ganzzahlige Literale sind grundsätzlich vom Typ <a href="index_i.html#ixb100244"><font color=#000080><tt>int</tt></font></a>,
+wenn nicht der Suffix <font color="#000077"><tt>L</tt></font> oder
+<font color="#000077"><tt>l</tt></font> hinten angehängt wird.
+In diesem Fall sind sie vom Typ <a href="index_l.html#ixb100245"><font color=#000080><tt>long</tt></font></a>.
+
+
+<!-- Section -->
+<a name="fliesskommazahlen"></a>
+<h3>4.2.4 Die <a name="ixa100272">Fließkommazahlen</a> </h3>
+
+<p>
+Java kennt die beiden IEEE-754-Fließkommatypen <a name="ixa100273"><a href="index_f.html#ixb100246"><font color=#000080><tt>float</tt></font></a></a>
+(einfache Genauigkeit) und <a name="ixa100274"><a href="index_d.html#ixb100247"><font color=#000080><tt>double</tt></font></a></a>
+(doppelte Genauigkeit). Die Länge beträgt 4 Byte für
+<a href="index_f.html#ixb100246"><font color=#000080><tt>float</tt></font></a>
+und 8 Byte für <a href="index_d.html#ixb100247"><font color=#000080><tt>double</tt></font></a>.
+
+
+<!-- Section -->
+<a name="sectlevel4id004002004001"></a>
+<h4><a name="ixa100275">Literale</a></h4>
+
+<p>
+Fließkommaliterale werden immer in Dezimalnotation aufgeschrieben.
+Sie bestehen aus einem Vorkommateil, einem Dezimalpunkt, einem Nachkommateil,
+einem Exponenten und einem Suffix. Um ein Fließkommaliteral
+von einem integralen Literal unterscheiden zu können, muss mindestens
+der Dezimalpunkt, der Exponent oder der Suffix vorhanden sein. Entweder
+der Vorkomma- oder der Nachkommateil darf ausgelassen werden, aber
+nicht beide. Vorkommateil und Exponent können wahlweise durch
+das Vorzeichen <font color="#000077"><tt>+</tt></font> oder <font color="#000077"><tt>-</tt></font>
+eingeleitet werden. Weiterhin ist der Exponent, der durch ein <font color="#000077"><tt>e</tt></font>
+oder <font color="#000077"><tt>E</tt></font> eingeleitet wird, optional.
+Auch der Suffix kann weggelassen werden, wenn durch die anderen Merkmale
+klar ist, dass es sich um eine Fließkommazahl handelt. Der Suffix
+kann entweder <font color="#000077"><tt>f</tt></font> oder <font color="#000077"><tt>F</tt></font>
+sein, um anzuzeigen, dass es sich um ein <a href="index_f.html#ixb100246"><font color=#000080><tt>float</tt></font></a>
+handelt, oder <font color="#000077"><tt>d</tt></font> oder <font color="#000077"><tt>D</tt></font>,
+um ein <a href="index_d.html#ixb100247"><font color=#000080><tt>double</tt></font></a>
+anzuzeigen. Fehlt er, so ist das Literal (unabhängig von seiner
+Größe) vom Typ <a href="index_d.html#ixb100247"><font color=#000080><tt>double</tt></font></a>.
+
+<p>
+Gültige Fließkommazahlen sind:
+<ul>
+<li>3.14
+<li>2f
+<li>1e1
+<li>.5f
+<li>6.
+</ul>
+
+<p>
+Neben diesen numerischen Literalen gibt es noch einige symbolische
+in den Klassen <a name="ixa100276"><a href="index_f.html#ixb100254"><font color=#000080><tt>Float</tt></font></a></a>
+und <a name="ixa100277"><a href="index_d.html#ixb100255"><font color=#000080><tt>Double</tt></font></a></a>
+des Pakets <a href="index_j.html#ixb100188"><font color=#000080><tt>java.lang</tt></font></a>.
+<a href="k100024.html#fliesskommaliterale">Tabelle 4.3</a> gibt eine
+Übersicht dieser vordefinierten Konstanten. <a name="ixa100278"><a href="index_n.html#ixb100256"><font color=#000080><tt>NaN</tt></font></a></a>
+entsteht beispielsweise bei der Division durch 0, <a name="ixa100279"><a href="index_p.html#ixb100257"><font color=#000080><tt>POSITIVE_INFINITY</tt></font></a></a>
+bzw. <a name="ixa100280"><a href="index_n.html#ixb100258"><font color=#000080><tt>NEGATIVE_INFINITY</tt></font></a></a>
+sind Zahlen, die größer bzw. kleiner als der darstellbare
+Bereich sind. <a name="fliesskommaliterale"></a>
+
+<p>
+<table cols=3 border width=100%>
+
+<tr>
+<td valign=top align=left width=20%><b>Name</b></td>
+<td valign=top align=left width=40%><b>Verfügbar für</b></td>
+<td valign=top align=left width=40%><b>Bedeutung </b></td></tr>
+<tr>
+<td valign=top align=left><a name="ixa100281"><a href="index_m.html#ixb100259"><font color=#000080><tt>MAX_VALUE</tt></font></a></a></td>
+<td valign=top align=left><a href="index_f.html#ixb100254"><font color=#000080><tt>Float</tt></font></a>,
+<a href="index_d.html#ixb100255"><font color=#000080><tt>Double</tt></font></a></td>
+<td valign=top align=left>Größter darstellbarer positiver
+Wert </td></tr>
+<tr>
+<td valign=top align=left><a name="ixa100282"><a href="index_m.html#ixb100260"><font color=#000080><tt>MIN_VALUE</tt></font></a></a></td>
+<td valign=top align=left><a href="index_f.html#ixb100254"><font color=#000080><tt>Float</tt></font></a>,
+<a href="index_d.html#ixb100255"><font color=#000080><tt>Double</tt></font></a></td>
+<td valign=top align=left>Kleinster darstellbarer positiver Wert </td></tr>
+<tr>
+<td valign=top align=left><a name="ixa100278"><a href="index_n.html#ixb100256"><font color=#000080><tt>NaN</tt></font></a></a></td>
+<td valign=top align=left><a href="index_f.html#ixb100254"><font color=#000080><tt>Float</tt></font></a>,
+<a href="index_d.html#ixb100255"><font color=#000080><tt>Double</tt></font></a></td>
+<td valign=top align=left>Not-A-Number </td></tr>
+<tr>
+<td valign=top align=left><a name="ixa100280"><a href="index_n.html#ixb100258"><font color=#000080><tt>NEGATIVE_INFINITY</tt></font></a></a></td>
+<td valign=top align=left><a href="index_f.html#ixb100254"><font color=#000080><tt>Float</tt></font></a>,
+<a href="index_d.html#ixb100255"><font color=#000080><tt>Double</tt></font></a></td>
+<td valign=top align=left>Negativ unendlich </td></tr>
+<tr>
+<td valign=top align=left><a name="ixa100279"><a href="index_p.html#ixb100257"><font color=#000080><tt>POSITIVE_INFINITY</tt></font></a></a></td>
+<td valign=top align=left><a href="index_f.html#ixb100254"><font color=#000080><tt>Float</tt></font></a>,
+<a href="index_d.html#ixb100255"><font color=#000080><tt>Double</tt></font></a></td>
+<td valign=top align=left>Positiv unendlich </td></tr>
+</table>
+<p><i>
+Tabelle 4.3: Symbolische Fließkommaliterale </i></p>
+<hr>
+<table border=0 cellpadding=0 cellspacing=1 width="100%">
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html"> Titel </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html"> Inhalt </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html"> Suchen </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html"> Index </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()"> DOC </a>
+<td align="right">Handbuch der Java-Programmierung, 5. Auflage, Addison
+Wesley, Version 5.0.1
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100022.html"> << </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100023.html"> < </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100025.html"> > </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100030.html"> >> </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()"> API </a>
+<td align="right">© 1998, 2007 Guido Krüger & Thomas
+Stark, <a href="http://www.javabuch.de">http://www.javabuch.de</a>
+</table>
+<a name="endofbody"></a>
+</body>
+</html>
|
