DIE KLINGEL

Es gibt diejenigen, die diese Nachrichten vor Ihnen lesen.
Abonnieren Sie, um die neuesten Artikel zu erhalten.
Email
Name
Nachname
Wie willst du The Bell lesen?
Kein Spam

Letztes Update: 15.04.2018

Heute ist die Java-Sprache eine der am weitesten verbreiteten und beliebtesten Programmiersprachen. Die erste Version der Sprache erschien bereits 1996 im Darm von Sun Microsystems, das später von Oracle übernommen wurde. Java wurde als universelle Programmiersprache konzipiert, die für verschiedene Arten von Aufgaben verwendet werden kann. Inzwischen hat die Java-Sprache einen langen Weg zurückgelegt und viele verschiedene Versionen veröffentlicht. Die aktuelle Version ist Java 12, die im März 2019 veröffentlicht wurde. Und Java hat sich von einer universellen Sprache zu einer ganzen Plattform und einem Ökosystem entwickelt, die verschiedene Technologien vereinen, die für eine Vielzahl von Aufgaben verwendet werden: von der Erstellung von Desktop-Anwendungen bis zum Schreiben großer Webportale und -dienste. Darüber hinaus wird die Java-Sprache aktiv verwendet, um Software für eine Vielzahl von Geräten zu erstellen: normale PCs, Tablets, Smartphones und mobiltelefone und sogar Haushaltsgeräte. Es genügt, an die Popularität des mobilen Android-Betriebssystems zu erinnern, für das die meisten Programme in Java geschrieben sind.

Java-Funktionen

Ein wesentliches Merkmal der Java-Sprache ist, dass ihr Code zunächst in einen speziellen plattformunabhängigen Bytecode übersetzt wird. Und dann wird dieser Bytecode von der JVM (Java Virtual Machine) ausgeführt. In dieser Hinsicht unterscheidet sich Java von standardmäßig interpretierten Sprachen wie PHP oder Perl, deren Code sofort vom Interpreter ausgeführt wird. Gleichzeitig ist Java keine rein kompilierte Sprache wie C oder C ++.

Diese Architektur bietet plattformübergreifende und Hardware-Portabilität von Java-Programmen, sodass solche Programme ohne Neukompilierung auf verschiedenen Plattformen ausgeführt werden können - Windows, Linux, Mac OS usw. Jede Plattform kann eine eigene Implementierung der virtuellen JVM-Maschine haben, aber jede von ihnen kann denselben Code ausführen.

Java ist eine Sprache mit einer C-ähnlichen Syntax und steht in dieser Hinsicht C / C ++ und C # nahe. Wenn Sie mit einer dieser Sprachen vertraut sind, ist es daher einfacher, Java zu beherrschen.

Einer noch hauptmerkmal Java unterstützt die automatische Speicherbereinigung. Dies bedeutet, dass Sie nicht wie in C ++ manuell Speicher von zuvor verwendeten Objekten freigeben müssen, da der Garbage Collector dies automatisch für Sie erledigt.

Java ist eine objektorientierte Sprache. Es unterstützt Polymorphismus, Vererbung und statische Typisierung. Mit dem objektorientierten Ansatz können Sie die Probleme beim Erstellen großer, aber gleichzeitig flexibler, skalierbarer und erweiterbarer Anwendungen lösen.

Installieren Sie Java

Damit Java-Programme ausgeführt werden können, muss JRE (Java Runtime Environment) auf dem Zielcomputer installiert sein. Die JRE führt eine minimale Implementierung einer virtuellen Maschine sowie eine Klassenbibliothek ein. Wenn wir also Programme ausführen möchten, müssen wir die JRE installieren. Für jede Plattform gibt es eine andere Version der JRE.

Da wir die Programme jedoch nicht nur ausführen, sondern auch entwickeln, benötigen wir ein spezielles JDK-Entwicklungskit (Java Development Kit). Das JDK enthält bereits die JRE und enthält auch eine Nummer zusätzliche Programme und Dienstprogramme, insbesondere der Java-Compiler.

Sie können die entsprechende Version des JDK von der offiziellen Oracle-Website herunterladen und installieren: http://www.oracle.com/technetwork/java/javase/downloads/index.html

Laden Sie daher von der oben angegebenen Adresse das JDK-Installationsprogramm für die neueste Java-Version herunter.

Dann werden wir zu einer Seite weitergeleitet, auf der wir die Version für das Zielbetriebssystem auswählen müssen - Windows, MacOS oder Linux:

Für jedes Betriebssystem gibt es zwei Startoptionen: als Installationsprogramm oder als Archiv, das nicht installiert werden muss. Mein Betriebssystem ist beispielsweise Windows, daher lade ich jdk_12_windows-x64_bin.exe herunter, das das Installationsprogramm darstellt.

Führen Sie nach dem Herunterladen das Installationsprogramm aus:

Klicken Sie auf die Schaltfläche Weiter. Im nächsten Bildschirm müssen Sie angeben, in welchem \u200b\u200bOrdner die Installation ausgeführt werden soll:

Übernehmen Sie die Standardordnerauswahl und klicken Sie auf Weiter, um die Installation abzuschließen.

Nach Abschluss der JDK-Installation wird ein Fenster wie das folgende angezeigt:

Nach der Installation des JDK erstellen wir das erste Java-Programm.

1995 veröffentlichte der Software-Riese Sun Microsystems eine neue Plattform namens Java. Es enthielt eine Programmiersprache und die sogenannte Java-Laufzeitumgebung oder eine Laufzeitumgebung für Anwendungen, die mit Java geschrieben wurden. Die JRE enthält wiederum das grundlegende Java-Sprachtypsystem, eine virtuelle Maschine, die üblicherweise als Java-Maschine bezeichnet wird, und eine gesamte Bibliothek von Hilfsklassen.



Offensichtlich war der Hauptzweck der damaligen Innovation plattformübergreifende Anwendungen, die vor dem Aufkommen von Java stark an die "Hardware" gebunden waren, für die sie bestimmt waren. Java hingegen ermöglichte es, Anwendungen unabhängig von der auf dem Computer installierten Plattform auszuführen.

Erfahren Sie mehr über Java

Im Gegensatz zu Anwendungen, die beispielsweise in C erstellt wurden, sammelt die JRE die Quellcodedateien einer Anwendung, die mit der Java-Sprache erstellt wurde, unterschiedlich. Als Ergebnis der Kompilierung durchläuft die C-Anwendung die Phase der Erstellung des sogenannten Objektcodes oder Maschinencodes (Assembly-Phase), aus der der Linker eine ausführbare Datei erstellt, die von der auf dem PC installierten Plattform abhängt. Eine Anwendung, die als Ergebnis des Kompilierungsprozesses mit Java geschrieben wurde, erstellt den sogenannten Bytecode, unabhängig von der Betriebsumgebung, in der er erstellt wurde. Damit dieser Bytecode jedoch auf einer bestimmten Plattform in eine ausführbare Datei kompiliert werden kann, muss die JRE auf dieser Plattform installiert sein. Dies ist das Tool, nach dem sich Benutzer häufig fragen: "Warum benötigen Sie Java auf einem Computer?"


Ein wenig über die Popularität von Java-Programmen

Modernes Java ist zu einem nahezu allgemein anerkannten Entwicklungsstandard geworden. In dieser Sprache werden Netzwerkanwendungen, Spiele, Unternehmenssoftware, bekannte Applets für Webbrowser, eingebettete und mobile Software entwickelt. Laut Statistik ist Java weltweit auf 97 Prozent der Desktop-PCs von Unternehmen installiert. Die in dieser Sprache geschriebenen Tools werden in drei Milliarden Mobiltelefonen verwendet. Java ist auch bei Fernsehgeräten beliebt. Die Popularität von Anwendungen, die mit der Programmiersprache Java erstellt wurden, ist daher nicht zu leugnen. Der Grund für diese Beliebtheit war die Fähigkeit, sich in einer Betriebsumgebung zu entwickeln und die erstellte Anwendung in einer völlig anderen auszuführen. Dies ist die sogenannte plattformübergreifende Methode, die auf dem oben diskutierten unabhängigen Bytecode basiert.


Gibt es eine Java-Alternative?

Ein Beispiel für eine Alternative für Java wäre die .Net-Plattform eines anderen Software-Riesen namens Microsoft. Dank des vorhandenen MSIL-Codes, der dem Java-Bytecode entspricht, hat es auch eine plattformübergreifende Komponente. Im Gegensatz zu Java wird die Microsoft-Plattform jedoch nur für Windows-Betriebsumgebungen installiert und bleibt daher plattformabhängig, obwohl versucht wird, diese Plattform in Form des Mono-Projekts auf andere Betriebssysteme zu portieren. Ein wichtiger Vorteil dieser Plattform ist die Fähigkeit, sie in vielen .Net-kompatiblen Sprachen zu entwickeln.

Java - Java-Software von Sun Microsystems. Es wurde ursprünglich als Sprache zum Programmieren elektronischer Geräte entwickelt, später jedoch zum Schreiben von Serversoftwareanwendungen verwendet. Java-Programme sind plattformübergreifend, dh sie können auf jedem Betriebssystem ausgeführt werden.

Grundlagen der Java-Programmierung

Java als objektorientierte Sprache erfüllt die Grundprinzipien von OOP:

  • erbe;
  • polymorphismus;
  • verkapselung.

Im Zentrum von "Java" gibt es wie in anderen OOLs ein Objekt und eine Klasse mit Konstruktoren und Eigenschaften. Es ist besser, die Java-Programmiersprache nicht aus offiziellen Quellen zu lernen, sondern aus Tutorials für Anfänger. In solchen Handbüchern werden die Funktionen ausführlich beschrieben und Codebeispiele bereitgestellt. Bücher wie "Die Java-Programmiersprache für Anfänger" erläutern ausführlich die Grundprinzipien und Merkmale der genannten Sprache.

Eigenschaften:

Java-Code wird in Bytecode übersetzt und dann in der virtuellen JVM-Maschine ausgeführt. Die Konvertierung in Bytecode erfolgt in Javac, Jikes, Espresso, GCJ. Es gibt Compiler, die C in Java-Bytecode übersetzen. Somit kann eine C-Anwendung auf jeder Plattform ausgeführt werden.

Die Java-Syntax ist wie folgt gekennzeichnet:

  1. Klassennamen müssen mit einem Großbuchstaben beginnen. Wenn der Name aus mehreren Wörtern besteht, sollte der zweite mit einem Großbuchstaben beginnen.
  2. Wenn mehrere Wörter zur Bildung einer Methode verwendet werden, muss das zweite mit einem Großbuchstaben beginnen.
  3. Die Verarbeitung beginnt mit der main () -Methode - sie ist Teil jedes Programms.

Typen

Die Java-Programmiersprache hat 8 primitive Typen. Sie sind unten dargestellt.

  • Boolean - boolescher Typnimmt nur zwei Werte wahr und falsch an.
  • Byte - kleinste ganzzahliger Typ 1 Byte groß. Es wird beim Umgang mit binären Rohdaten oder -dateien verwendet. Hat einen Bereich von -128 bis 127.
  • Short hat einen Bereich von -32768 bis 32767 und wird zur Darstellung von Zahlen verwendet. Die Größe von Variablen dieses Typs beträgt 2 Bytes.
  • Int steht auch für Zahlen, aber seine Größe beträgt 4 Bytes. Es wird am häufigsten verwendet, um mit ganzzahligen Daten zu arbeiten, und Byte und Short werden manchmal zu int heraufgestuft.
  • Long werden für große Ganzzahlen verwendet. Mögliche Werte liegen im Bereich von -9223372036854775808 bis 9223372036854775807.
  • Float und Double werden verwendet, um Bruchwerte darzustellen. Der Unterschied besteht darin, dass Float praktisch ist, wenn Sie keine hohe Präzision im Bruchteil einer Zahl benötigen.
  • Double zeigt alle Zeichen nach dem Trennzeichen "." Und float an - nur das erste.
  • String ist der am häufigsten verwendete primitive Typ zum Angeben von Strings.

Klassen und Objekte

Klassen und Objekte spielen eine wichtige Rolle beim Erlernen der Java-Programmiersprache für Anfänger.

Eine Klasse definiert eine Vorlage für ein Objekt. Sie muss Attribute und Methoden haben. Verwenden Sie zum Erstellen das Schlüsselwort Class. Wenn es in erstellt wird separate Datei, dann müssen der Klassenname und der Dateiname identisch sein. Der Name selbst besteht aus zwei Teilen: dem Namen und der Erweiterung. Java.

In Java können Sie eine Unterklasse erstellen, die die Methoden des übergeordneten Elements erbt. Das Wort erweitert wird dafür verwendet:

  • klasse Klassenname erweitert Superklassenname ();

Ein Konstruktor ist Teil einer Klasse, auch wenn er nicht explizit angegeben ist. In diesem Fall erstellt der Compiler es selbst:

  • öffentliche Klasse Klasse (öffentliche Klasse () () öffentliche Klasse (String name) ())

Der Name des Konstruktors entspricht dem Namen der Klasse. Standardmäßig enthält er nur einen Parameter:

  • öffentlicher Welpe (String name)

Das Objekt wird aus einer Klasse mit dem Operator new () erstellt:

  • Punkt p \u003d neuer Punkt ()

Es empfängt alle Methoden und Eigenschaften der Klasse, mit denen es mit anderen Objekten interagiert. Ein Objekt kann unter verschiedenen Variablen mehrfach verwendet werden.

    Punkt p \u003d neuer Punkt ()

    klasse TwoPoints (

    public static void main (String args) (

    Punkt p1 \u003d neuer Punkt ();

    Punkt p2 \u003d neuer Punkt ();

    Objektvariablen und Objekte sind völlig unterschiedliche Entitäten. Objektvariablen sind Referenzen. Sie können auf jede Variable eines nicht primitiven Typs verweisen. Im Gegensatz zu C ++ ist ihre Typkonvertierung streng reguliert.

    Felder und Methoden

    Felder sind alle Variablen, die einer Klasse oder einem Objekt zugeordnet sind. Sie sind standardmäßig lokal und können nicht in anderen Klassen verwendet werden. Der Operator "." Wird verwendet, um auf die Felder zuzugreifen:

    • classname.variable

    Sie können statische Felder mit definieren stichwort statisch. Solche Felder sind die einzige Möglichkeit, globale Variablen zu speichern. Dies liegt daran, dass es in Java einfach keine globalen Variablen gibt.

    Die Möglichkeit zum Importieren von Variablen implementiert, um Zugriff von anderen Paketen zu erhalten:

    • statischen Klassennamen importieren;

    Die Methode ist eine Unterroutine für die Klassen, in denen sie deklariert ist. Beschrieben auf der gleichen Ebene wie Variablen. Es ist als Funktion festgelegt und kann von jedem Typ sein, einschließlich void:

    • klassenpunkt (int x, y;

      void init (int a, int b) (

    Im obigen Beispiel hat die Point-Klasse eine Ganzzahl x und y, eine init () -Methode. Auf Methoden wird wie auf Variablen mit dem Operator "." Zugelassen:

    • Point.init ();

    Die init-Eigenschaft gibt nichts zurück, daher ist sie ungültig.

    Variablen

    In der Selbstlernsprache der Java-Programmiersprache nehmen Variablen einen separaten Platz ein. Alle Variablen haben einen bestimmten Typ. Sie definieren den erforderlichen Speicherplatz zum Speichern von Werten, den Bereich möglicher Werte und die Liste der Operationen. Vor dem Bearbeiten von Werten werden Variablen deklariert.

    Es können mehrere Variablen gleichzeitig deklariert werden. Ein Komma wird verwendet, um sie aufzulisten:

    • int a, b, c;

    Die Initialisierung erfolgt nach oder während der Ankündigung:

    int a \u003d 10, b \u003d 10;

    Es gibt verschiedene Arten:

    • lokale Variablen (lokal);
    • instanzvariablen
    • statische Variablen.

    Lokale Variablen werden in Methoden und Konstruktoren deklariert, sie werden beim Start der letzteren erstellt und nach Abschluss zerstört. Es ist ihnen verboten, Zugriffsmodifikatoren anzugeben und die Barrierefreiheit zu steuern. Sie sind außerhalb des deklarierten Blocks nicht sichtbar. In Java haben Variablen nicht ursprünglicher Wert, muss also vor der ersten Verwendung vergeben werden.

    Instanzvariablen müssen innerhalb der Klasse deklariert werden. Sie werden als Methoden verwendet, aber Sie können erst darauf zugreifen, nachdem das Objekt erstellt wurde. Die Variable wird zerstört, wenn das Objekt zerstört wird. Instanzvariablen haben im Gegensatz zu lokalen Standardwerte:

    • zahlen - 0;
    • logik ist falsch;
    • referenzen sind null.

    Statische Variablen werden als Klassenvariablen bezeichnet. Ihre Namen beginnen mit einem Großbuchstaben und werden mit dem statischen Modifikator instanziiert. Sie werden als Konstanten verwendet, daher wird ihnen ein Bezeichner aus der Liste hinzugefügt:

    • finale;
    • privat;
    • Öffentlichkeit.

    Sie werden zu Beginn des Programms gestartet und bei Beendigung der Ausführung zerstört. Genau wie Instanzvariablen haben sie Standardwerte, die leeren Variablen zugewiesen werden. Zahlen haben den Wert 0, Boolesche Werte sind falsch und Objektreferenzen sind anfänglich null. Statische Variablen werden wie folgt aufgerufen:

    • ClassName.VariableName.

    Müllsammler

    Im Tutorial Java Programming Language for Beginners ist der Abschnitt zur automatischen Speicherbereinigung am interessantesten.

    In Java ist es anders als in der Sprache "C" unmöglich, ein Objekt manuell aus dem Speicher zu löschen. Hierzu wird eine automatische Entsorgungsmethode implementiert - ein Garbage Collector. Beim herkömmlichen Löschen über null wird nur die Objektreferenz entfernt, und das Objekt selbst wird gelöscht. Es gibt Methoden zur erzwungenen Speicherbereinigung, die jedoch für den normalen Gebrauch nicht empfohlen werden.

    Das Modul zum automatischen Löschen nicht verwendeter Objekte wird im Hintergrund ausgeführt und gestartet, wenn das Programm inaktiv ist. Um Objekte aus dem Speicher zu löschen, stoppt das Programm. Nach dem Freigeben des Speichers wird der unterbrochene Vorgang fortgesetzt.

    Modifikatoren

    Es gibt verschiedene Arten von Modifikatoren. Zusätzlich zu denen, die die Zugriffsmethode bestimmen, gibt es Modifikatoren für Methoden, Variablen und Klassen. Als privat deklarierte Methoden sind nur in der deklarierten Klasse verfügbar. Solche Variablen können nicht in anderen Klassen und Funktionen verwendet werden. Öffentlich ermöglicht den Zugriff auf jede Klasse. Wenn Sie die Public-Klasse aus einem anderen Paket abrufen möchten, müssen Sie sie zuerst importieren.

    Der geschützte Modifikator ähnelt in seiner Wirkung dem öffentlichen - er öffnet den Zugriff auf die Felder der Klasse. In beiden Fällen können Variablen in anderen Klassen verwendet werden. Der öffentliche Modifikator steht jedoch absolut jedem zur Verfügung, und der geschützte Modifikator ist nur für geerbte Klassen verfügbar.

    Der beim Erstellen von Methoden verwendete Modifikator ist statisch. Dies bedeutet, dass die erstellte Methode unabhängig von den Instanzen der Klasse vorhanden ist. Der Modifikator Final steuert nicht den Zugriff, zeigt jedoch an, dass eine weitere Manipulation der Objektwerte nicht möglich ist. Es verbietet das Ändern des Elements, für das es angegeben ist.

    Final für Felder macht es unmöglich, den ersten Wert einer Variablen zu ändern:

      public static void mthod (String args) (

      final int Name \u003d 1;

      int Name \u003d 2; // löst einen Fehler aus

    Variablen mit dem letzten Modifikator sind Konstanten. Es ist üblich, sie nur in Großbuchstaben zu schreiben. CamelStyle und andere Methoden funktionieren nicht.

    Final for Methods weist auf das Verbot hin, die Methode in der geerbten Klasse zu ändern:

      final void myMethod () (

      System.out.printIn ("Hallo Welt");

    Final für Klassen bedeutet, dass Sie keine Klassenerben erstellen können:

      letzte öffentliche Klasse Klasse (

    Abstract - ein Modifikator zum Erstellen abstrakter Klassen. Alle abstrakten Klassen und abstrakten Methoden sollen auf andere Klassen und Blöcke erweitert werden. Modifikator transient weist die virtuelle Maschine an, die angegebene Variable nicht zu verarbeiten. In diesem Fall wird es einfach nicht überleben. Beispielsweise bleibt der vorübergehende int Name \u003d 100 nicht bestehen, int b jedoch.

    Plattformen und Versionen

    Bestehende Java-Programmiersprachenfamilien:

    • Standard Edition.
    • Enterprise Edition.
    • Micro Edition.
    • Karte.

    1. SE - ist die wichtigste, die häufig zum Erstellen von benutzerdefinierten Anwendungen für den individuellen Gebrauch verwendet wird.
    2. EE ist eine Reihe von Spezifikationen für die Entwicklung von Unternehmenssoftware. Es enthält mehr Funktionen als SE und wird daher kommerziell in großen und mittleren Unternehmen eingesetzt.
    3. ME - Entwickelt für Geräte mit begrenzter Leistung und begrenztem Speicher, haben sie normalerweise eine kleine Bildschirmgröße. Solche Geräte sind Smartphones und PDAs, Empfänger digitales Fernsehen.
    4. Karte - Entwickelt für Geräte mit äußerst begrenzten Computerressourcen wie Smartcards, SIM-Karten und Geldautomaten. Zu diesem Zweck wurden der Bytecode, die Plattformanforderungen und die Bibliotheken geändert.

    Anwendung

    Java-Programme sind in der Regel langsamer und benötigen mehr arbeitsspeicher... Eine vergleichende Analyse von Java- und C-Sprachen hat gezeigt, dass C etwas produktiver ist. Nach zahlreichen Änderungen und Optimierungen der virtuellen Maschine hat Java seine Leistung verbessert.

    Es wird aktiv für Android-Anwendungen verwendet. Das Programm wird in einen nicht standardmäßigen Bytecode kompiliert und auf der virtuellen ART-Maschine ausgeführt. Android Studio wird zum Kompilieren verwendet. Diese IDE von Google ist offiziell für die Android-Entwicklung.

    Microsoft hat eine eigene Implementierung der virtuellen MSJVM-Java-Maschine entwickelt. Es gab solche Unterschiede, die das grundlegende Konzept der plattformübergreifenden Nutzung brachen - einige Technologien und Methoden wurden nicht unterstützt, es gab nicht standardmäßige Erweiterungen, die nur auf der Windows-Plattform funktionierten. Microsoft hat die J # -Sprache veröffentlicht, deren Syntax und Gesamtbetrieb Java sehr ähnlich ist. Es entsprach nicht der offiziellen Spezifikation und wurde schließlich aus dem Standard-Microsoft-Entwickler-Toolkit entfernt. Visual Studio.

    Java Programmiersprache und Umgebung

    Die Softwareentwicklung wird in folgenden IDEs durchgeführt:

    1. NetBeans IDE.
    2. Eclipse IDE.
    3. IntelliJ IDEE.
    4. JDeveloper.
    5. Java für iOS.
    6. Geany.

    Das JDK wird von Oracle als Java Development Kit vertrieben. Beinhaltet Compiler, Standardbibliotheken, Dienstprogramme und ausführendes System. Moderne IDEs basieren auf dem JDK.

    Es ist praktisch, Code in der Java-Programmiersprache in Netbeans und der Eclipse-IDE zu schreiben. Dies sind kostenlose integrierte Entwicklungsumgebungen, die für alle Java-Plattformen geeignet sind. Wird auch zum Programmieren in Python, PHP, JavaScript, C ++ verwendet.

    IntelliJ IDE von Jetbrains gibt es in zwei Varianten: kostenlos und kommerziell. Unterstützt das Schreiben von Code in vielen Programmiersprachen, es gibt Plugins von Drittanbietern von Entwicklern, in denen noch mehr Programmiersprachen implementiert sind.

    JDeveloper ist eine weitere Entwicklung von Oracle. Es ist vollständig in Java geschrieben und funktioniert daher auf allen Betriebssystemen.

Eine kurze Geschichte der Java-Sprache

Dieser Abschnitt beschreibt kurz den Verlauf der Java-Sprache. Dieser Abschnitt basiert auf verschiedenen veröffentlichten Materialien (hauptsächlich Interviews mit den Entwicklern der Java-Sprache in der Juli-Ausgabe elektronisches Journal SunWorld 1995).

Die Geschichte von Java reicht bis ins Jahr 1991 zurück, als eine Gruppe von Sun-Ingenieuren unter der Leitung von Patrick Naughton und dem Vorstandsmitglied (und vielseitigen Computerassistenten) James Gosling eine kleine Sprache entwickelte, mit der Haushaltsgeräte programmiert werden konnten. Geräte wie Controller zum Umschalten von Kabelfernsehkanälen (Kabelfernseh-Schaltkästen).

Da solche Geräte nicht viel Strom verbrauchen und keine großen Speicherchips haben, musste ich klein sein und sehr kompakte Programme generieren. Da verschiedene Hersteller möglicherweise unterschiedliche Zentralprozessoren (Central Processor Units, CPUs) auswählen, war es außerdem wichtig, sich nicht in einer Computerarchitektur festzumachen. Das Projekt wurde unter dem Codenamen "Green" geführt.

Um kleinen, kompakten und maschinenunabhängigen Code zu erfinden, haben die Entwickler das Modell wiederbelebt, das bei der Implementierung der ersten Versionen der Pascal-Sprache zu Beginn des PC-Zeitalters verwendet wurde. Niklaus Wirth, der Schöpfer der Pascal-Sprache, entwickelte einst eine maschinenunabhängige Sprache, die Zwischencode für eine hypothetische Maschine generiert. Diese Sprache wurde zu einem kommerziellen Produkt namens UCSD Pascal. (Solche hypothetischen Maschinen werden oft als virtuelle Maschinen bezeichnet - zum Beispiel die Java Virtual Machine oder JVM.)
Dieser Zwischencode kann auf jedem Computer ausgeführt werden, der über einen geeigneten Interpreter verfügt. Die Ingenieure, die am Green-Projekt arbeiteten, verwendeten auch eine virtuelle Maschine, die ihr Hauptproblem löste.

Die meisten Mitarbeiter von Sun hatten jedoch Erfahrung mit dem UNIX-Betriebssystem, sodass die von ihnen entwickelte Sprache auf C ++ und nicht auf Pascal basierte. Insbesondere machten sie die Sprache eher objektorientiert als prozedural.

Wie Gosling in einem Interview sagte: " Sprache ist immer ein Mittel, kein Zweck". Zuerst beschloss Gosling, es" Eiche "(Eiche) zu nennen. (Vielleicht, weil er gerne die Eiche betrachtete, die direkt unter den Fenstern seines Büros bei Sun wächst.) Dann erfuhren Sun-Mitarbeiter, dass das Wort Eiche bereits verwendet wurde als Name der zuvor erstellten Programmiersprache und änderte den Namen Java.

1992 brachte das Green-Projekt sein erstes Produkt mit dem Namen auf den Markt
"* 7". Es war ein Fahrzeug für einen extrem intelligenten fernbedienung... (Es hatte die Kraft arbeitsplatz SPARK in einer 6x4x4 '' Box) Leider keiner der produzierende Unternehmen Die Elektronik interessiert sich nicht für diese Erfindung.

Anschließend entwickelte die Gruppe ein Kabelfernsehgerät, das neue Dienste wie Video-on-Demand bereitstellen konnte. Auch hier erhielten sie keinen einzigen Vertrag. (Es ist lustig, dass eines der Unternehmen, das sich weigerte, mit ihnen zu unterschreiben, von Jim Clark, dem Gründer von Netscape, geleitet wurde, der später viel zum Erfolg der Java-Sprache beitrug.)

Während des gesamten Jahres 1993 und der Hälfte des Jahres 1994 wurde die erfolglose Suche nach Käufern von Produkten fortgesetzt, die im Rahmen des Projekts "Green" (unter dem neuen Namen "First Person, Inc.") entwickelt wurden. (Patrick Naughton, einer der Gründer der Gruppe, der später hauptsächlich im Marketing tätig war, flog insgesamt mehr als 300.000 Meilen, um die entwickelte Technologie zu verkaufen.) Projekt "First Person, Inc." wurde 1994 eingestellt.

Inzwischen wuchs das World Wide Web im Internet. Der Schlüssel zu diesem Netzwerk ist der Browser, der Hypertext in ein Bild auf dem Bildschirm verwandelt.
1994 verwendeten die meisten Menschen Mosaic, einen nicht kommerziellen Webbrowser, der 1993 am Supercomputing Center der Universität von Illinois entwickelt wurde. (Dieser Browser wurde teilweise von Mark Andreessen für 6,85 USD pro Stunde geschrieben. Zu dieser Zeit absolvierte Mark die Universität und der Browser gehörte ihm these... Dann wurde er einer der Gründer und Hauptprogrammierer von Netscape, und Ruhm und Reichtum kamen zu ihm.)

In einem Interview mit dem Sun World Magazin sagte Gosling, dass die Sprachdesigner Mitte 1994 erkannten: „Wir müssen einen wirklich coolen Browser erstellen. Dieser Browser sollte eine der wenigen Anwendungen der Mode sein client-Server-TechnologieDabei ist genau das entscheidend, was wir getan haben: Unabhängigkeit der Architektur, Ausführung in Echtzeit, Zuverlässigkeit, Sicherheit - Themen, die für Workstations nicht besonders wichtig waren. Und wir haben einen solchen Browser erstellt. "

Tatsächlich wurde der Browser von Patrick Naughton und Johnatan Payne entwickelt. Es entwickelte sich später zum modernen HotJava-Browser. Dieser Browser wurde in der Java-Sprache geschrieben, um seine volle Leistungsfähigkeit zu demonstrieren. Die Entwickler haben jedoch die leistungsstarken Funktionen, die jetzt als Applets bezeichnet werden, nicht vergessen, sodass ihr Browser Code auf Webseiten ausführen kann. Die "Technologie-Demonstration" wurde am 23. Mai 1995 auf der Sun World 95 vorgestellt und löste eine Java-Begeisterung aus, die bis heute anhält.

Sun veröffentlichte Anfang 1996 die erste Version der Java-Sprache. Einige Monate später wurde Java 1.02 veröffentlicht. Die Leute erkannten schnell, dass Java 1.02 nicht für eine ernsthafte Anwendungsentwicklung geeignet war. Natürlich kann diese Version verwendet werden, um Webseiten mit tanzenden Männern zu entwickeln, aber in Java 1.02 kann nicht einmal etwas gedruckt werden.

Um fair zu sein, war Java 1.02 noch roh. Sein Nachfolger, Java 1.1, füllte die meisten klaffenden Löcher aus, indem er die Reflexionsfähigkeit erheblich verbesserte und hinzufügte neues Modell Ereignisse für die Programmiergrafik benutzeroberfläche... Trotzdem war es noch eher begrenzt.

Die Veröffentlichung von Java 1.2 war der Höhepunkt der JavaOne-Konferenz 1998. In der neuen Version wurden schwache Tools zum Erstellen grafischer Benutzeroberflächen und grafischer Anwendungen durch komplexe und umfangreiche Tools ersetzt. Dies war ein Fortschritt in Richtung der Implementierung des Slogans "Einmal schreiben, überall ausführen" ™, der während der Entwicklung früherer Versionen vorgebracht wurde.

Im Dezember 1998, drei Tage (!) Nach der Veröffentlichung, wurde der Name der neuen Version in den umständlichen Ausdruck Java 2 Standart Edition Software Development Kit Version 1.2 geändert.

Neben der Standard Edition des Pakets ("Standard Edition") wurden zwei weitere Optionen vorgeschlagen: "Micro Edition" ("Micro Edition") für tragbare Geräte, z. B. für Mobiltelefone, und. "Enterprise Edition" zum Erstellen von Serveranwendungen. Unser Buch konzentriert sich auf die Standardausgabe.

Die Versionen 1.3 und 1.4 der Standard Edition des Toolkits sind viel weiter fortgeschritten als die ursprüngliche Java 2-Version. Sie verfügen über neue Funktionen und sind natürlich viel weniger fehlerhaft. Tabelle 1 1 zeigt das exponentielle Wachstum der API-Bibliothek, wenn neue Versionen des Standard Edition SDK verfügbar werden.

Tabelle 1.1. Erweiterung des Volumens der API-Bibliothek aus dem Java Standart Edition-Paket

Anzahl der Klassen und Schnittstellen

Anzahl der Methoden und Felder

Häufige Missverständnisse über die Java-Sprache

In diesem Abschnitt werden einige der häufigsten Missverständnisse in Bezug auf Java aufgelistet und kommentiert.

Die Java-Sprache ist eine Erweiterung hTML-Sprache.

Java ist eine Programmiersprache, und HTML beschreibt die Struktur von Webseiten. Sie haben nichts gemeinsam, mit Ausnahme von HTML-Erweiterungen, mit denen Java-Applets auf Webseiten gehostet werden können.

Ich arbeite in XML-Sprache, daher brauche ich keine Java-Sprache.

Java ist eine Programmiersprache und XML ist einfach eine Möglichkeit, Daten zu beschreiben. Mit XML beschriebene Daten können von Programmen verarbeitet werden, die in einer beliebigen Programmiersprache geschrieben sind. Nur die Java-API-Bibliothek bietet jedoch eine hervorragende Unterstützung für die Verarbeitung solcher Daten. Darüber hinaus implementiert Java viele der Funktionen von XML. Sie werden im zweiten Band ausführlicher beschrieben.

Java ist leicht zu erlernen.

Es gibt keine so leistungsfähige Programmiersprache wie Java, die Sie leicht erlernen können. Spielzeugprogramme sind leicht zu schreiben, aber harte Arbeit ist immer schwierig. Beachten Sie außerdem, dass es in diesem Buch nur vier Kapitel gibt, in denen die Java-Sprache selbst behandelt wird. In den verbleibenden Kapiteln wird erläutert, wie Sie mit Bibliotheken arbeiten, die Tausende von Klassen und Schnittstellen sowie viele Tausend Funktionen enthalten. Glücklicherweise müssen Sie nicht jeden von ihnen kennen, aber der Benutzer benötigt überraschend viel Wissen, um ein reales Projekt abzuschließen.

Java ist einfach zu programmieren.

Das Java SDK ist nicht für alle Benutzer einfach zu bedienen, außer für Programmierer, die daran gewöhnt sind befehlszeile... Es gibt integrierte Programmierumgebungen, die Texteditoren, Compiler und Tools zum Erstellen von Formularen per Drag & Drop enthalten. Für Anfänger sehen sie jedoch zu kompliziert und einschüchternd aus. Darüber hinaus generieren sie häufig Programme mit Hunderten von Zeilen. Es scheint uns keine gute Idee zu sein, die Java-Sprache mit langen Programmen zu lernen, die automatisch generiert und mit Kommentaren wie "NICHT BERÜHREN!" Wir glauben, dass es am besten ist, Java mit Ihrem vertrauten zu lernen texteditor... Genau das werden wir tun.

Java wird schließlich eine universelle Programmiersprache für alle Plattformen.

Dies ist theoretisch möglich. Davon träumen alle Softwareanbieter außer Microsoft. Es gibt jedoch viele Anwendungen, die auf PCs hervorragend funktionieren und auf anderen Geräten oder unter einem Browser nicht so gut funktionieren. Darüber hinaus wurden diese Anwendungen geschrieben, um die Funktionen von Prozessoren und maschinenabhängigen Bibliotheken zu maximieren. In jedem Fall wurden sie bereits auf alle wichtigen Plattformen portiert. Diese Anwendungen enthalten Text und grafikeditorsowie Webbrowser. In der Regel sind diese Anwendungen in C oder C ++ geschrieben, und der Benutzer erhält nichts, wenn er sie in Java neu schreibt. Unter anderem wird das Umschreiben in Java diese Programme zumindest in naher Zukunft langsamer und weniger effizient machen.

Die Java-Sprache ist nur eine andere Programmiersprache.

Java ist eine wunderbare Programmiersprache. Viele Programmierer bevorzugen es gegenüber C oder C ++. Es gibt jedoch Hunderte exzellenter Programmiersprachen auf der Welt, die nie weit verbreitet wurden, während Sprachen mit offensichtlichen Fehlern wie C ++ und Visual Basic überwältigende Erfolge erzielt haben.

Warum? Der Erfolg einer Programmiersprache hängt weitgehend von der Praktikabilität ihres Unterstützungssystems ab, nicht von der Eleganz ihrer Syntax. Gibt es nützliche, praktische und Standardbibliotheken, um genau das zu tun, was der Programmierer benötigt? Haben Sie eine praktische Umgebung zum Erstellen und Debuggen von Programmen entwickelt? Ist die Sprache und ihre Tools in die Computerinfrastruktur integriert? Die Java-Sprache hat in serverseitigen Anwendungen Fortschritte gemacht, da ihre Klassenbibliotheken es einfach machen, Dinge zu tun, die früher schwierig waren, wie z. B. Netzwerk und Multithreading. Die Tatsache, dass Java die Anzahl der Zeigerfehler reduziert hat, spricht ebenfalls für sich. Dank dessen hat sich die Produktivität der Programmierer erhöht. Dies ist jedoch nicht der Grund für seinen Erfolg.

Java-Programme werden interpretiert, was bedeutet, dass ernsthafte Anwendungen auf einer bestimmten Plattform zu langsam ausgeführt werden.

Viele Programme verbringen die meiste Zeit damit, mit der Benutzeroberfläche zu interagieren oder auf Daten aus dem Netzwerk zu warten. Alle Programme, egal in welcher Sprache sie geschrieben sind, müssen innerhalb einer bestimmten Zeit auf einen Mausklick reagieren. Natürlich sollten Sie keine Aufgaben ausführen, die eine hohe Leistung erfordern. zentraleinheitmit dem Java-Interpreter. Auf Plattformen, die eine synchrone Kompilierung ermöglichen, müssen Sie jedoch nur die Bytecodes zur Ausführung ausführen, und die meisten Fragen verschwinden einfach.

Schließlich eignet sich Java hervorragend für die Entwicklung von Netzwerkprogrammen. Die Erfahrung hat gezeigt, dass es auch bei intensiven Berechnungen wie Verschlüsselung problemlos hohe Netzwerkübertragungsraten aufrechterhalten kann. Da Java schneller als Netzwerkdaten ist, spielt es keine Rolle, ob C ++ - Programme noch schneller ausgeführt werden können. Java ist einfacher zu programmieren und in Java geschriebene Programme sind maschinenunabhängig.

Alle Java-Programme werden unter Webbrowsern ausgeführt.

Alle Java-Applets werden tatsächlich unter Webbrowsern ausgeführt. Tatsächlich ist dies die Definition eines Applets - eines Programms, das von einem Webbrowser ausgeführt wird. Es ist jedoch durchaus möglich und angemessen, eigenständige Java-Programme zu erstellen, die unabhängig von einem Webbrowser ausgeführt werden.

Diese Programme (allgemein als Anwendungen bezeichnet) sind vollständig maschinenunabhängig. Nehmen Sie einfach das Programm und führen Sie es auf einem anderen Computer aus! Da Java benutzerfreundlicher und weniger fehleranfällig als C ++ ist, ist dies der Fall gute Wahl... In Kombination mit Datenbank-Tools wie Java Database Connectivity ist Java einfach unwiderstehlich. Es ist besonders praktisch, es als erste Programmiersprache zu lernen.
Die meisten Programme in diesem Buch sind vollständig in sich geschlossen. Applets sind natürlich sehr lustig. Java-Anwendungen sind jedoch in der Praxis wichtiger und nützlicher.

Java-Applets sind ein großes Sicherheitsrisiko.

Es wurden mehrere Berichte über Fehler in der Java-Sprachsicherheit veröffentlicht. Die meisten von ihnen befassten sich mit der Implementierung der Java-Sprache mit einem bestimmten Browser. Die Forscher nahmen dies als Herausforderung und suchten nach Sicherheitslücken in der Java-Sprache, um die Stärke und Komplexität des Applet-Sicherheitsmodells zu überwinden. Die entdeckten technischen Fehler wurden bald behoben, und soweit wir wissen, wurde noch nie ein echtes System kompromittiert. Um die Bedeutung dieser Tatsache zu erkennen, denken Sie an die Millionen von Viren in den ausführbaren Dateien des Windows-Betriebssystems und den Textverarbeitungsmakros, die wirklich viele Probleme verursacht haben, und an die überraschend zahnlose Kritik an den Schwächen der angegriffenen Plattform. Darüber hinaus könnte der ActiveX-Mechanismus im Internet Explorer-Browser viel Kritik hervorrufen, aber die Möglichkeiten, ihn zu knacken, sind so offensichtlich, dass sich nur wenige Experten die Mühe machen, ihre Forschungsergebnisse zu veröffentlichen.

Einige Systemadministratoren haben sogar den Java-Sprachschutz in ihren Browsern deaktiviert, damit Benutzer weiterhin ausführbare Dateien, ActiveX-Steuerelemente und Dokumente laden können, die mit dem Textverarbeitungsprogramm erstellt wurden. Es ist lustig, dass derzeit die Wahrscheinlichkeit, das Schutzsystem von Applets in der Java-Sprache zu überwinden, mit der Wahrscheinlichkeit vergleichbar ist, bei einem Flugzeugabsturz zu sterben, während das Risiko, einen Computer durch Öffnen eines von einem Textverarbeitungsprogramm erstellten Dokuments zu infizieren, mit dem Risiko vergleichbar ist, in einer Stunde unter den Rädern eines Autos zu sterben, das die Straße überquert. Gipfel.

JavaScript ist eine vereinfachte Version der Java-Sprache.

JavaScript ist eine Skriptsprache, die auf Webseiten verwendet werden kann. Es wurde von Netscape entwickelt und hieß ursprünglich LiveScript. Die Syntax von JavaScript ähnelt der von Java, aber hier enden die Ähnlichkeiten (mit Ausnahme des Namens natürlich). Eine Teilmenge von JavaScript wurde unter dem Namen ECMA-262 standardisiert, jedoch sind die Erweiterungen für erforderlich echte Arbeitwaren nicht standardisiert.

Java-Sprache. Einführung.

Ein Computermagazin ohne Artikel über die Java-Sprache war lange Zeit kaum vorstellbar. Sogar so beliebte Zeitungen und Zeitschriften wie Das neue York Times, Washington Post und Business Week.

Es ist unmöglich, sich daran zu erinnern, dass National Public Radio jemals eine zehnminütige Sendung einer Programmiersprache gewidmet hat. Gut oder schlecht hängt vom Standpunkt ab. Und die Investition von 100 Millionen US-Dollar in die Produktion von Software, die mit einer bestimmten Programmiersprache erstellt wurde ?! Fernsehunternehmen CNN, CNBC und andere Medien massenmedien Sie haben nur darüber gesprochen, wie die Java-Sprache dies kann und wird.

Dieses Buch ist jedoch für ernsthafte Programmierer gedacht, und da Java eine ernsthafte Programmiersprache ist, haben wir viel zu erzählen. Wir werden uns also nicht mit der Analyse von Werbeversprechen befassen und versuchen herauszufinden, was wahr und was Fiktion in ihnen ist. Stattdessen werden wir Java als Programmiersprache ausreichend detailliert beschreiben (einschließlich natürlich der Funktionen, mit denen es für die Arbeit im Internet verwendet werden kann, was tatsächlich so viel Werbehype verursacht hat). Danach werden wir versuchen, die Realität von der Fantasie zu trennen, indem wir erklären, was die Java-Sprache kann und was nicht.

Zunächst gab es eine Lücke zwischen den Werbeversprechen und den tatsächlichen Möglichkeiten der Java-Sprache. Mit zunehmender Reife wurde die Technologie stabiler und zuverlässiger, und die Erwartungen fielen auf ein vernünftiges Niveau. Java wird jetzt zunehmend verwendet, um "Middleware" zu erstellen, die die Kommunikation zwischen Clients und Serverressourcen (wie Datenbanken) aufrechterhält.

Obwohl diese wichtigen Anwendungen nicht überwältigend sind, hat sich Java aufgrund seiner Maschinenunabhängigkeit, Multithreading- und Nals am nützlichsten erwiesen. Darüber hinaus hat Java die Führung bei eingebetteten Systemen übernommen und sich zum De-facto-Standard für tragbare Geräte, virtuelle Kioske, Bordcomputer und mehr entwickelt. Die ersten Versuche, weit verbreitete Programme für PCs in Java neu zu schreiben, waren jedoch erfolglos - die resultierenden Anwendungen erwiesen sich als stromsparend und langsam. Mit dem Aufkommen der neuen Version wurden einige dieser Probleme gelöst, und dennoch muss zugegeben werden, dass den Benutzern die Sprache, in der die von ihnen gekauften Programme geschrieben sind, im Allgemeinen völlig gleichgültig ist. Wir glauben, dass die Hauptvorteile der Java-Sprache in der Erstellung neuer Arten von Geräten und Anwendungen liegen und nicht darin, vorhandene Programme neu zu schreiben.

Java als Programmierwerkzeug

Wie die Programmiersprache Java ihre Werbeversprechen übertroffen hat. Zweifellos ist dies einer von beste Sprachenfür ernsthafte Programmierer verfügbar. Möglicherweise hat Java alle Voraussetzungen, um eine großartige Programmiersprache zu werden, aber jetzt ist es wahrscheinlich zu spät. Wenn eine neue Programmiersprache angezeigt wird, tritt sofort das unangenehme Problem der Kompatibilität mit zuvor erstellter Software auf. Selbst wenn Änderungen an diesen Programmen vorgenommen werden können, ohne den Text zu beeinträchtigen, ist es für die Entwickler einer Sprache, die von der Öffentlichkeit so herzlich begrüßt wurde, wie Java, schwierig, direkt zu sagen: „Ja, wir haben möglicherweise einen Fehler bei der Entwicklung von Version X, aber Version gemacht Y wird besser sein. " Während wir auf weitere Verbesserungen warten, müssen wir daher feststellen, dass sich die Struktur der Java-Sprache in naher Zukunft nicht wesentlich ändern wird.

Die offensichtliche Frage ist: " Wie haben Sie die Java-Sprache verbessert?". Es stellt sich heraus, dass dies nicht durch die Verbesserung der Programmiersprache selbst geschehen ist, sondern durch die radikale Änderung der Bibliotheken von Programmen, die in der Java-Sprache geschrieben sind. Sun Microsystems hat alles geändert: angefangen mit den Namen der einzelnen Bibliotheksfunktionen (um sie aussagekräftiger zu machen) und den Arbeitsmethoden für grafische Module ( Ändern der Art und Weise, wie Ereignisse behandelt werden, und teilweises Umschreiben der Arbeitsprogramme) und Beenden mit der Erstellung neuer Spracheigenschaften, z. B. Druckwerkzeuge, die nicht in Java 1.0 enthalten waren. Das Ergebnis war eine viel nützlichere Softwareplattform als alles andere vorherige Versionen Java-Sprache.

Microsoft hat ein eigenes Produkt namens J ++ veröffentlicht, das mit der Java-Sprache verwandt ist. J ++ wird von der Java Virtual Machine beim Ausführen von Bytecode interpretiert, die Sprachen haben jedoch unterschiedliche Schnittstellen zu externen Codes. J ++ - und Java-Sprachen haben fast die gleiche Syntax. Microsoft hat jedoch zusätzliche Sprachkonstrukte erstellt. Mit Ausnahme der Schnittstelle sind alle von eher zweifelhaftem Wert. Windows-API... Abgesehen von der Tatsache, dass diese Sprachen dieselbe Syntax haben, sind ihre Hauptbibliotheken (Zeichenfolgen, Dienstprogramme, Netzwerkprogrammierwerkzeuge, Multithreading-Werkzeuge, Mathematikbibliotheken usw.) im Wesentlichen gleich.

Die Grafikbibliotheken, die Benutzeroberfläche und der Remote-Objektzugriff unterscheiden sich jedoch vollständig zwischen diesen Sprachen. Microsoft unterstützt J ++ derzeit nicht mehr und entwickelt eine neue C # -Sprache, die viel mit Java gemeinsam hat, jedoch eine andere virtuelle Maschine verwendet. Dieses Buch beschreibt weder J ++ noch C #.

Vorteile der Java-Sprache

1) Einer der Hauptvorteile der Java-Sprache ist unabhängigkeit von der Plattform, auf der die Programme laufen: Der gleiche Code kann unter Betrieb ausgeführt werden windows-Systeme, Solaris, Linux, Machintosh usw.
Dies ist wirklich notwendig, wenn Programme zur späteren Ausführung unter verschiedenen Betriebssystemen über das Internet heruntergeladen werden.

2) Ein weiterer Vorteil ist, dass die Syntax der Java-Sprache ähnelt der Syntax der C ++ - Sprache, und es ist für Programmierer, die C- und C ++ - Sprachen kennen, nicht schwierig, sie zu lernen... Für Programmierer, die mit der Visual Basic-Sprache vertraut sind, ist diese Syntax möglicherweise ungewöhnlich.

Wenn Sie noch nie in C ++ programmiert haben, sind Ihnen einige der in diesem Abschnitt verwendeten Begriffe möglicherweise nicht klar. In diesem Fall können Sie es überspringen. Wenn Sie das Ende von Kapitel 6 erreicht haben, werden Ihnen diese Begriffe bekannt.

3) Auch Java - vollständig objektorientierte Sprache, noch mehr als C ++... Alle Entitäten in Java sind Objekte, mit Ausnahme einiger primitiver Typen wie Zahlen. (Da es einfach ist, komplexe Projekte mit objektorientierter Programmierung zu entwickeln, ersetzt es die ältere strukturierte Programmierung. Wenn Sie mit objektorientierter Programmierung nicht vertraut sind, finden Sie in den Kapiteln 3-6 alles, was Sie darüber wissen müssen.)

Es reicht jedoch nicht aus, einen anderen, leicht verbesserten Dialekt der C ++ - Sprache zu entwickeln. Es ist grundsätzlich wichtig, dass es einfacher ist, fehlerfreie Programme in Java als in C ++ zu entwickeln. Warum? Die Java-Entwickler haben lange darüber nachgedacht, warum in C ++ geschriebene Programme so fehleranfällig sind. Sie stellten der Java-Sprache Tools zur Verfügung, um die Möglichkeit auszuschließen, Programme zu erstellen, die die häufigsten Fehler verbergen. Zu diesem Zweck hat die Java-Sprache Folgendes ausgeführt.

4) Die Möglichkeit der expliziten Zuweisung und Freigabe von Speicher wurde ausgeschlossen.
Java-Speicher wird automatisch von der Garbage Collection zurückgefordert. Der Programmierer ist gegen Fehler im Zusammenhang mit Speichermissbrauch geschützt.

5) Es wurden echte Arrays und unzulässige Zeigerarithmetik eingeführt.
Jetzt können Programmierer aufgrund der unsachgemäßen Verwendung von Zeigern im Prinzip keine Daten mehr aus dem Speicher löschen.

6) Es wurde die Möglichkeit beseitigt, den Zuweisungsoperator mit dem Gleichheitsvergleichsoperator zu verwechseln.
Jetzt können Sie nicht einmal die if (ntries \u003d 3) -Anweisung kompilieren. ... ... (Visual Basic-Programmierer bemerken hier möglicherweise überhaupt kein Problem, da dieser Fehler die Ursache für die meisten Missverständnisse in C und C ++ ist.)

7) Mehrfachvererbung ist ausgeschlossen. Es wurde durch ein neues Konzept ersetzt - eine Schnittstelle, die aus der Sprache Objective C entlehnt wurde.
Die Schnittstelle bietet dem Programmierer fast alles, was ein Programmierer durch Mehrfachvererbung erhalten kann, während die Komplexität der Verwaltung von Klassenhierarchien vermieden wird.

Funktionen der Java-Sprache

Einfach
Interpretiert
Verteilt
Zuverlässig
Sicher
Maschinenunabhängig
Objektorientierte
Hochleistung
Multithreaded
Dynamisch
Computerarchitektur unabhängig

Einige dieser Punkte haben wir bereits im letzten Abschnitt angesprochen. In diesem Abschnitt werden wir: Zitate aus dem Java-Sprachhandbuch bereitstellen, die die Merkmale der Sprache enthüllen; Lassen Sie uns mit den Lesern unsere Gedanken zu bestimmten Eigenschaften der Sprache teilen, basierend auf unseren eigenen Erfahrungen mit der neuesten Version.

Einfach

Wir wollten ein System schaffen, das einfach zu programmieren ist, keine zusätzlichen Schulungen erfordert und die etablierten Praxis- und Programmierstandards berücksichtigt. Obwohl wir die C ++ - Sprache für diese Zwecke als ungeeignet erachteten, wurde die Java-Sprache so konzipiert, dass sie ihr so \u200b\u200bähnlich wie möglich ist, um den Zugriff auf das System zu erleichtern. In der Java-Sprache fehlen viele der selten verwendeten, obskuren und obskuren C ++ - Funktionen, die unserer Meinung nach mehr schaden als nützen.

Die Java-Syntax ist im Wesentlichen eine bereinigte Version der C ++ - Syntax. Diese Sprache enthält keine Header-Dateien, Zeigerarithmetik (und Zeiger selbst), Strukturen, Gewerkschaften, Überladung von Operatoren, virtuelle Basisklassen usw. (Die Unterschiede zwischen Java und C ++ werden in den im Buch verteilten C ++ - Hinweisen beschrieben.) Die Entwickler haben jedoch nicht versucht, alle Mängel der C ++ - Sprache zu beheben.

Beispielsweise ist die Syntax der switch-Anweisung in Java unverändert geblieben. Wenn Sie die C ++ - Sprache kennen, können Sie leicht zur Java-Syntax wechseln.
Wenn Sie normalerweise eine visuelle Programmierumgebung (wie Visual Basic) verwenden, erscheint Ihnen die Java-Sprache kompliziert.
Die Syntax sieht oft ziemlich seltsam aus (obwohl es nicht schwierig ist, die Bedeutung des Ausdrucks zu verstehen). Noch wichtiger ist, dass die Java-Sprache viel mehr Programmierung erfordert. Das Schöne an Visual Basic ist, dass es visuelle Umgebung Mit der Programmierung können Sie fast automatisch eine Anwendungsinfrastruktur erstellen. Um das gleiche Ergebnis mit der Java-Sprache zu erzielen, müssen Sie von Hand programmieren, aber am Ende haben Sie viel kürzere Programme.

Es gibt jedoch eine dritte Art von Programmierumgebung, mit der Sie Programme mithilfe der Drag & Drop-Technologie erstellen können.

Ein weiterer Aspekt der Einfachheit ist die Kürze. Eines der Ziele der Java-Sprache ist es, die Entwicklung von Programmen zu ermöglichen, die auf kleinen Maschinen völlig unabhängig ausgeführt werden können. Die Haupteinrichtungen für Dolmetscher und Klassenunterstützung sind etwa 40 KB groß. Standardbibliotheken und Threading-Tools (insbesondere der in sich geschlossene Mikrokernel) benötigen weitere 17: KB.
Das ist ein großer Erfolg. Beachten Sie jedoch, dass die GUI-Unterstützungsbibliotheken viel größer sind.

Objektorientierte

Einfach ausgedrückt ist die objektorientierte Programmierung eine Programmiertechnik, die sich auf Daten (d. H. Objekte) und die Mittel zum Zugriff auf diese konzentriert. In Analogie zur Tischlerei konzentriert sich der objektorientierte Handwerker hauptsächlich auf den Stuhl, den er herstellt, und nur sekundär interessiert er sich für die Werkzeuge, die dazu benötigt werden; Gleichzeitig denkt der nicht objektorientierte Schreiner nur an seine Werkzeuge. Die objektorientierten Eigenschaften von Java und C ++ sind im Wesentlichen gleich.

Die Objektorientierung hat sich in den letzten 30 Jahren bewährt, und ohne sie ist eine moderne Programmiersprache nicht vorstellbar. In der Tat sind die objektorientierten Funktionen der Java-Sprache mit der C ++ - Sprache vergleichbar. Der Hauptunterschied zwischen ihnen liegt im Mechanismus der Mehrfachvererbung, für den die Java-Sprache gefunden wird die beste Entscheidungsowie im Java-Metaklassenmodell.

Mit Reflection (Kapitel 5) und Object Serialization (Kapitel 12) können Sie persistente Objekte und Tools implementieren, um grafische Benutzeroberflächen aus Standardkomponenten zu erstellen.

Wenn Sie noch nie in objektorientierten Sprachen programmiert haben, lesen Sie die Kapitel 4-6 sorgfältig durch. Diese Kapitel behandeln die Grundlagen der objektorientierten Programmierung und zeigen Ihnen die Vorteile der Entwicklung komplexer Projekte gegenüber traditionellen, prozedurorientierten Sprachen wie C oder Basic.

Verteilt

Java verfügt über eine große Bibliothek von Datenübertragungsprogrammen, die auf TCP / IP (Übertragungssteuerungsprotokoll / Internetprotokoll), HTTP (Hypertext Transfer Protocol) oder FTP (File Transfer Protocol) basieren. Dateiübertragungsprotokoll). In der Java-Sprache geschriebene Anwendungen können Objekte öffnen und über das Netzwerk mit und auf sie zugreifenURLs (Uniform Resource Location) sind so einfach wie aw lokales Netzwerk.

Die Java-Sprache bietet eine leistungsstarke und bequeme Web-Erfahrung. Jeder, der jemals versucht hat, Programme für die Arbeit im Internet in anderen Sprachen zu schreiben, wird angenehm überrascht sein, wie einfach die schwierigsten Aufgaben, beispielsweise das Öffnen von Netzwerkverbindungen (Sockets-Verbindung), in Java gelöst werden. Ein eleganter Mechanismus sogenannter Servlets macht den Serverbetrieb äußerst effizient.

Servlets werden von vielen gängigen Webservern unterstützt. (Die Vernetzung wird in Band II behandelt.) Die Kommunikation zwischen verteilten Objekten in Java wird über den Mechanismus zum Aufrufen von Remotemethoden bereitgestellt (ein Thema, das auch in Band II behandelt wird).

Zuverlässig

Die Java-Sprache wurde entwickelt, um Programme zu erstellen, die in allen Situationen zuverlässig funktionieren müssen. Die Java-Sprache konzentriert sich auf die Früherkennung mögliche Fehler, dynamische Überprüfung (während der Programmausführung) und Ausnahme von Situationen, in denen Fehler auftreten können ... Der einzige signifikante Unterschied zwischen der Java-Sprache und der C ++ - Sprache ist das Java-Modell der Zeiger, das die Möglichkeit des Überschreibens des Speichers und der Beschädigung von Daten ausschließt.

Diese Eigenschaft ist auch sehr nützlich. Der Java-Compiler erkennt Fehler, die andere Sprachen nur zur Laufzeit finden. Darüber hinaus sind Programmierer, die viele Stunden lang nach einem Fehler gesucht haben, der aufgrund eines ungültigen Zeigers zu einer Speicherbeschädigung geführt hat, sehr froh, dass solche Probleme in der Java-Sprache nicht auftreten können.

Wenn Sie zuvor in einer Visual Basic- oder COBOL-Sprache programmiert haben, die keine expliziten Zeiger verwendet, verstehen Sie möglicherweise nicht, warum dies so wichtig ist. C-Programmierer haben weniger Glück. Sie benötigen Zeiger, um auf Zeichenfolgen, Arrays, Objekte und sogar Dateien zugreifen zu können. Beim Programmieren in der Sprache Visual Basic ist nichts davon erforderlich, und der Programmierer muss sich nicht um die Speicherzuordnung für diese Entitäten kümmern. Andererseits sind viele Datenstrukturen in einer Nicht-Zeiger-Sprache sehr schwierig zu implementieren. Für gängige Strukturen wie Strings und Arrays werden keine Zeiger benötigt. Die Kraft von Zeigern kommt nur dann ins Spiel, wenn Sie nicht auf sie verzichten können, beispielsweise beim Erstellen verknüpfter Listen. Der Java-Programmierer ist für immer frei von fehlerhaften Zeigern, Fehlallokationen und Speicherlecks.

Sicher

Die Java-Sprache ist für die Verwendung in einer vernetzten oder verteilten Umgebung vorgesehen. Aus diesem Grund wurde großer Wert auf Sicherheit gelegt. Mit der Java-Sprache können Sie Systeme erstellen, die vor Viren und Manipulationen geschützt sind.

In der ersten Ausgabe haben wir geschrieben: "Sag niemals nie", und wir hatten Recht. Eine Gruppe von Sicherheitsexperten an der Princeton University entdeckte die ersten Sicherheitslücken in Java 1.0 kurz nach der Veröffentlichung der ersten Version des JDK. Darüber hinaus setzten sowohl sie als auch andere Spezialisten fort und fanden in der Folge immer mehr Fehler in den Sicherheitsmechanismen aller nachfolgenden Versionen der Java-Sprache.

Positiv zu vermerken ist, dass das Java-Sprachentwicklungsteam die Nulltoleranz für Sicherheitslücken erklärt und sofort damit begonnen hat, alle im Applet-Sicherheitsmechanismus festgestellten Probleme zu beheben. Insbesondere durch die Veröffentlichung der internen Spezifikationen des Java-Interpreters hat Sun das Auffinden versteckter Sicherheitslücken erheblich erleichtert und unabhängige Experten hinzugezogen, um diese zu finden.

Dies erhöhte die Wahrscheinlichkeit, dass alle Sicherheitsfehler bald entdeckt werden. In jedem Fall ist es äußerst schwierig, das Sicherheitssystem der Java-Sprache auszutricksen. Die bisher gefundenen Fehler waren fast subtil und (relativ) klein.

Die Sicherheitswebseite von Sun befindet sich unter der folgenden URL: http://java.sun.com/sfaq/.

Hier sind einige der Situationen, die das Java-Sicherheitssystem verhindert.

1) Stapelüberlauf eines ausführbaren Programms, der durch einen berüchtigten "Wurm" verursacht wurde, der sich im Internet verbreitet.

2) Beschädigung von Speicherbereichen außerhalb des dem Prozess zugewiesenen Speicherplatzes.

3) Lesen und Schreiben lokaler Dateien mit einem sicheren Klassenladeprogramm, z. B. einem Webbrowser, der einen solchen Dateizugriff nicht zulässt.

Alle diese Sicherheitsmaßnahmen sind angemessen und funktionieren normalerweise einwandfrei, aber Diskretion schadet nie. Obwohl die bisher gefundenen Fehler alles andere als trivial waren und die Details ihrer Suche oft geheim gehalten werden, muss zugegeben werden, dass es wahrscheinlich unmöglich ist, die Sicherheit der Java-Sprache zu beweisen.

Im Laufe der Zeit wurden der Sprache neue Schutzmaßnahmen hinzugefügt. Ab Version 1.1 erschien das Konzept der digital signierten Klassen in der Java-Sprache. Wenn Sie eine digital signierte Klasse verwenden, können Sie sich des Autors sicher sein. Wenn Sie ihm vertrauen, können Sie dieser Klasse alle auf Ihrem Computer verfügbaren Berechtigungen gewähren.

Der von Microsoft vorgeschlagene alternative Codebereitstellungsmechanismus basiert auf der ActiveX-Technologie und verwendet aus Sicherheitsgründen nur digitale Signaturen. Dies reicht natürlich nicht aus - jeder Benutzer von Microsoft-Software kann bestätigen, dass Programme bekannter Hersteller häufig abstürzen, wodurch das Risiko einer Datenkorruption entsteht. Java-Sicherheit ist viel zuverlässiger als ActiveX, da sie die Anwendung vom Start an steuert und verhindert, dass sie Schaden verursacht.

Architektur unabhängig

Der Compiler generiert eine Objektdatei, deren Format nicht von der Architektur des Computers abhängt. Das kompilierte Programm kann auf beliebigen Prozessoren unter der Kontrolle des Java-Programmausführungssystems ausgeführt werden. Zu diesem Zweck generiert der Java-Compiler Bytecode-Befehle, die nicht von der spezifischen Architektur des Computers abhängen. Der Bytecode ist so konzipiert, dass er auf jeder Maschine leicht interpretiert oder im laufenden Betrieb in maschinenabhängigen Code übersetzt werden kann.

Es ist nicht neue Idee... Vor mehr als 20 Jahren verwendeten sowohl das Pascal-Implementierungssystem von Niclaus Wirth als auch UCSD Pascal dieselbe Technologie. Die Verwendung von Bytecodes bietet einen großen Gewinn bei der Programmausführung (obwohl die synchrone Kompilierung dies in vielen Fällen kompensiert). Die Java-Entwickler haben hervorragende Arbeit geleistet, um eine Reihe von Bytecode-Befehlen zu entwickeln, die bei den meisten hervorragend funktionieren moderne Computerleicht in echte Maschinenbefehle zu übersetzen.

Maschinenunabhängig

Im Gegensatz zu den Sprachen C und C ++ weist die Java-Spezifikation keine implementierungsspezifischen Aspekte auf. Sowohl die Größe der Basisdatentypen als auch die arithmetischen Operationen auf ihnen sind gut definiert.

Beispielsweise bedeutet int in Java immer eine 32-Bit-Ganzzahl. In C und C ++ kann der int-Typ entweder eine 16-Bit- oder eine 32-Bit-Ganzzahl sowie eine Ganzzahl beliebiger Größe bedeuten, wie vom Entwickler eines bestimmten Compilers ausgewählt. Die einzige Einschränkung besteht darin, dass die Größe eines int nicht kleiner sein kann als die Größe eines kurzen int mehr Größe vom Typ long int. Die feste Größe der numerischen Typen vermeidet viele Probleme, die mit dem Ausführen von Programmen auf verschiedenen Computern verbunden sind. Binärdaten werden in einem festen Format gespeichert und übertragen, wodurch auch Missverständnisse vermieden werden, die mit unterschiedlicher Bytereihenfolge auf verschiedenen Plattformen verbunden sind ("Big Endian / Little Endian" -Konflikt). Die Zeilen werden in gespeichert standardformat Unicode.

Bibliotheken, die Teil des Systems sind, definieren eine maschinenunabhängige Schnittstelle. Beispielsweise bietet die Sprache ein Fenster für abstrakte Klassen und deren Implementierungen für die Betriebssysteme Unix, Windows und Macintosh.

Jeder, der jemals versucht hat, ein Programm zu schreiben, das unter Windows, Macintosh und zehn Unix-Varianten gleich gut funktioniert, weiß, dass dies eine sehr schwierige Aufgabe ist. Die Java-Version hat einen heldenhaften Versuch unternommen, dieses Problem zu lösen, indem sie ein einfaches Toolkit bereitstellte, das allgemeine UI-Elemente an eine große Anzahl von Elementen anpasst softwareplattformen... Leider hat uns die Bibliothek, die viel Arbeit gekostet hat, nicht erlaubt, auf verschiedenen Plattformen akzeptable Ergebnisse zu erzielen. (Gleichzeitig traten in Grafikprogrammen auf verschiedenen Plattformen unterschiedliche Fehler auf.)

Dies war jedoch nur der Anfang. In vielen Anwendungen ist die Maschinenunabhängigkeit weitaus wichtiger als die Komplexität einer grafischen Benutzeroberfläche. Dies sind die Anwendungen, die von Java 1.0 profitiert haben. Das Toolkit für die grafische Benutzeroberfläche wurde jetzt vollständig überarbeitet und hängt nicht mehr von der Benutzeroberfläche auf dem Host-Computer ab. Eine neue Version aussagekräftiger und unserer Meinung nach attraktiver für den Benutzer als die vorherigen.

Interpretiert

Der Java-Interpreter kann an jeden Computer gesendet werden und Bytecode direkt darauf ausführen. Da das Bearbeiten von Links ein einfacherer Prozess ist, kann die Softwareentwicklung viel schneller und effizienter werden.

Dies mag bei der Entwicklung von Anwendungen von Vorteil sein, aber dieses Zitat ist eindeutig übertrieben. In jedem Fall ist der Java-Compiler im Java Software Development Kit (JSDK) ziemlich langsam. (Einige Compiler der dritten Art, z. B. die von IBM, sind viel schneller.) Die Neukompilierungsgeschwindigkeit ist nur ein Faktor, der die Effizienz einer Programmierumgebung kennzeichnet. Wenn Sie die Geschwindigkeit von Java mit Visual Basic-Programmierumgebungen vergleichen, werden Sie möglicherweise enttäuscht sein.

Hochleistung

Während interpretierte Bytecodes im Allgemeinen eine mehr als ausreichende Leistung aufweisen, gibt es Situationen, in denen eine noch höhere Leistung erforderlich ist. Bytecodes können im laufenden Betrieb (zur Laufzeit) in Maschinencodes für einen bestimmten Prozessor übersetzt werden, auf dem die Anwendung ausgeführt wird.

Wenn ein Interpreter zum Ausführen von Bytecodes verwendet wird, verwenden Sie nicht den Ausdruck " hochleistung"Auf vielen Plattformen ist jedoch eine andere Art der Kompilierung möglich, die durch Just-in-Time-Compiler-JITs bereitgestellt wird. Sie übersetzen den Bytecode in maschinenabhängigen Code, speichern das Ergebnis im Speicher und rufen es dann nach Bedarf auf. Dieser Ansatz wird nur einmal ausgeführt und erhöht die Arbeitsgeschwindigkeit um ein Vielfaches.

Trotz der Tatsache, dass synchrone Compiler immer noch langsamer sind als maschinenabhängige Compiler, sind sie auf jeden Fall viel schneller als Interpreter und bieten für einige Programme eine 10- oder sogar 20-fache Beschleunigung. Diese Technologie wird ständig verbessert und kann letztendlich Geschwindigkeiten erreichen, die herkömmliche Compiler niemals übertreffen können. Ein synchroner Compiler kann beispielsweise bestimmen, welcher Code häufiger ausgeführt wird, und ihn für die Ausführungsgeschwindigkeit optimieren.

MEHRFACHSTRÖMUNG

Bietet bessere Interaktivität und Programmausführung.

Wenn Sie jemals versucht haben, Multithread-Berechnungen in einer anderen Programmiersprache durchzuführen, werden Sie angenehm überrascht sein, wie einfach dies in Java ist. Java-Threads können Multiprozessorsysteme nutzen, wenn das Betriebssystem dies zulässt. Leider unterscheiden sich die Implementierungen von Streams auf den meisten Plattformen stark voneinander, und die Entwickler der Java-Sprache unternehmen keinen Versuch, eine Einheitlichkeit zu erreichen. Nur der Code zum Aufrufen von Threads bleibt für alle Computer gleich. Die Java-Sprache verschiebt die Implementierung von Multithreading auf das zugrunde liegende Betriebssystem oder die Threading-Bibliothek. (Themen werden in Band II behandelt.) Trotzdem ist es die Leichtigkeit des Multithreading, die Java für die Entwicklung von Serversoftware so attraktiv macht.

Dynamisch

Java ist in vielerlei Hinsicht dynamischer als C oder C ++. Es wurde entwickelt, um sich leicht an eine sich ständig ändernde Umgebung anzupassen. Neue Methoden und Objekte können Bibliotheken frei hinzugefügt werden, ohne Schaden zu verursachen. Die Java-Sprache erleichtert das Abrufen von Informationen über den Fortschritt eines Programms.

Dies ist sehr wichtig, wenn Sie einem bereits laufenden Programm Code hinzufügen müssen. Ein Paradebeispiel hierfür ist Code, der zur Ausführung durch einen Browser aus dem Internet heruntergeladen wird. In Java 1.0 war es nicht einfach, Informationen über den Fortschritt eines ausgeführten Programms zu erhalten, aber die aktuelle Version der Java-Sprache zeigt dem Programmierer sowohl die Struktur als auch das Verhalten der Objekte des ausgeführten Programms.
Dies ist sehr nützlich für Systeme, die Objekte während der Programmausführung analysieren müssen. Solche Systeme umfassen GUI-Builder, intelligente Debugger, Plug-Ins und Objektdatenbanken.

Java und das Internet

Die Idee ist einfach: Benutzer laden Java-Bytecodes aus dem Internet herunter und führen sie auf ihren Computern aus. Java-Programme, die in Webbrowsern ausgeführt werden, werden als Applets bezeichnet. Um das Applet verwenden zu können, benötigen Sie einen Java-fähigen Webbrowser, der Bytecodes interpretieren kann. Die Java-Sprachquelle wird von Sun lizenziert, das auf der Unveränderlichkeit sowohl der Sprache selbst als auch der Struktur ihrer Kernbibliotheken besteht. Leider ist dies in der Realität nicht der Fall. Verschiedene Versionen von Netscape- und Internet Explorer-Browsern werden unterstützt verschiedene Versionen Die Java-Sprache und einige dieser Versionen sind erheblich veraltet. Diese unglückliche Situation schafft immer mehr Hindernisse bei der Entwicklung von Applets, die die neueste Version der Java-Sprache nutzen. Um dieses Problem zu beheben, hat Sun das Java-Plug-In entwickelt, das die modernste Umgebung für die Ausführung von Java-Programmen bietet, die auf Netscape- und Internet Explorer-Browsern basieren.

Das Laden eines Applets entspricht dem Einbetten eines Bildes in eine Webseite. Das Applet wird Teil der Seite, und der Text umschließt den Platz, den es einnimmt. Der Unterschied besteht jedoch darin, dass das Bild jetzt lebendig ist. Es reagiert auf Benutzerbefehle, ändert seine aussehen und bietet Datenübertragung zwischen dem Computer, auf dem das Applet angezeigt wird, und dem Computer, auf dem das Applet ausgeführt wird.

Das Laden eines Applets entspricht dem Einfügen eines Bildes in eine Webseite. Das Applet wird Teil der Seite, und der Text umschließt den Platz, den es einnimmt. Der Punkt ist, dass das Bild "live" ist. Es reagiert auf Benutzereingaben, ändert sein Erscheinungsbild und überträgt Daten zwischen dem Computer, auf dem das Applet ausgeführt wird, und dem Computer, auf dem das Applet ausgeführt wird.

In Abb. 1.1 zeigt gutes Beispiel dynamische WebseiteDas führt komplexe Berechnungen durch und verwendet ein Applet, um Moleküle anzuzeigen. Um die Struktur des Moleküls besser zu verstehen, können Sie es drehen oder mit der Maus zoomen. Solche Manipulationen können nicht statisch implementiert werden WebseitenApplets machen dies jedoch möglich. (Dieses Applet finden Sie unter http: //jmol.sourceforge.net.)

Zahl: 1.1. Jmol Applet

Applets können verwendet werden, um einer Webseite neue Schaltflächen und Textfelder hinzuzufügen. Diese Applets werden jedoch nur langsam über die Telefonleitung geladen.

Ähnliches gilt für Dynamic HTML, HTML-Formulare (Hypertext Markup Language) oder eine Skriptsprache wie JavaScript. Natürlich waren die ersten Applets für Animationen gedacht: sich drehende Globen, tanzende Comicfiguren, phantasievolle Texte usw. Die meisten der oben genannten Funktionen können jedoch auch animierte GIFs ausführen, und dynamisches HTML in Kombination mit Skripten bietet weit mehr als nur Applets.

Aufgrund von Browser-Inkompatibilitäten und inkonsistentem Laden über langsame Netzwerkverbindungen waren Applets, die auf Webseiten abzielen, keine große Leistung. In lokalen Netzwerken (Intranets) ist die Situation völlig anders. Sie haben normalerweise keine Probleme damit verbunden durchsatz Kanal, daher ist die Ladezeit von Applets unwichtig. Im lokalen Netzwerk können Sie den gewünschten Browser auswählen oder das Java Plug-In-Programm verwenden. Mitarbeiter können ein über das Netzwerk bereitgestelltes Programm nicht an den falschen Speicherort verschieben oder falsch installieren systemadministrator Es ist nicht erforderlich, alle Clientcomputer zu umgehen und Programme auf diesen zu aktualisieren. Eine große Anzahl von Programmen, die für die Bestandsbuchhaltung, Urlaubsplanung, Reisekostenerstattung und dergleichen entwickelt wurden, wurde von vielen Unternehmen als browserbasierte Applets entwickelt.

Während wir das Buch schrieben, wechselte das Pendel wieder von Client-Programmen zu serverseitiger Programmierung. Insbesondere können Anwendungsserver die Überwachungsfunktionen der Java Virtual Machine verwenden, um den Lastausgleich automatisch durchzuführen, Datenbankverbindungen zu bündeln, Objekte zu synchronisieren, sicher herunterzufahren und neu zu laden sowie andere Prozesse, die für skalierbare Serveranwendungen erforderlich sind. die sind fast unmöglich richtig umzusetzen. So konnten Programmierer, die Anwendungen erstellten, diese komplexen Mechanismen kaufen, anstatt sie selbst zu entwickeln. Dies erhöhte die Produktivität der Programmierer - sie konzentrierten sich auf die Logik ihrer Programme, ohne von den Details des Servers abgelenkt zu werden.

DIE KLINGEL

Es gibt diejenigen, die diese Nachrichten vor Ihnen lesen.
Abonnieren Sie, um die neuesten Artikel zu erhalten.
Email
Name
Nachname
Wie willst du The Bell lesen?
Kein Spam