Grundlagen Java 1 PDF

Document Details

Uploaded by Deleted User

European University of Applied Sciences in Rhein/Erft

Robert Zeranski

Tags

Java Programming Computer Science Fundamentals

Summary

These are the notes for a Java programming course. The notes cover various topics, such as the history of the Java development kit and deployment process. It also discusses some pros and cons in relation to different programming languages.

Full Transcript

Programmierung Java 1 Grundlagen Dr. Robert Zeranski DAKO GmbH, Jena Warum ist Java so populär? Dr. Robert Zeranski [email protected] Programmierung Java 1 1 Warum ist Java so populär? Quelle: https://pypl.github.io/PYPL.html Dr. Robert Zeranski robert.zeranski@fh-erf...

Programmierung Java 1 Grundlagen Dr. Robert Zeranski DAKO GmbH, Jena Warum ist Java so populär? Dr. Robert Zeranski [email protected] Programmierung Java 1 1 Warum ist Java so populär? Quelle: https://pypl.github.io/PYPL.html Dr. Robert Zeranski [email protected] Programmierung Java 1 2 Sprache vs. Plattform I Dr. Robert Zeranski [email protected] Programmierung Java 1 3 Sprache vs. Plattform II Dr. Robert Zeranski [email protected] Programmierung Java 1 4 JDK vs. JRE JDK: Java Development Kit - Ist ein SDK: Software Development Kit - Enthält alle Programme und Bibliotheken für die Entwicklung von Java- Anwendungen JRE: Java Runtime Enviroment - Enthält nur die Programme, welche für die Ausführung von Java- Anwendungen nötig sind - Ist sozusagen die JVM: Java Virtual Machine Dr. Robert Zeranski [email protected] Programmierung Java 1 5 Java Entwicklungsprozess Dr. Robert Zeranski [email protected] Programmierung Java 1 6 Java Virtual Machine Pro - Plattformübergreifend - write once, run everywhere - kann mit anderen Sprachen kombiniert werden, die in Bytecode übersetzt werden können, z.B. Groovy, Scala, Kotlin, JRuby, Jython - Garbage Collector Contra - Interpreter für den Bytecode → Performance? - Just-In-Time Compiler für kritische Codeabschnitte - Real-Time-Applications oder Performance-kritische Applikationen nur bedingt umsetzbar (z.B. aufwändige 3D-Spiele, sehr große Datenmengen in Echtzeit verarbeiten & analysieren) Dr. Robert Zeranski [email protected] Programmierung Java 1 7 Stärken und Schwächen Stärken Schwächen - objektorientiert - keine Mehrfachvererbung - unabhängig von der Archtitektur - keine Überladung von - sicher und robust Operatoren - Garbage Collection → - keine Pointer-Arithmetik Speichermanagement built-in - keine dynamische - verteiltes System & Multithreaded Typisierung - performant - kein direkter Speicherzugriff - dynamische Bindung Dr. Robert Zeranski [email protected] Programmierung Java 1 8 Einsatzgebiete Server Applikationen, verteilte Systeme Web Applikationen - Jira & Confluence - Gmail - Twitter - Jenkins - Netflix - ElasticSearch Desktop Applikationen - Eclipse IDE, NetBeans IDE Mobile Applikationen - Minecraft - LinkedIn - Spotify Applets - Uber - Produkt-Konfiguratoren (Porsche) - Online Banking Dr. Robert Zeranski [email protected] Programmierung Java 1 9 C vs. Java: Hello World Dr. Robert Zeranski [email protected] Programmierung Java 1 10 Hello World in Java Dr. Robert Zeranski [email protected] Programmierung Java 1 11 Geschichte I JDK 1.0 01/1996 Sprache für das Web - Java Applets im Browser Betriebssystemunabhängig - Multithreading möglich Viele Kinderkrankheiten - Date-Klasse oder Stack erben von Vector Dr. Robert Zeranski [email protected] Programmierung Java 1 12 Geschichte II JDK 1.0 JDK 1.1 01/1996 02/1997 - JIT Compiler für Windows - Innere Klassen → Code als Daten - ObjectStreams (IO) - Reflection API Dr. Robert Zeranski [email protected] Programmierung Java 1 13 Geschichte III JDK 1.0 JDK 1.1 JDK 1.2 01/1996 02/1997 12/1998 - Collections (List, Map, Set) - Swing Bibliothek für grafische Oberflächen - JIT Compiler für alle Plattformen - Java Browser Plugin Dr. Robert Zeranski [email protected] Programmierung Java 1 14 Geschichte IV JDK 1.0 JDK 1.1 JDK 1.2 JDK 1.3 01/1996 02/1997 12/1998 05/2000 - JUnit Framework - Hotspot Compiler → Performance! Dr. Robert Zeranski [email protected] Programmierung Java 1 15 Geschichte V JDK 1.0 JDK 1.1 JDK 1.2 JDK 1.3 JDK 1.4 01/1996 02/1997 12/1998 05/2000 02/2002 - Reguläre Ausdrücke - Non-Blocking IO - Logging API - Neue Sprachen für die JVM → Groovy, Scala, JRuby Dr. Robert Zeranski [email protected] Programmierung Java 1 16 Geschichte VI JDK 1.0 JDK 1.1 JDK 1.2 JDK 1.3 JDK 1.4 JDK 1.5 01/1996 02/1997 12/1998 05/2000 02/2002 09/2004 - Generics - Enums (Aufzählungstypen) - varargs (Methoden mit beliebig vielen Parametern) - for-each Schleifen Dr. Robert Zeranski [email protected] Programmierung Java 1 17 Geschichte VII JDK 1.0 JDK 1.1 JDK 1.2 JDK 1.3 JDK 1.4 JDK 1.5 01/1996 02/1997 12/1998 05/2000 02/2002 09/2004 - Optimierungen des Garbage Collectors, der HotSpot Engine und der JVM - Unterstützung von Skript-Sprachen wie JavaScript auf der JVM → 2010 wird Sun von Oracle übernommen! JDK 1.6 12/2006 Dr. Robert Zeranski [email protected] Programmierung Java 1 18 Geschichte VIII JDK 1.0 JDK 1.1 JDK 1.2 JDK 1.3 JDK 1.4 JDK 1.5 01/1996 02/1997 12/1998 05/2000 02/2002 09/2004 - Strings in switch-Anweisungen - automatische Ressourcenverwaltung in try-Blöcken und mehrere Exceptions pro catch-Block - Diamond-Operator für einfachere Handhabung von Generics - neue File API JDK 1.6 JDK 1.7 12/2006 07/2011 Dr. Robert Zeranski [email protected] Programmierung Java 1 19 Geschichte IX JDK 1.0 JDK 1.1 JDK 1.2 JDK 1.3 JDK 1.4 JDK 1.5 01/1996 02/1997 12/1998 05/2000 02/2002 09/2004 - Lamda-Ausdrücke → Code als Daten behandeln!!! - Streams API - neue Date und Time API Java 8 - Default Methoden in Interfaces JDK 1.6 JDK 1.7 JDK 1.8 12/2006 07/2011 07/2014 Dr. Robert Zeranski [email protected] Programmierung Java 1 20 Geschichte X JDK 1.0 JDK 1.1 JDK 1.2 JDK 1.3 JDK 1.4 JDK 1.5 01/1996 02/1997 12/1998 05/2000 02/2002 09/2004 JDK 1.6 JDK 1.7 JDK 1.8 JDK 9 JDK 10 JDK 11 12/2006 07/2011 07/2014 09/2017 03/2018 09/2018 JDK 12 JDK 13 JDK 14 JDK 15 JDK 16 JDK 17 JDK 18 JDK 19 JDK 20 JDK 21 03/2019 09/2019 03/2020 09/2020 03/2021 09/2021 03/2022 09/2022 03/2023 09/2023 Dr. Robert Zeranski [email protected] Programmierung Java 1 21 Wie geht es weiter? Dr. Robert Zeranski [email protected] Programmierung Java 1 22 (Slow) Progress → Basics I: Datentypen und Conventions → Basics II: Bedingungen, Verzweigungen, Schleifen → Advanced I: Klassen und Objekte (Object Oriented Programming) → Advanced II: Interfaces und Generics (even more OOP) → Tooling: Logging und Unit-Testing Dr. Robert Zeranski [email protected] Programmierung Java 1 23

Use Quizgecko on...
Browser
Browser