Sie sind hier
E-Book

Einführung in Java

Für Studium, Ausbildung und Beruf

AutorKai Günster
VerlagRheinwerk Computing
Erscheinungsjahr2017
Seitenanzahl734 Seiten
ISBN9783836240970
FormatePUB
KopierschutzWasserzeichen
GerätePC/MAC/eReader/Tablet
Preis26,90 EUR

Java lernen für Ausbildung, Studium und Beruf

  • Programmierung mit Java für Studium und Beruf
  • Inkl. Übungsaufgaben mit ausführlichen Lösungen
  • Sprachgrundlagen, JavaFX-GUIs, Webanwendungen u. v. m.
Mit diesem Buch steigen Sie ohne Vorkenntnisse in Java und die objektorientierte Programmierung ein. Schritt für Schritt machen Sie sich mit der Sprache und ihren Konzepten vertraut. Sie lernen, in Algorithmen zu denken und Java sowie die vielen Werkzeuge Ihrer Plattform geschickt zu nutzen. Immer praxisnah und mit Gefühl für mögliche Verständnishürden: So werden auch professionelle Themen wie Testabdeckung, Multithreading und Servletentwicklung einsteigergerecht vermittelt. Schließlich schreiben Sie zeitgemäßen Code, der auch komplexe Software trägt.

Aus dem Inhalt:

  • Die Entwicklungsumgebung kennenlernen
  • Grundkonzepte glasklar vorgestellt
  • Sprachmittel gründlich verstehen
  • Neue Features einsetzen
  • Unit Tests und Test Driven Design
  • Datenbanken anbinden
  • In Servlet-Technologie einsteigen
  • Events einsetzen und asynchron programmieren
  • GUIs entwickeln
  • Guten Code schreiben
  • Mit Dateien und Streams arbeiten
  • In die Entwicklung von Android-Apps einsteigen


Die Fachpresse zur Vorauflage:
iX - Magazin für professionelle Informationstechnik: »Buchtipp!«

CONET Blog: »Für beinah jeden Programmierer ein Pflichtprogramm!«



Kai Günster ist Softwareentwickler, Autor eines Online-Magazins und mehrerer Fachbücher. Er ist Experte für Java-Technologien in verteilten Web-Anwendungen, HTML und JavaScript. Seine Projekterfahrung reicht von E-Government über komplexe Reisereservierungssysteme bis zur IP-Telefonie. Dabei bleibt er der Java-Plattform schon seit vielen Jahren treu, lotet immer wieder gern neue Features aus und setzt HTML5 für komfortable Web-GUIs ein. Er schreibt zum Eintauchen und Mitmachen. Seine Fachbücher werden für ihre klare Sprache, ihren Unterhaltungswert und ihre kompakten, lehrreichen Beispiele geschätzt.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

1    Einführung


Mehr als eine Programmiersprache. Das klingt wie schlechte Fernsehwerbung, und es behauptet jeder von seiner Sprache. Bei Java ist es aber keine Werbeübertreibung, sondern schlicht die Wahrheit, denn zur Plattform Java gehören mehrere Komponenten, von denen die Programmiersprache nur eine ist. In diesem Kapitel lernen Sie die Bausteine kennen, aus denen die Plattform zusammengesetzt ist, sowie eine Entwicklungsumgebung, mit der sie schnell und einfach auf der Plattform Java programmieren.

Warum diese Sprache? Das ist wohl die Frage, die jede Einführung in eine Programmiersprache so schnell wie möglich beantworten sollte. Schließlich wollen Sie, lieber Leser, wissen, ob Sie im Begriff sind, auf das richtige Pferd zu setzen.

Also, warum Java? Programmiersprachen gibt es viele. Die Liste von Programmiersprachen in der englischsprachigen Wikipedia (http://en.wikipedia.org/wiki/List_of_programming_languages) hat im Juli 2017 mehr als 650 Einträge. Selbst wenn 90 % davon keine nennenswerte Verbreitung (mehr) haben, bleiben mehr Sprachen übrig, als man im Leben lernen möchte, manche davon mit einer längeren Geschichte als Java, andere jünger und angeblich hipper als Java. Warum also Java?

Java ist eine der meistgenutzten Programmiersprachen weltweit (Quelle: http://www.tiobe.com/tiobe-index, Juni 2017). Zwar ist »weil es schon so viele benutzen« nicht immer ein gutes Argument, aber im Fall von Java gibt es sehr gute Gründe für diese Popularität. Viele davon sind natürlich Vorteile der Sprache Java selbst und der Java-Plattform – dazu gleich mehr –, aber der vielleicht wichtigste Grund ist ein externer: Java hat eine unerreichte Breite von Anwendungsgebieten. Es kommt in kritischen Geschäftsanwendungen ebenso zum Einsatz wie in Googles mobilem Betriebssystem Android. Java ist eine beliebte Sprache für serverseitige Programmierung im World Wide Web wie auch für Desktopanwendungen. In Java geschriebene Programme laufen auf fast jedem Computer, egal, ob dieser mit Linux, Windows oder Mac OS betrieben wird – und im Gegensatz zu anderen Programmiersprachen gibt es dabei nur eine Programmversion, nicht eine für jedes unterstützte System, denn Java-Programme sind plattformunabhängig.

Neben dem breiten Einsatzgebiet hat die Sprache Java auch, wie oben bereits erwähnt, innere Werte, die überzeugen. Oder besser: Die Plattform Java hat auch innere Werte, denn zu Java gehört mehr als nur die Sprache.

1.1    Was ist Java?


Die Programmiersprache Java, um die es in diesem Buch hauptsächlich gehen soll, ist nur ein Bestandteil der Java-Plattform. Zur Plattform gehören neben der Sprache die Laufzeitumgebung, das Programm, das Java-Programme ausführt, und eine umfangreiche Klassenbibliothek, die in jeder Java-Installation ohne weiteren Installationsaufwand zur Verfügung steht. Betrachten wir die einzelnen Teile der Java-Plattform etwas näher.

1.1.1    Java – die Sprache


Das Hauptmerkmal der Programmiersprache Java ist, dass sie objektorientiert ist. Das ist heute nichts Besonderes mehr, fast alle neueren Programmiersprachen folgen diesem Paradigma. Aber als Java entstand, im letzten Jahrtausend, fand gerade der Umbruch von prozeduraler zu objektorientierter Programmierung statt. Objektorientierung bedeutet in wenigen Worten, dass zusammengehörige Daten und Operationen in einer Datenstruktur zusammengefasst werden. Objektorientierung werde ich in Kapitel 5, »Klassen und Objekte«, und Kapitel 6, »Objektorientierung«, eingehend beleuchten.

Viele Details der Sprache hat Java vom prozeduralen C und dessen objektorientierter Erweiterung C++ geerbt. Es wurde aber für Java vieles vereinfacht, und häufige Fehlerquellen wurden entschärft – allen voran das Speichermanagement, für das in C und C++ der Entwickler selbst verantwortlich ist. Das Resultat ist eine Sprache mit einer sehr einfachen und einheitlichen Syntax ohne Ausnahmen und Sonderfälle. Dieser Mangel an »syntaktischem Zucker« wird gerne kritisiert, weil Java-Code dadurch eher etwas länger ist als Code in anderen Sprachen. Andererseits ist es dadurch einfacher, Java-Code zu lesen, da man im Vergleich zu diesen Sprachen nur eine kleine Menge an Sprachkonstrukten kennen muss, um ihn zu verstehen.

Aber Java ist eine lebendige Sprache, die mit neuen Versionen gezielt weiterentwickelt wird, um für bestimmte Fälle ebendiesen Zucker doch zu bieten. In Version 8 von Java hielt eine Erweiterung Einzug in die Sprache, nach der die Entwickler-Community seit Jahren gefleht hatte: Lambda-Ausdrücke (siehe Kapitel 11). Dabei handelt es sich um ein neues Sprachkonstrukt, das die syntaktische Einfachheit der Sprache nicht zerstört, sondern an vielen Stellen klareren, verständlicheren Code möglich macht. Ihre Einführung sind ein gutes Beispiel dafür, dass die Entwickler der Sprache Java auf die Wünsche ihrer Community eingehen, dabei aber keine überstürzten Entscheidungen treffen – eine gute Kombination für langfristige Stabilität.

1.1.2    Java – die Laufzeitumgebung


Traditionell fallen Programmiersprachen in eine von zwei Gruppen: kompilierte und interpretierte Sprachen. Bei kompilierten Sprachen, zum Beispiel C, wird der Programmcode einmal von einem Compiler in Maschinencode umgewandelt. Dieser ist dann ohne weitere Werkzeuge ausführbar, aber nur auf einem Computer mit der Architektur und dem Betriebssystem, für die das Programm kompiliert wurde.

Im Gegensatz dazu benötigen interpretierte Sprachen wie Perl oder Ruby ein zusätzliches Programm, den Interpreter, um sie auszuführen. Die Übersetzung des Programmcodes in Maschinencode findet erst genau in dem Moment statt, in dem das Programm ausgeführt wird. Wer ein solches Programm nutzen möchte, muss den passenden Interpreter auf seinem Computer installieren. Dadurch sind Programme in interpretierten Sprachen auf jedem System ausführbar, für das der Interpreter vorhanden ist. Interpretierte Sprachen stehen aber im Ruf, langsamer zu sein als kompilierte Sprachen, da das Programm zur Laufzeit noch vom Interpreter analysiert und in Maschinencode umgesetzt werden muss.

Java beschreitet einen Mittelweg zwischen den beiden Ansätzen: Java-Code wird mit dem Java-Compiler javac kompiliert, dessen Ausgabe ist aber nicht Maschinencode, sondern ein Zwischenformat, der Java-Bytecode. Man braucht, um ein Java-Programm auszuführen, immer noch einen Interpreter, aber die Umsetzung des Bytecodes in Maschinencode ist weniger aufwendig als die Analyse des für Menschen lesbaren Programmcodes. Der Performance-Nachteil wird dadurch abgeschwächt. Dennoch stehen Java-Programme manchmal in dem Ruf, sie seien langsamer als Programme in anderen Sprachen, die zu Maschinencode kompiliert werden. Dieser Ruf ist aber nicht mehr gerechtfertigt, ein Performance-Unterschied ist im Allgemeinen nicht feststellbar.

Der Interpreter, oft auch als Java Virtual Machine (JVM) bezeichnet, ist ein Bestandteil der Java Laufzeitumgebung (Java Runtime Environment, JRE), aber die Laufzeitumgebung kann mehr. Sie übernimmt auch das gesamte Speichermanagement eines Java-Programms. C++-Entwickler müssen sich selbst darum kümmern, für alle ihre Objekte Speicher zu reservieren, und vor allem auch darum, ihn später wieder freizugeben. Fehler dabei führen zu sogenannten Speicherlecks, also zu Fehlern, bei denen Speicher zwar immer wieder reserviert, aber nicht freigegeben wird, so dass das Programm irgendwann mangels Speicher abstürzt. In Java muss man sich darüber kaum Gedanken machen, die Speicherfreigabe übernimmt der Garbage Collector. Er erkennt Objekte, die vom Programm nicht mehr benötigt werden, und gibt ihren Speicher automatisch frei – Speicherlecks sind dadurch zwar nicht komplett ausgeschlossen, aber fast. Details zum Garbage Collector finden Sie in Kapitel 18, »Hinter den Kulissen«.

Zur Laufzeitumgebung gehört außerdem der Java-Compiler HotSpot, der kritische Teile des Bytecodes zur Laufzeit in »echten« Maschinencode kompiliert und Java-Programmen so noch einen Performance-Schub gibt.

Implementierungen des Java Runtime Environments gibt es für alle verbreiteten Betriebssysteme, manchmal sogar mehrere. Die Implementierung der Laufzeitumgebung ist natürlich die von Oracle (ursprünglich Sun Microsystems, die aber im Jahre 2010 von Oracle übernommen wurden), aber daneben gibt es weitere, zum Beispiel von IBM, als Open-Source-Projekt (OpenJDK) oder bis Java 6 von Apple. Da das Verhalten der Laufzeitumgebung streng standardisiert ist, lassen sich Programme fast immer problemlos mit einer beliebigen Laufzeitumgebung ausführen. Es gibt zwar Ausnahmefälle, in denen sich Programme in verschiedenen Laufzeitumgebungen unterschiedlich verhalten, aber sie sind erfreulich selten.

Android

Die von Android verwendete ART-VM steht (wie ihr Vorgänger Dalvik) abseits der verschiedenen JRE-Implementierungen: Die verwendete Sprache ist zwar Java, aber der Aufbau der Laufzeitumgebung ist von Grund auf anders, und auch der vom Compiler erzeugte Bytecode ist ein anderer. Auch die Klassenbibliothek (siehe nächster...

Blick ins Buch

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

Programmieren lernen in PHP 5

E-Book Programmieren lernen in PHP 5
Format: PDF

Mit der Version 5 erreicht PHP einen bemerkenswerten Reifegrad, der PHP zu einer festen Größe in der Welt der Webprogrammierung macht. Gerade die leichte Erlernbarkeit macht PHP zur idealen…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Weitere Zeitschriften

Atalanta

Atalanta

Atalanta ist die Zeitschrift der Deutschen Forschungszentrale für Schmetterlingswanderung. Im Atalanta-Magazin werden Themen behandelt wie Wanderfalterforschung, Systematik, Taxonomie und Ökologie. ...

Computerwoche

Computerwoche

Die COMPUTERWOCHE berichtet schnell und detailliert über alle Belange der Informations- und Kommunikationstechnik in Unternehmen – über Trends, neue Technologien, Produkte und Märkte. IT-Manager ...

Deutsche Tennis Zeitung

Deutsche Tennis Zeitung

Die DTZ – Deutsche Tennis Zeitung bietet Informationen aus allen Bereichen der deutschen Tennisszene –sie präsentiert sportliche Highlights, analysiert Entwicklungen und erläutert ...

die horen

die horen

Zeitschrift für Literatur, Kunst und Kritik."...weil sie mit großer Aufmerksamkeit die internationale Literatur beobachtet und vorstellt; weil sie in der deutschen Literatur nicht nur das Neueste ...

F- 40

F- 40

Die Flugzeuge der Bundeswehr, Die F-40 Reihe behandelt das eingesetzte Fluggerät der Bundeswehr seit dem Aufbau von Luftwaffe, Heer und Marine. Jede Ausgabe befasst sich mit der genaue Entwicklungs- ...

filmdienst#de

filmdienst#de

filmdienst.de führt die Tradition der 1947 gegründeten Zeitschrift FILMDIENST im digitalen Zeitalter fort. Wir begleiten seit 1947 Filme in allen ihren Ausprägungen und Erscheinungsformen.  ...