Java (Programmiersprache)

Java ist eine Programmiersprache, die ursprünglich von James Gosling an Sonne-Mikrosystemen entwickelt ist (der sich in Oracle Corporation seitdem verschmolzen hat) und 1995 als ein Kernbestandteil von Sonne-Mikrosystemen javanische Plattform veröffentlicht hat. Die Sprache leitet viel von seiner Syntax von C und C ++ ab, aber hat ein einfacheres Gegenstand-Modell und weniger auf niedriger Stufe Möglichkeiten. Javanische Anwendungen werden normalerweise zu bytecode kompiliert (Klassendatei), der auf jeder Java Virtual Machine (JVM) unabhängig von der Computerarchitektur laufen kann.

Java ist eine objektorientierte, klassenbasierte, gleichzeitige Mehrzwecksprache, die spezifisch entworfen wird, um so wenige Durchführungsabhängigkeiten wie möglich zu haben. Es ist beabsichtigt, um Anwendungsentwickler "einmal schreiben, überall" (WORA) laufen zu lassen, bedeutend, die codieren, der auf einer Plattform läuft, braucht nicht wiederkompiliert zu werden, um auf einem anderen zu laufen. Java ist zurzeit eine der populärsten Programmiersprachen im Gebrauch, besonders für Client/Server-Webanwendungen, mit berichteten 10 Millionen Benutzer.

Das Original und die Bezugsdurchführung javanische Bearbeiter, virtuelle Maschinen und Klassenbibliotheken wurden durch die Sonne von 1995 entwickelt. Bezüglich des Mais 2007, in Übereinstimmung mit den Spezifizierungen des javanischen Gemeinschaftsprozesses, hat Sonne die meisten seiner javanischen Technologien laut der GNU-Lizenz der Breiten Öffentlichkeit wiederlizenziert. Andere haben auch alternative Durchführungen dieser Sonne-Technologien, wie der GNU-Bearbeiter für Java und das GNU Classpath entwickelt.

Geschichte

James Gosling, Mike Sheridan und Patrick Naughton haben das javanische Sprachprojekt im Juni 1991 begonnen. Java wurde für das interaktive Fernsehen ursprünglich entworfen, aber es wurde für die Digitalkabelfernsehindustrie zurzeit zu vorgebracht. Die Sprache wurde Eiche nach einem Eichenbaum am Anfang genannt, der außerhalb des Büros von Gosling gestanden hat; es ist durch den Namen Green später gegangen, und war später das umbenannte Java, von javanischem Kaffee, gesagt, in großen Mengen von den Schöpfern der Sprache verbraucht zu werden. Gosling hat zum Ziel gehabt, eine virtuelle Maschine und eine Sprache durchzuführen, die einen vertrauten C/C ++ Stil der Notation hatte.

Sonne-Mikrosysteme haben die erste öffentliche Durchführung als Java 1.0 1995 veröffentlicht. Es hat versprochen "Schreiben Einmal, Lauf Überall" (WORA), Durchlaufzeiten ohne Kosten auf populären Plattformen zur Verfügung stellend. Ziemlich sichere und zeigende konfigurierbare Sicherheit, es hat Netz - und Dateizugang-Beschränkungen erlaubt. Haupt-WWW-Browser haben bald die Fähigkeit vereinigt, Java applets innerhalb von Webseiten zu führen, und Java ist schnell populär geworden. Mit dem Advent Javas 2 (veröffentlicht am Anfang als J2SE 1.2 im Dezember 1998-1999) haben neue Versionen vielfache Konfigurationen für verschiedene Typen von Plattformen bauen lassen. Zum Beispiel hat J2EE Unternehmensanwendungen und die außerordentlich unten abgezogene Version J2ME für bewegliche Anwendungen (das Bewegliche Java) ins Visier genommen. J2SE hat die Standardausgabe benannt. 2006, zu Marktzwecken, hat Sonne neue J2 Versionen als Java EE, Java ICH und Java SE beziehungsweise umbenannt.

1997 haben sich Sonne-Mikrosysteme dem ISO/IEC JTC1 Standardkörper und später Ecma International genähert, um Java zu formalisieren, aber es hat sich bald vom Prozess zurückgezogen. Java bleibt ein De-Facto-Standard, der durch den javanischen Gemeinschaftsprozess kontrolliert ist. Auf einmal hat Sonne die meisten seiner javanischen Durchführungen ohne Anklage trotz ihres Eigentumssoftwarestatus bereitgestellt. Sonne hat Einnahmen von Java durch den Verkauf von Lizenzen für Spezialprodukte wie das javanische Unternehmenssystem erzeugt. Sonne unterscheidet zwischen seinem Werkzeugkasten für Softwareentwickler (SDK) und Laufzeitumgebung (JRE) (eine Teilmenge des SDK); die primäre Unterscheidung schließt den Mangel des JRE am Bearbeiter, den Dienstprogrammen und den Kopfball-Dateien ein.

Am Sonntag, dem 13. November 2006 veröffentlicht viel Java als freie und offene Quellsoftware, (FOSS), in Form vom GNU General Public License (GPL). Am Sonntag, dem 8. Mai 2007 beendet der Prozess, den ganzen Javas Kerncode unter der kostenlosen Software/open-source Vertriebsbegriffe beiseite von einem kleinen Teil des Codes bereitstellend, zu dem Sonne das Copyright nicht gehalten hat.

Vizepräsident der Sonne Rich Green hat gesagt, dass die ideale Rolle der Sonne hinsichtlich Javas als ein "Evangelist" war. Der Erwerb von Following Oracle Corporation von Sonne-Mikrosystemen in 2009-2010, Orakel hat sich als der "Steward der javanischen Technologie mit einem unbarmherzigen Engagement beschrieben, eine Gemeinschaft der Teilnahme und Durchsichtigkeit zu fördern". Javanische Software läuft auf Laptops zu Datenzentren, Spielkonsolen zu wissenschaftlichen Supercomputern. Es gibt 930 Millionen javanische Laufzeitumgebungsdownloads jedes Jahr, und 3 Milliarden Mobiltelefone führen Java. Am 2. April 2010 hat James Gosling vom Orakel zurückgetreten.

Grundsätze

Es gab fünf primäre Absichten in der Entwicklung der javanischen Sprache:

  1. Es sollte "einfach, objektorientiert und" vertraut
sein
  1. Es sollte "robust sein und" sichern
  2. Es sollte "mit der Architektur neutral und" tragbar
sein
  1. Es sollte mit der "hohen Leistung" durchführen
  2. Es sollte "interpretiert, eingefädelt, und" dynamisch werden

Versionen

Hauptausgabe-Versionen Javas, zusammen mit ihren Ausgabe-Daten:

  • JDK 1.0 (am 23. Januar 1996)
  • JDK 1.1 (am 19. Februar 1997)
  • J2SE 1.2 (am 8. Dezember 1998)
  • J2SE 1.3 (am 8. Mai 2000)
  • J2SE 1.4 (am 6. Februar 2002)
  • J2SE 5.0 (am 30. September 2004)
  • Java SE 6 (am 11. Dezember 2006)
  • Java SE 7 (am 28. Juli 2011)

Methoden

Javanische Plattform

Eine Eigenschaft Javas ist Beweglichkeit, was bedeutet, dass auf der javanischen Sprache geschriebene Computerprogramme ähnlich auf jeder hardware/operating-system Plattform laufen müssen.

Das wird durch das Kompilieren des javanischen Sprachcodes zu einer Zwischendarstellung genannt Java bytecode, statt direkt zum mit der Plattform spezifischen Maschinencode erreicht. Java bytecode Instruktionen ist dem Maschinencode analog, aber ist beabsichtigt, um durch eine virtuelle Maschine (VM) geschrieben spezifisch für die Gastgeber-Hardware interpretiert zu werden. Endbenutzer verwenden allgemein Java Runtime Environment (JRE), die auf ihrer eigenen Maschine für eigenständige javanische Anwendungen, oder in einem WWW-Browser für Java applets installiert ist.

Standardisierte Bibliotheken stellen eine allgemeine Weise zur Verfügung, auf mit dem Gastgeber spezifische Eigenschaften wie Grafik, das Einfädeln und der Netzwerkanschluss zuzugreifen.

Ein Hauptvorteil, bytecode zu verwenden, hält nach Backbord. Jedoch meinen die Gemeinkosten der Interpretation, dass interpretierte Programme fast immer geführt langsamer als zu heimischem executables kompilierte Programme würden. Gerade rechtzeitig (JIT) wurden Bearbeiter von einer frühen Bühne eingeführt, die bytecodes kompilieren, um Code während der Durchlaufzeit maschinell herzustellen.

Durchführungen

Sonne-Mikrosysteme haben offiziell die javanische Standardausgabe-Plattform für Linux, Mac OS X und Solaris lizenziert. An der vorigen Sonne lizenziert Java von Microsoft, aber die Lizenz ist ohne Erneuerung abgelaufen. Weil sich Windows mit einer javanischen Softwareplattform nicht einschifft, entwickelt ein Netz von Drittverkäufern und Lizenznehmern sie für Windows und andere Betriebsplattformen des Systems/Hardware.

Die Handelsmarke-Lizenz der Sonne für den Gebrauch der javanischen Marke besteht darauf, dass alle Durchführungen "vereinbar" sind. Das ist auf einen gesetzlichen Streit mit Microsoft hinausgelaufen, nachdem Sonne behauptet hat, dass die Durchführung von Microsoft RMI oder JNI nicht unterstützt hat und mit der Plattform spezifische Eigenschaften ihres eigenen hinzugefügt hatte. Sonne verklagt 1997, und 2001 gewonnen eine Ansiedlung von US$ 20 Millionen, sowie ein Gerichtsbeschluss, der die Begriffe der Lizenz von der Sonne geltend macht. Infolgedessen, Microsoft verladen nicht mehr Java mit Windows, und in neuen Versionen von Windows, Internet Explorer kann Java applets ohne einen Drittsteck-nicht unterstützen. Sonne und andere, haben verfügbare freie javanische Laufzeitsysteme für diejenigen und andere Versionen von Windows gemacht.

Das mit der Plattform unabhängige Java ist nach Java EE Strategie notwendig, und eine noch strengere Gültigkeitserklärung ist erforderlich, eine Durchführung zu bescheinigen. Diese Umgebung ermöglicht tragbare Anwendungen der Server-Seite, wie Webdienste, Java Servlets und Unternehmen JavaBeans, sowie mit eingebetteten auf OSGi gestützten Systemen mit Eingebetteten javanischen Umgebungen. Durch das Projekt von GlassFish arbeitet Sonne, um eine völlig funktionelle, vereinigte offene Quelldurchführung Javas EE Technologien zu schaffen.

Sonne verteilt auch eine Obermenge des JRE genannt den javanischen Entwicklungsbastelsatz (allgemein bekannt als der JDK), der Entwicklungswerkzeuge wie der javanische Bearbeiter, Javadoc, das Glas und das Testhilfeprogramm einschließt.

Leistung

In Java geschriebene Programme haben einen Ruf, langsamer zu sein und mehr Gedächtnis zu verlangen, als diejenigen, die in C geschrieben sind. Jedoch codiert javanische Programm-Ausführungsgeschwindigkeit verbessert bedeutsam mit der Einführung Gerade rechtzeitig der Kompilation in 1997/1998 für Java 1.1, die Hinzufügung von Spracheigenschaften, die besser unterstützen, Analyse (wie innere Klassen, Klasse von StringBuffer, fakultative Behauptungen, usw.), und Optimierungen in Java Virtuelle Maschine selbst wie HotSpot, der der Verzug für den JVM der Sonne 2000 wird. Zurzeit (Februar 2012) zeigen Mikroabrisspunkte, dass Java 7 etwa 1.5mal langsamer ist als C.

Einige Plattformen bieten direkte Hardware-Unterstützung für Java an; es gibt Mikrokontrolleure, die Java in der Hardware statt einer Software Java Virtuelle Maschine führen können, und gestützte Verarbeiter des ARMS Hardware-Unterstützung haben können, um Java bytecode durch seine Auswahl von Jazelle durchzuführen.

Automatisches Speichermanagement

Java verwendet einen automatischen Müllmann, um Gedächtnis im Gegenstand-Lebenszyklus zu führen. Der Programmierer bestimmt, wenn Gegenstände geschaffen werden, und die javanische Durchlaufzeit dafür verantwortlich ist, das Gedächtnis wieder zu erlangen, sobald Gegenstände nicht mehr im Gebrauch sind. Sobald keine Verweisungen auf einen Gegenstand bleiben, wird das unerreichbare Gedächtnis berechtigt, automatisch vom Müllmann befreit zu werden. Etwas Ähnliches einer Speicherleckstelle kann noch vorkommen, wenn ein Code eines Programmierers eine Verweisung auf einen Gegenstand hält, der normalerweise nicht mehr erforderlich ist, wenn Gegenstände, die nicht mehr erforderlich sind, in Behältern versorgt werden, die noch im Gebrauch sind. Wenn Methoden für einen nicht existierenden Gegenstand genannt werden, wird eine "ungültige Zeigestock-Ausnahme" geworfen.

Eine der Ideen hinter Javas automatischem Speicherverwaltungsmodell ist, dass Programmierer die Last der Notwendigkeit verschont werden können, manuelles Speichermanagement durchzuführen. Auf einigen Sprachen wird das Gedächtnis für die Entwicklung von Gegenständen auf dem Stapel implizit zugeteilt, oder ausführlich zugeteilt und deallocated vom Haufen. Im letzten Fall wohnt die Verantwortung, Gedächtnis zu führen, mit dem Programmierer. Wenn das Programm nicht deallocate einen Gegenstand tut, kommt eine Speicherleckstelle vor. Wenn das Programm versucht zuzugreifen oder deallocate Gedächtnis, das bereits deallocated gewesen ist, ist das Ergebnis unbestimmt und schwierig vorauszusagen, und das Programm wird wahrscheinlich nicht stabil und/oder Unfall werden. Das kann durch den Gebrauch von klugen Zeigestöcken teilweise behoben werden, aber diese tragen oben und Kompliziertheit bei. Bemerken Sie, dass Müll-Sammlung "logische" Speicherleckstellen, d. h. diejenigen nicht verhindert, wo im Gedächtnis noch Verweise angebracht, aber nie verwendet wird.

Müll-Sammlung kann jederzeit geschehen. Ideal wird es vorkommen, wenn ein Programm müßig ist. Wie man versichert, wird es ausgelöst, wenn es ungenügendes freies Gedächtnis auf dem Haufen gibt, um einen neuen Gegenstand zuzuteilen; das kann ein Programm veranlassen, einen Augenblick lang stecken zu bleiben. Ausführliches Speichermanagement ist in Java nicht möglich.

Java unterstützt C/C ++ Stil-Zeigestock-Arithmetik nicht, wo Gegenstand-Adressen und nicht unterzeichnete ganze Zahlen (gewöhnlich lange ganze Zahlen) austauschbar verwendet werden können. Das erlaubt dem Müllmann, Verweise angebrachte Gegenstände umzusiedeln, und sichert Typ-Sicherheit und Sicherheit.

Als in C ++ und einige andere objektorientierte Sprachen sind Variablen von Javas primitiven Datentypen nicht Gegenstände. Werte primitiver Typen werden entweder direkt in Feldern (für Gegenstände) oder auf dem Stapel (für Methoden) aber nicht auf dem Haufen, als allgemein wahr für Gegenstände versorgt (aber sieh Flucht-Analyse). Das war eine bewusste Entscheidung von Javas Entwerfern aus Leistungsgründen. Wegen dessen, wie man betrachtete, war Java keine reine objektorientierte Programmiersprache. Jedoch, bezüglich Javas 5.0, ermöglicht das Autoboxen Programmierern weiterzugehen, als ob primitive Typen Beispiele ihrer Streifband-Klasse waren.

Java enthält vielfache Typen von Müllmännern. Standardmäßig verwendet HotSpot den Gleichzeitigen Zeichen-Kehren-Sammler, auch bekannt als den CM-Müllmann. Jedoch gibt es auch mehrere andere Müllmänner, die verwendet werden können, um den Haufen zu führen. Für 90 % von Anwendungen in Java ist der CM-Müllmann gut genug.

Syntax

Die Syntax Javas wird aus C ++ größtenteils abgeleitet. Verschieden von C ++, der die Syntax für die strukturierte, allgemeine und objektorientierte Programmierung verbindet, wurde Java fast exklusiv als eine objektorientierte Sprache gebaut. Der ganze Code wird innerhalb einer Klasse geschrieben, und alles ist ein Gegenstand mit Ausnahme von den primitiven Datentypen (ganze Zahlen, Schwimmpunkt-Zahlen, boolean Werte und Charaktere), die nicht Klassen aus Leistungsgründen sind.

Verschieden von C ++ unterstützt Java Maschinenbediener nicht, der überlädt oder Mehrfachvererbung für Klassen. Das vereinfacht die Sprache und Hilfe im Verhindern potenzieller Fehler und Antimuster-Designs.

Java verwendet ähnliche Kommentieren-Methoden an C ++. Es gibt drei verschiedene Stile von Anmerkungen: Ein einzelner Linienstil hat mit zwei Hieben gekennzeichnet , ein vielfacher Linienstil hat sich mit und geeinigt, und Javadoc geöffnet, Stil kommentierend, der damit geöffnet ist und geeinigt ist. Der Javadoc Stil des Kommentierens erlaubt dem Benutzer, Javadoc zu führen, der rechtskräftig ist, um Dokumentation für das Programm zu kompilieren.

Beispiel:

//Das ist ein Beispiel einer einzelnen Linienanmerkung mit zwei Hieben

/* Das ist ein Beispiel einer vielfachen Linienanmerkung mit dem Hieb und Sternchen.

Dieser Typ der Anmerkung kann verwendet werden, um viel Information zu halten oder auszuschalten

Code, aber ist es sehr wichtig sich zu merken, die Anmerkung zu schließen. * /

/ * *

* ist Das ein Beispiel einer Anmerkung von Javadoc; Javadoc kann Dokumentation kompilieren

* aus diesem Text.

*/

</Quelle>

Beispiele

Hallo Welt

Das traditionelle Hallo Weltprogramm kann in Java als geschrieben werden:

Klasse HelloWorldApp {\

öffentliche statische leere Hauptsache (Schnur [] args) {\

System.out.println ("Hallo Welt!");//Anzeige die Schnur.

}\

}\

</Quelle>

Um sich zu vergleichen, sieht das mit anderen Programmiersprachen die Liste von hallo Weltprogramm-Beispielen.

Quelldateien müssen genannt werden nach der öffentlichen Klasse enthalten sie, die Nachsilbe zum Beispiel anhängend. Es muss zuerst in bytecode mit einem javanischen Bearbeiter kompiliert werden, eine genannte Datei erzeugend. Nur dann kann es, durchgeführt oder 'gestartet' werden. Die javanische Quelldatei kann nur eine öffentliche Klasse enthalten, aber kann vielfache Klassen mit weniger enthalten als öffentlicher Zugang und jede Zahl von öffentlichen inneren Klassen.

Der nicht erklärt wird, kann in jeder.java Datei versorgt werden. Der Bearbeiter wird eine Klassendatei für jede in der Quelldatei definierte Klasse erzeugen. Der Name der Klassendatei ist der Name der Klasse mit angehangenem.class. Für die Klassendateigeneration werden anonyme Klassen behandelt, als ob ihr Name die Verkettung des Namens ihrer Umgeben-Klasse, eines $ und einer ganzen Zahl war.

Das Schlüsselwort zeigt an, dass eine Methode aus dem Code in anderen Klassen genannt werden kann, oder dass eine Klasse durch Klassen außerhalb der Klassenhierarchie verwendet werden kann. Die Klassenhierarchie ist mit dem Namen des Verzeichnisses verbunden, in dem die.java Datei gelegen wird.

Das Schlüsselwort vor einer Methode zeigt eine statische Methode an, die nur mit der Klasse und nicht mit jedem spezifischen Beispiel dieser Klasse vereinigt wird. Nur statische Methoden können ohne eine Verweisung auf einen Gegenstand angerufen werden. Statische Methoden können auf keine Klassenmitglieder zugreifen, die nicht auch statisch sind.

Das Schlüsselwort zeigt an, dass die Hauptmethode keinen Wert dem Anrufer zurückgibt. Wenn ein javanisches Programm mit einem Fehlercode abgehen soll, muss es System.exit ausführlich nennen.

Der Methode-Name "" ist nicht ein Schlüsselwort auf der javanischen Sprache. Es ist einfach der Name der Methode die javanischen Abschussvorrichtungsanrufe, Kontrolle zum Programm zu passieren. Javanische Klassen, die in geführten Umgebungen wie applets und Unternehmen JavaBean führen, verwenden nicht oder brauchen eine Methode. Ein javanisches Programm kann vielfache Klassen enthalten, die Methoden haben, was bedeutet, dass der VM der Klasse ausführlich erzählt werden muss, davon loszufahren.

Die Hauptmethode muss eine Reihe von Gegenständen akzeptieren. Durch die Tagung wird darin als Verweise angebracht, obwohl jeder andere gesetzliche Bezeichner-Name verwendet werden kann. Seit Java 5 kann die Hauptmethode auch variable Argumente in der Form verwenden, der Hauptmethode erlaubend, mit einer beliebigen Zahl von Argumenten angerufen zu werden. Die Wirkung dieser abwechselnden Behauptung ist semantisch identisch (der Parameter ist noch eine Reihe von Gegenständen), aber erlaubt eine alternative Syntax, um die Reihe zu schaffen und zu passieren.

Die javanische Abschussvorrichtung startet Java durch das Laden einer gegebenen Klasse (angegeben auf der Befehl-Linie oder als ein Attribut in einem GLAS) und das Starten seiner Methode. Eigenständige Programme müssen diese Methode ausführlich erklären. Der Parameter ist eine Reihe von Gegenständen, die irgendwelche zur Klasse passierten Argumente enthalten. Die Rahmen dazu werden häufig mittels einer Befehl-Linie passiert.

Druck ist ein Teil einer javanischen Standardbibliothek: Die Klasse definiert ein öffentliches statisches genanntes Feld. Der Gegenstand ist ein Beispiel der Klasse und stellt viele Methoden zur Verfügung, um Daten zum Standard zu drucken, einschließlich dessen auch eine neue Linie an der passierten Schnur anhängt.

Die Schnur "Hallo, Welt!" wird zu einem Schnur-Gegenstand durch den Bearbeiter automatisch umgewandelt.

Ein umfassenderes Beispiel

//OddEven.java

Import javax.swing. JOptionPane;

öffentliche Klasse OddEven {\

/ * *

* ist "Eingang" die Zahl, die der Benutzer dem Computer gibt

*/

privater int Eingang;//eine ganze Zahl (bedeutet "interne Nummer" ganze Zahl)

/ * *

* ist Das die Konstrukteur-Methode. Es wird wenn ein Gegenstand des Typs OddEven genannt

* wird geschaffen.

*/

öffentlicher OddEven {\

/ *

* In den meisten javanischen Programm-Konstrukteuren kann Gegenstände mit Verzug-Werten initialisieren, oder schaffen

* andere Gegenstände, die dieser Gegenstand verwenden könnte, um seine Funktionen durchzuführen. In einigen javanischen Programmen, dem

* kann Konstrukteur einfach eine leere Funktion sein, wenn nichts vor dem initialisiert werden muss

* Wirkung des Gegenstands. Im Fall dieses Programms würde ein leerer Konstrukteur, selbst wenn genügen

* ist es leer. Ein Konstrukteur muss jedoch bestehen, wenn der Benutzer ein in dann dem Bearbeiter nicht stellt

* wird einen leeren schaffen.

*/ }\ / * *

* ist Das die Hauptmethode. Es wird genannt, wenn diese Klasse ein javanischer Dolmetscher durchbohrt wird.

* @param befehlen args Linienargumenten (unbenutzter)

*/

öffentliche statische leere Hauptsache (Endschnur [] args) {\

/ *

* schafft Diese Linie des Codes ein neues Beispiel dieser Klasse genannt "Zahl" (auch bekannt als ein

* Gegenstand), und initialisiert es durch das Benennen des Konstrukteurs. Die folgende Linie des Codes nennt

* "showDialog " Methode, die einen schnellen heraufbringt, um Sie um eine Zahl zu bitten

*/

Zahl von OddEven = neuer OddEven ;

number.showDialog ;

}\

öffentliche Leere showDialog {\

/ *

* stellt "Versuch" sicher, dass nichts schief geht. Wenn etwas, tut

* hüpft der Dolmetscher, um "zu greifen", um zu sehen, was es tun sollte.

*/

versuchen Sie {\

/ *

* bringt Der Code unten JOptionPane herauf, der ein Dialogfeld ist

* wird Die Schnur, die durch "showInputDialog " Methode zurückgegeben ist, in umgewandelt

* eine ganze Zahl, das Programm lassend, es als eine Zahl statt eines Wortes behandeln.

* Danach nennt diese Methode eine zweite Methode, rechnen Sie , der wird

* zeigen entweder "Sogar" oder "Seltsam".

*/

this.input = Integer.parseInt (JOptionPane.showInputDialog ("Gehen Sie Bitte In eine Zahl Ein"));

this.calculate ;

} Fang (endgültiger NumberFormatException e) {\

/ *

* bedeutet das Bekommen im Fang-Block, dass es ein Problem mit dem Format von gab

* die Zahl. Wahrscheinlich wurden einige Briefe statt einer Zahl eingetippt.

*/

System.err.println ("FEHLER: Ungültiger Eingang. Bitte Typ in einem numerischen Wert.");

}\

}\ / * *

*, Wenn das genannt wird, sendet es eine Nachricht dem Dolmetscher.

* zeigt Der Dolmetscher es gewöhnlich auf dem Befehl schnell (Für Windows-Benutzer)

* oder das Terminal (Für *nix Benutzer). (Das Annehmen ist es offen)

*/

private Leere berechnet {\

wenn ((this.input % 2) == 0) {\

JOptionPane.showMessageDialog (ungültig, "Sogar");

} sonst {\

JOptionPane.showMessageDialog (ungültig, "Seltsam");

}\ }\}\</Quelle>
  • Die Importbehauptung importiert die Klasse vom Paket.
  • Die Klasse erklärt ein einzelnes Feld des genannten Typs. Jedes Beispiel der Klasse hat seine eigene Kopie des Feldes. Die private Behauptung bedeutet, dass keine andere Klasse (gelesen zugreifen oder schreiben kann) das Feld.
  • ist ein Konstrukteur. Konstrukteure haben denselben Namen wie die Umgeben-Klasse, die sie in, und verschieden von einer Methode erklärt werden, keinen Rücktyp haben. Ein Konstrukteur wird verwendet, um einen Gegenstand zu initialisieren, der ein kürzlich geschaffenes Beispiel der Klasse ist.
  • Die Methode wird ohne das Schlüsselwort erklärt. Das bedeutet, dass die Methode mit einem spezifischen Beispiel der Klasse angerufen wird. (Die Verweisung, die verwendet ist, um die Methode anzurufen, wird als ein nicht bekannt gemachter Parameter des genannten Typs passiert.) Prüft die Methode den Ausdruck mit dem Schlüsselwort, um zu sehen, ob der Rest, das Feld zu teilen, das dem Beispiel der Klasse durch zwei gehört, Null ist. Wenn dieser Ausdruck wahr ist, dann druckt er Sogar; wenn dieser Ausdruck falsch ist, druckt er Seltsam. (Auf das Feld kann als gleichwertig zugegriffen werden, der ausführlich den nicht bekannt gemachten Parameter verwendet.)
  • erklärt eine lokale Gegenstand-Bezugsvariable in der genannten Methode. Diese Variable kann eine Verweisung auf einen Gegenstand des Typs halten. Die Behauptung initialisiert durch das erste Schaffen eines Beispiels der Klasse, das Verwenden des Schlüsselwortes und des Konstrukteurs und dann Zuweisens dieses Beispiels zur Variable.
  • Die Behauptung nennt die berechnen Methode. Das Beispiel des durch die lokale Variable Verweise angebrachten Gegenstands wird verwendet, um die Methode anzurufen, und als der nicht bekannt gemachte Parameter zur Methode passiert.
  • ist eine Behauptung, die den Typ der Schnur zur primitiven internen Datentyp-Nummer durch das Verwenden einer Dienstprogramm-Funktion in der primitiven Ganzen Streifband-Klassenzahl umwandelt.

Spezielle Klassen

Applet

Java applets ist Programme, die in anderen Anwendungen normalerweise in einer in einem WWW-Browser gezeigten Webseite eingebettet werden.

//Hello.java

Import javax.swing. JApplet;

Import java.awt. Grafik;

öffentliche Klasse erweitert Hallo JApplet {\

öffentliche Leere paintComponent (Endgrafik g) {\

g.drawString ("Hallo, Welt!", 65, 95);

}\}\</Quelle>

Die Behauptungen leiten den javanischen Bearbeiter, um und Klassen in der Kompilation einzuschließen. Die Importbehauptung erlaubt diesen Klassen, im Quellcode mit dem einfachen Klassennamen Verweise angebracht zu werden (d. h.). statt des völlig qualifizierten Klassennamens (d. h.)..

Die Klasse (Unterklassen) (Java Applet) Klasse; die Klasse stellt das Fachwerk für die Gastgeber-Anwendung auf die Anzeige zur Verfügung, und kontrollieren Sie den Lebenszyklus des applet. Die Klasse ist ein JComponent (Java Grafischer Bestandteil), der den applet mit der Fähigkeit versorgt, eine grafische Benutzerschnittstelle (GUI) zu zeigen und auf Benutzerereignisse zu antworten.

Die Klasse überreitet die Methode (zusätzlich angezeigt mit der Anmerkung, die bezüglich JDK 1.5, unterstützt ist), geerbt von der Superklasse, um den Code zur Verfügung zu stellen, um den applet zu zeigen. Die Methode wird ein Gegenstand passiert, der den grafischen Zusammenhang enthält, der verwendet ist, um den applet zu zeigen. Die Methode nennt die grafische Zusammenhang-Methode, "Hallo, Welt zu zeigen!" Schnur an einem Pixel-Ausgleich von der ober verlassenen Ecke in der Anzeige des applet.

</Kopf>

</applet>

</Körper>

</HTML>

</Quelle>

Ein applet wird in ein HTML-Dokument mit gelegt

Die Gastgeber-Anwendung, normalerweise ein WWW-Browser, realisiert den applet und schafft für den applet. Sobald der applet sich initialisiert hat, wird er zur AWT-Anzeigehierarchie hinzugefügt. Die Methode wird durch den AWT Ereignis-Verschicken-Faden genannt, wann auch immer die Anzeige den applet braucht, um sich zu ziehen.

Servlet

Java Servlet Technologie versorgt Webentwickler mit einem einfachen, konsequenten Mechanismus, für die Funktionalität eines Webservers zu erweitern und um auf vorhandene Geschäftssysteme zuzugreifen. Servlets sind Server-Seite Java EE Bestandteile, die Antworten (normalerweise HTML-Seiten) zu Bitten (normalerweise HTTP Bitten) von Kunden erzeugen. Von einem servlet kann fast als ein applet gedacht werden, der auf der Server-Seite — ohne ein Gesicht läuft.

//Hello.java

importieren Sie java.io. *;

importieren Sie javax.servlet. *;

öffentliche Klasse erweitert Hallo GenericServlet

{\

öffentlicher leerer Dienst (Endbitte von ServletRequest, Endantwort von ServletResponse)

Werfen ServletException, IOException

{\

response.setContentType ("Text/HTML");

endgültiger PrintWriter pw = response.getWriter ;

versuchen Sie {\

pw.println ("Hallo, Welt!");

} schließlich {\

pw.close ;

}\

}\

}\</Quelle>

Die Behauptungen leiten den javanischen Bearbeiter, um alle öffentlichen Klassen und Schnittstellen von und Pakete in der Kompilation einzuschließen.

Die Klasse die Klasse; die Klasse stellt die Schnittstelle für den Server zur Verfügung, um Bitten zum servlet nachzuschicken und den Lebenszyklus des servlet zu kontrollieren.

Die Klasse überreitet die durch die Schnittstelle definierte Methode, um den Code für den Serviceanforderungsdressierer zur Verfügung zu stellen. Die Methode wird ein Gegenstand passiert, der die Bitte vom Kunden enthält und ein Gegenstand gepflegt hat, die dem Kunden zurückgegebene Antwort zu schaffen. Die Methode erklärt, dass es die Ausnahmen, und wenn ein Problem es davon abhält, auf die Bitte zu antworten.

Die Methode im Ansprechgegenstand wird genannt, um den PANTOMIME-Inhalt-Typ der zurückgegebenen Daten zum "Text/HTML" zu setzen. Die Methode in der Antwort gibt einen Gegenstand zurück, der verwendet wird, um die Daten zu schreiben, der dem Kunden gesandt wird. Die Methode wird genannt, um "Hallo, Welt zu schreiben!" Schnur zur Antwort und dann wird die Methode genannt, um den Druckschriftsteller zu schließen, der die Daten verursacht, der dem dem Kunden zurückzugebenden Strom geschrieben worden ist.

Seiten von JavaServer

Seiten von JavaServer (JSP) sind Server-Seite Java EE Bestandteile, die Antworten, normalerweise HTML-Seiten zu HTTP-Bitten von Kunden erzeugen. JSPs betten javanischen Code in einer HTML-Seite durch das Verwenden der speziellen Begrenzungszeichen ein

Schwingen-Anwendung

Schwingen ist eine grafische Benutzerschnittstelle-Bibliothek für Java SE Plattform. Es ist möglich, einen verschiedenen Blick und Gefühl durch den Pluggable-Blick und das Gefühl-System des Schwingens anzugeben. Klone von Windows, GTK + und Motiv werden durch die Sonne versorgt. Apfel stellt auch einen Wasser-Blick und Gefühl für Mac OS X zur Verfügung. Wo vorherige Durchführungen dieser Blicke und Gefühle betrachtet worden sein können, Schwingen in Java SE 6 Adressen dieses Problem durch das Verwenden mehr heimischer GUI Produkt-Zeichnungsroutinen der zu Grunde liegenden Plattformen fehlend.

Diese Beispiel-Schwingen-Anwendung schafft ein einzelnes Fenster mit "Hallo, Welt!" innen:

//Hello.java (Java SE 5)

importieren Sie javax.swing. *;

öffentliche Klasse erweitert Hallo JFrame {\

Publikum Hallo {\

super ("hallo");

super.setDefaultCloseOperation (WindowConstants. EXIT_ON_CLOSE);

super.add (neuer JLabel ("Hallo, Welt!"));

super.pack ;

(wahrer) super.setVisible;

}\ öffentliche statische leere Hauptsache (Endschnur [] args) {\

neu Hallo ;

}\}\</Quelle>

Das erste schließt alle öffentlichen Klassen und Schnittstellen vom Paket ein.

Die Klasse die Klasse; die Klasse führt ein Fenster mit einer Titelbar und einer nahen Kontrolle durch.

Der Konstrukteur initialisiert den Rahmen durch das erste Benennen des Superklassenkonstrukteurs, den Parameter passierend, der als der Titel des Fensters verwendet wird. Es nennt dann die Methode geerbt von, die Verzug-Operation zu setzen, wenn die nahe Kontrolle auf der Titelbar dazu ausgewählt wird — veranlasst das, verfügt zu werden, wenn der Rahmen geschlossen wird (im Vergleich mit bloß verborgenem), der Java Virtuelle Maschine erlaubt, um abzugehen, und das Programm, um zu enden. Dann geschaffen für die Schnur "Hallo, Welt zu sein!" und die von der Superklasse geerbte Methode wird genannt, um das Etikett zum Rahmen hinzuzufügen. Die von der Superklasse geerbte Methode wird genannt, um das Fenster nach Größen zu ordnen und seinen Inhalt anzulegen.

Die Methode wird durch Java Virtuelle Maschine genannt, wenn das Programm anfängt. Es realisiert einen neuen Rahmen und veranlasst es, durch das Nennen der Methode geerbt von der Superklasse mit dem boolean Parameter gezeigt zu werden. Sobald der Rahmen gezeigt wird, veranlasst das Herrschen über die Methode das Programm nicht zu enden, weil der AWT Ereignis-Verschicken-Faden aktiv bis zum ganzen Schwingen bleibt, sind Fenster auf höchster Ebene angeordnet worden.

Generics

2004 wurden generics zur javanischen Sprache, als ein Teil von J2SE 5.0 hinzugefügt. Vor der Einführung von generics musste jede variable Behauptung eines spezifischen Typs sein. Für Behälterklassen, zum Beispiel, ist das ein Problem, weil es keine leichte Weise gibt, einen Behälter zu schaffen, der nur spezifische Typen von Gegenständen akzeptiert. Entweder der Behälter funktioniert auf allen Subtypen einer Klasse oder Schnittstelle gewöhnlich, oder eine verschiedene Behälterklasse muss für jede enthaltene Klasse geschaffen werden. Generics erlauben Übersetzungszeit-Datentypprüfung, ohne eine Vielzahl von Behälterklassen, jeder schaffen zu müssen, fast identischen Code enthaltend. Zusätzlich zum Ermöglichen effizienteren Codes werden bestimmte Laufzeitausnahmen zu Übersetzungszeit-Ausnahmen, eine als Typ-Sicherheit bekannte Eigenschaft umgewandelt.

Kritik

An Java geleitete Kritiken schließen die Durchführung von generics, die Geschwindigkeit Javas, das Berühren von nicht unterzeichneten Zahlen, die Durchführung der Fließkommaarithmetik und eine Geschichte der Sicherheitsverwundbarkeit im primären Java VM Durchführung HotSpot ein.

Gebrauch durch Außengesellschaften

Google

Google and Android, Inc. hat beschlossen, Java als eine Schlüsselsäule in der Entwicklung des Androiden Betriebssystem, eine offene Quelle smartphone Betriebssystem zu verwenden. Außer der Tatsache, dass das Betriebssystem, gebaut auf Linux 2.6 Kern, größtenteils in Java, der Androide geschrieben wurde, verwendet SDK Java, um Anwendungen für die Androide-Plattform zu entwerfen.

Klassenbibliotheken

  • Die javanische Klassenbibliothek ist der kompilierte bytecodes des Quellcodes, der durch den JRE implementor entwickelt ist, um Anwendungsentwicklung in Java zu unterstützen. Beispiele dieser Bibliotheken sind:
  • Die Kernbibliotheken, die einschließen:
  • Sammlungsbibliotheken, die Datenstrukturen wie Listen, Wörterbücher, Bäume, Sätze, Warteschlangen und Doppelstapel durchführen, oder aufschobern
  • XML, der (Syntaxanalyse, das Umwandeln In einer Prozession geht, Gültig machend) Bibliotheken
  • Sicherheit
  • Internationalisierung und Lokalisierungsbibliotheken
  • Die Integrationsbibliotheken, die dem Anwendungsschriftsteller erlauben, mit Außensystemen zu kommunizieren. Diese Bibliotheken schließen ein:
  • Die javanische Datenbankkonnektivität (JDBC) API für den Datenbankzugang
  • Das javanische Namengeben und die Verzeichnisschnittstelle (JNDI) für lookup und Entdeckung
  • RMI und CORBA für die verteilte Anwendungsentwicklung
  • JMX, um Anwendungen sich zu behelfen und zu kontrollieren
  • Benutzerschnittstelle-Bibliotheken, die einschließen:
  • (Schwergewicht oder Eingeborener) Abstract Window Toolkit (AWT), das GUI Bestandteile, die Mittel zur Verfügung stellt, um jene Bestandteile und die Mittel anzulegen, um Ereignisse von jenen Bestandteilen zu behandeln
  • Die (leichten) Schwingen-Bibliotheken, auf die auf AWT gebaut wird, aber (nichtheimische) Durchführungen des AWT widgetry zur Verfügung stellen
  • APIs für die Audiofestnahme, die Verarbeitung und das Play-Back
  • Eine Plattform-Abhängiger-Durchführung Javas Virtuelle Maschine, die die Mittel ist, durch die die Byte-Codes der javanischen Bibliotheken und Drittanwendungen durchgeführt werden
  • Plugins, die applets ermöglichen, in WWW-Browsern geführt zu werden
  • Javanischer Webanfang, der javanischen Anwendungen erlaubt, Endbenutzern über das Internet effizient verteilt zu werden
  • Das Genehmigen und Dokumentation.

Dokumentation

Javadoc ist ein umfassendes Dokumentationssystem, das durch Sonne-Mikrosysteme geschaffen ist, die von vielen javanischen Entwicklern verwendet sind. Es versorgt Entwickler mit einem organisierten System, um ihren Code zu dokumentieren. Anmerkungen von Javadoc haben ein Extrasternchen am Anfang, d. h. die Anhängsel sind / ** und */, wohingegen die normalen Mehrlinienanmerkungen in Java mit den Anhängseln/* und */abgehoben werden.

Ausgaben

Sonne hat definiert und unterstützt vier Ausgaben Javas, das verschiedene Anwendungsumgebungen ins Visier nimmt, und hat viele seiner APIs segmentiert, so dass sie einer der Plattformen gehören. Die Plattformen sind:

Die Klassen in Java APIs werden in getrennte Gruppen genannt Pakete organisiert. Jedes Paket enthält eine Reihe zusammenhängender Schnittstellen, Klassen und Ausnahmen. Beziehen Sie sich auf die getrennten Plattformen für eine Beschreibung der verfügbaren Pakete.

Der Satz von APIs wird von Sonne-Mikrosystemen in der Zusammenarbeit mit anderen durch das javanische Gemeinschaftsprozess-Programm kontrolliert. Gesellschaften oder Personen, die an diesem Prozess teilnehmen, können das Design und die Entwicklung des APIs beeinflussen. Dieser Prozess ist ein Thema der Meinungsverschiedenheit gewesen.

Sonne hat auch eine Ausgabe genannt PersonalJava zur Verfügung gestellt, der durch später, das standardbasierte Java ICH Konfigurationsprofil-Paarung ersetzt worden ist.

Siehe auch

C# C#
  • Dalvik
  • JavaOne
  • Javapedia
  • Liste Javas virtuelle Maschinen
  • Liste Javas APIs
  • Liste von JVM Sprachen
  • Javanische Versionsgeschichte

Zeichen

Links


Zweig von James Cabell / Am 9. Juli
Impressum & Datenschutz