Definition „Java (Programmiersprache)“

Was ist Java-Programmierung?

| Autor / Redakteur: Christian Rentrop / Stephan Augsten

Java ist DIE Programmiersprache, um plattformunabhängige Anwendungen zu entwickeln.
Java ist DIE Programmiersprache, um plattformunabhängige Anwendungen zu entwickeln. (Bild: JuralMin - Pixabay.com (bearbeitet) / CC0)

Mit der Programmiersprache Java lassen sich plattformunabhängige Anwendungen entwickeln. Nur ein Texteditor, das Java SE Development Kit, kurz JDK, mit Java-Laufzeitumgebung und ein wenig Entwicklungsgeschick werden dafür benötigt.

Unter allen Programmiersprachen zählt Java wohl zu den bekanntesten: Die objektorientierte Programmiersprache ermöglicht es, plattformunabhängige Anwendungen zu entwickeln. Zum Ausführen der Programme wird kein spezielles Betriebssystem sondern nur eine Softwareumgebung benötigt: Die Java-Laufzeitumgebung (Java Runtime Environment, JRE) von Sun Microsystems.

Da die Java-Umgebung auf den meisten Computern vorinstalliert ist oder User sie mit wenigen Klicks kostenlos auf der Java-Website herunterladen können, ist die mögliche Zielgruppe groß. Dementsprechend ist Java als Programmiersprache die erste Wahl für plattformunabhängige Anwendungen.

Java-Anwendungen laufen sowohl unter Windows als auch unter MacOS, den verschiedenen Linux- und Unix-Derivaten und sogar im Webbrowser – und zwar auch auf verschiedenen Prozessor-Unterbauten, egal ob x86, ARM oder PowerPC. Dabei ist Java stark an C++ angelehnt und damit für Entwickler, die sich bereits mit dieser Sprache befasst haben, leicht zu erlernen.

Die virtuelle Maschine macht’s möglich

Realisiert wird die Unabhängigkeit durch die Java Virtual Machine (Java VM), die ein Teil der JRE ist: Diese virtuelle Maschine funktioniert ähnlich wie ein „echtes“ Betriebssystem mit eigenen Bibliotheken und Routinen. Durch die Java-Laufzeitumgebung, die ihrerseits an das jeweilige Host-Betriebssystem angepasst ist, ist sie jedoch immer gleich.

Programmieren mit Java bedeutet daher, auf einer Art „Java-PC“ mit einem „Java-Betriebssystem“ zu entwickeln – völlig egal, ob es sich dabei in Wirklichkeit um einen PC, Mac, Server oder ein Mobilsystem handelt. Der Quellcode – und auch die kompilierte Fassung in Form eines Java-Programms in Byte-Code – ist dabei auf allen Plattformen identisch und wird von der Java-VM auf den jeweiligen Hardware- oder Software-Unterbau, auf dem die Java-Laufzeitumgebung aufsetzt, übertragen.

Will man eine Java-Anwendung erstellen, benötigt man einen Texteditor wie jEdit, Vim oder Notepad++ sowie zum Kompilieren das Java SE Development Kit (JDK). Letzteres beinhaltet auch bereits die Java-Laufzeitumgebung JRE.

Übrigens: Java sollte nicht mit Javascript verwechselt werden, hierbei handelt es sich um eine deutlich abgespeckte Skriptsprache für Websites, die im Browser ausgeführt werden kann. Mit dem „echten“ Java hat sie nur wenig zu tun.

Die Vorteile der Software-Entwicklung mit Java

Als objektorientierte Programmiersprache (OOP) verwendet Java wie C++ in der Programmierung zwei Bestandteile: Einerseits ist da der eigentliche Programmiercode mit den integrierten Funktionen, andererseits die Datenelemente (Objekte).

Durch diese Trennung in Objekte und Objektklassen sowie die eigentlichen Operationen wird die Programmierung deutlich erleichtert: Einmal erstellte Objekte und Klassen lassen sich jederzeit wiederverwenden. Standardmäßig liefert Java in der Virtual Machine eine Reihe typischer Objekte und Klassen, sogenannte Standardobjekte, mit, darunter Bibliotheken für die Grafik- oder Tonausgabe, die von der Laufzeitumgebung an das jeweilige Basissystem durchgereicht werden.

Damit liegt der nächste Vorteil von Java auf der Hand: Die Basis der virtuellen Java-Maschine sorgt dafür, dass einmal erstellter Programmcode in jeder versionsgleichen oder neueren Java-VM läuft. Dadurch müssen Entwickler nur eine Programmversion erstellen, ohne dabei auf das zugrundeliegende Betriebssystem zu achten: Ein einmal erstelltes Java-Programm läuft plattformunabhängig auf jedem System, auf dem die Java-Laufzeitumgebung installiert ist. Und da auch Webbrowser Java verwenden, steht auch dem Einsatz als Webanwendung nichts im Wege.

Die automatische Speicherverwaltung (Garbage Collection) prüft als unabhängiges Programm innerhalb der Java-Laufzeitumgebung regelmäßig, ob belegte Speicherbereiche überhaupt noch benötigt werden und räumt diese gegebenenfalls frei. Der Entwickler muss sich also nicht um die Implementierung entsprechender Routinen kümmern. Womit dann auch gleich ein Nachteil der Java-Programmierung zutage gefördert wird.

Leider gibt es auch Nachteile

Einer der größten Kritikpunkte an Java im Zusammenhang mit dem Garbage Collector ist, dass einerseits die Programmausführung durch ihn verlangsamt werden kann, andererseits der Entwickler keinen Einfluss darauf hat, wann sie ausgeführt wird. Durch die Verwendung des VM-Unterbaus ist die Entwicklung von Echtzeitanwendungen, bei denen es auf besonders präzise zeitliche Ausführung von Befehlen ankommt, nicht geeignet.

Wenn der Garbage Collector einspringt, kann es zu Verzögerungen kommen, die der Entwickler nicht vorhersehen kann. Dadurch ist Java tabu für sicherheitsrelevante Steuerungssoftware, etwa von Industrieanlagen, und auch nicht für andere zeitkritische Anwendungen geeignet.

Performance bei Java-Anwendungen optimieren

Leistungseinbrüche reduzieren

Performance bei Java-Anwendungen optimieren

12.06.17 - Gut entwickelte Java-Anwendungen bieten eine optimale Leistung, was im Internet auf einer Vielzahl von Webseiten oder Cloud-Apps zu sehen ist. Allerdings müssen Engpässe zuverlässig behoben werden. lesen

Das VM-Modell ist, trotz aller Vorteile in Sachen Plattformunabhängigkeit, auch einer der größten Nachteile von Java: Einerseits sorgt es durch den Unterbau für eine gewisse Langsamkeit der Programmausführung. Jeder, der bereits ein Java-Programm verwendet hat, wird bemerkt haben, dass Java-Programme im Vergleich zu nativ in C++ oder anderen Sprachen programmierter Software relativ langsam sind.

Durch das VM-Modell haben Entwickler außerdem keinen direkten Zugriff auf Systemhardware: Sie müssen diese via Runtime Environment ansprechen, die seinerseits zwischen dem Java-Code und dem Rechner vermittelt. Das sorgt einerseits für Verzögerungen und verhindert andererseits, das vom JRE nicht unterstützte Hardwarefunktionen für Java unerreichbar sind. Immerhin generiert das auch gleich einen Vorteil: Stürzt eine Java-App ab, reißt sie normalerweise bestenfalls das Runtime Environment mit, nicht jedoch den ganzen Rechner.

Fazit: Für welche Zwecke ist Java geeignet?

Insgesamt ist Java also eine hervorragende Option zur Programmierung von Anwendungen, die plattformunabhängig sein sollen, ohne dabei zu hardwarenah zu agieren. Im Unternehmensumfeld bedeutet das, dass Java eine hervorragende Möglichkeit bietet, Anwendungen ohne Bindung an ein bestimmtes Betriebssystem zu bauen.

Auf der anderen Hand kann die Java-Suite als zusätzliche Drittanbieter-Software mit großer Verbreitung und hoher Update-Frequenz aber auch ein Sicherheitsrisiko darstellen, deren Einsatz auf sicherheitsrelevanten Rechnern möglicherweise vermieden werden muss.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

Rapid Prototyping und Low-Code-Entwicklung

Kundenerlebnis in Eigenregie

Rapid Prototyping und Low-Code-Entwicklung

Rapid Prototyping erlaubt es, einen Software-Prototypen direkt mit Hilfe so genannter Low-Code-Plattformen zum produktionsreifen Endprodukt weiterentwickeln. Das Prinzip: Stets nah am Problem und in Zusammenarbeit mit dem Kunden. lesen

Warum Python beliebter ist als je zuvor

Programmiersprachen-Klassiker

Warum Python beliebter ist als je zuvor

Die Geburtsstunde der Programmiersprache „Python“ liegt schon einige Zeit zurück. Dennoch haben die Nutzerzahlen nie so stark geschwankt, wie wir es bei anderen Sprachen beobachten konnten. Warum ist das so? lesen

PHP-Tools für Entwickler

Programmieren mit PHP, Teil 9

PHP-Tools für Entwickler

Für PHP gibt es eine Reihe nützlicher Werkzeuge, mit denen Entwickler einfacher Programme schreiben und mit PHP arbeiten können. Neben Entwicklungsumgebungen und Editoren stellen wir in diesem Beitrag auch andere Zusatztools vor. lesen

10 Open-Source-Tools für jedes Testszenario

Apps und Anwendungen aller Art analysieren

10 Open-Source-Tools für jedes Testszenario

Ob einfacher Syntax-Test für Skripte oder aufwändiger Blackbox-Test für komplexe Web-Anwendungen: Mit den passenden Tools geht das Testing flott und mit Freude von der Hand. Hier zeigen wir zehn Open-Source-Werkzeuge, die man kennen sollte. lesen

Projekt Eirini bringt Cloud Foundry Apps in Kubernetes-Cluster

Ankündigungen des Cloud Foundry North American Summit 2019

Projekt Eirini bringt Cloud Foundry Apps in Kubernetes-Cluster

Zum North American Summit 2019 haben zahlreiche Mitglieder der Cloud Foundry Foundation ihre Neuerungen angekündigt, darunter auch Technologievorschauen für das Projekt Eirini. Mit Accenture und HCL wurden zudem erste zertifizierte Systemintegratoren vorgestellt. lesen

Wege zur App – nativ, hybrid oder fürs Web

Abkürzungen erwünscht

Wege zur App – nativ, hybrid oder fürs Web

Um Apps für Android und iOS zu erstellen, gibt es mittlerweile sehr viele Ansätze. Eine Systematisierung ist hilfreich, um sich im technischen Dschungel zurechtzufinden. Ebenso entscheidend ist es, wie effektiv die jeweilige Vorgehensweise ist, denn die Time-To-Market ist oft entscheidend. Hier können plattformübergreifende Techniken punkten. lesen

10 Tipps für die DevSecOps-Strategie

Sichere Entwicklungsprozesse in agilen Umgebungen

10 Tipps für die DevSecOps-Strategie

Agile Entwicklung und DevOps haben zwar die Software-Entwicklung und -Bereitstellung beschleunigt, doch darunter leidet mitunter die Sicherheit. Wenn die Qualitätssicherung nicht Schritt halten kann, entsteht fehlerhafter und anfälliger Code. Checkmarx gibt 10 Tipps für die DevOps-Strategie. lesen

Google fordert Play Developer API Version 3

Schnittstellen-Update bis Dezember erforderlich

Google fordert Play Developer API Version 3

Android-App-Entwickler, die ihre Anwendungen über Google Play veräußern wollen, müssen noch in diesem Jahr ihre Google Play Developer API auf Version 3 aktualisieren. Benutzer der ersten API-Version müssen dabei ein wenig mehr Hand anlegen. lesen

Was ist Dependency Injection?

Definition „DI“

Was ist Dependency Injection?

Der Begriff Dependency Injection, kurz DI, steht in direktem Zusammenhang mit der objektorientierten Programmierung. Objekte oder Klassen erhalten die Zuweisung ihrer Abhängigkeiten durch Aufruf spezifischer Methoden von einer externen Instanz. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44433730 / Definitionen)