informationstechnik:programmierung:java

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
informationstechnik:programmierung:java [12/02/2025 08:55] – [Stärken von Java] mnsrinformationstechnik:programmierung:java [12/02/2025 10:05] (current) – [Der Weg vom Java-Code zur Maschinensprache] mnsr
Line 1: Line 1:
-1111====== Java: Eine Einführung ======+====== Java ======
  
-**Java** ist eine der bekanntesten und am weitesten verbreiteten Programmiersprachen der Welt. Seit ihrer Einführung durch **Sun Microsystems** im Jahr 1995 hat sich Java in vielen Bereichen der Softwareentwicklung etabliert, von Unternehmensanwendungen bis hin zu mobilen Apps.+**Java** ist eine der bekanntesten und am weitesten verbreiteten [[informationstechnik:programmierung:programmiersprache|Programmiersprachen]] der Welt. Seit ihrer Einführung durch **Sun Microsystems** im Jahr 1995 hat sich Java in vielen Bereichen der Softwareentwicklung etabliert, von Unternehmensanwendungen bis hin zu mobilen Apps.
  
 ===== Was ist Java? ===== ===== Was ist Java? =====
  
 Java ist eine **objektorientierte**, **plattformunabhängige** Programmiersprache. Das Motto "Write Once, Run Anywhere" beschreibt die Fähigkeit von Java-Programmen, auf verschiedenen Betriebssystemen ohne Änderungen ausgeführt zu werden. Dies wird durch die **Java Virtual Machine (JVM)** erreicht, die den Java-Bytecode interpretiert. Java ist eine **objektorientierte**, **plattformunabhängige** Programmiersprache. Das Motto "Write Once, Run Anywhere" beschreibt die Fähigkeit von Java-Programmen, auf verschiedenen Betriebssystemen ohne Änderungen ausgeführt zu werden. Dies wird durch die **Java Virtual Machine (JVM)** erreicht, die den Java-Bytecode interpretiert.
 +
 +===== Der Weg vom Java-Code zur Maschinensprache =====
 +
 +1. **Quellcode**: Der Entwickler schreibt den Code in einer .java-Datei.
 +
 +2. **Kompilierung**: Der Java-Compiler (**javac**) übersetzt den Quellcode in **[[informationstechnik:programmierung:bytecode|Bytecode]]**, der in einer .class-Datei gespeichert wird.
 +
 +3. **[[informationstechnik:programmierung:bytecode|Bytecode]]**: Dieser Bytecode ist plattformunabhängig und kann auf jeder Maschine mit einer [[informationstechnik:programmierung:java:javaRuntimeEnvironment|JVM]] ausgeführt werden.
 +
 +4. **Ausführung durch die JVM**: Die **Java Virtual Machine** interpretiert oder kompiliert den Bytecode zur Laufzeit in **[[informationstechnik:programmierung:maschinencode|Maschinensprache]]**, die vom Betriebssystem und der Hardware verstanden wird.
 +
 +Dieser Prozess ermöglicht es, dass derselbe Java-Code auf verschiedenen Plattformen ohne Änderungen ausgeführt werden kann.
  
 ===== Unterschiede zu anderen Programmiersprachen ===== ===== Unterschiede zu anderen Programmiersprachen =====
  
 **Java vs. C++**: **Java vs. C++**:
-  * Java bietet automatische **Speicherverwaltung** durch **Garbage Collection**, während C++ eine manuelle Speicherverwaltung erfordert.+  * Java bietet automatische **Speicherverwaltung** durch **[[informationstechnik:programmierung:java:garbageCollection|Garbage Collection]]**, während C++ eine manuelle Speicherverwaltung erfordert.
   * Java ist **plattformunabhängig**, C++ hingegen ist stark von der Zielplattform abhängig.   * Java ist **plattformunabhängig**, C++ hingegen ist stark von der Zielplattform abhängig.
   * In Java gibt es keine **Mehrfachvererbung** von Klassen, während C++ dies unterstützt.   * In Java gibt es keine **Mehrfachvererbung** von Klassen, während C++ dies unterstützt.
Line 20: Line 32:
  
 **Java vs. JavaScript**: **Java vs. JavaScript**:
-  * Trotz ähnlicher Namen sind Java und JavaScript **grundverschieden**. Java ist eine **kompilierte** Sprache, JavaScript eine **interpretiere** Sprache für Webentwicklung.+  * Trotz ähnlicher Namen sind Java und JavaScript **grundverschieden**. Java ist eine **kompilierte** Sprache, JavaScript eine **interpretierte** Sprache für Webentwicklung.
   * Java wird für **Server- und Backend-Entwicklung** verwendet, während JavaScript hauptsächlich im **Frontend** von Webanwendungen eingesetzt wird.   * Java wird für **Server- und Backend-Entwicklung** verwendet, während JavaScript hauptsächlich im **Frontend** von Webanwendungen eingesetzt wird.
  
Line 52: Line 64:
  
 * **Performance**: Java ist in der Regel **langsamer** als Sprachen wie C oder C++, da es auf der JVM läuft. * **Performance**: Java ist in der Regel **langsamer** als Sprachen wie C oder C++, da es auf der JVM läuft.
 +
 * **Speicherverbrauch**: Java-Anwendungen können **speicherintensiv** sein, insbesondere bei großen Projekten. * **Speicherverbrauch**: Java-Anwendungen können **speicherintensiv** sein, insbesondere bei großen Projekten.
 +
 * **Verbose Syntax**: Der Code in Java ist oft **umfangreicher** als in anderen modernen Sprachen wie Python oder Kotlin. * **Verbose Syntax**: Der Code in Java ist oft **umfangreicher** als in anderen modernen Sprachen wie Python oder Kotlin.
 +
 * **Langsame Innovationszyklen**: Im Vergleich zu neueren Sprachen wird Java manchmal als **langsamer** in der Einführung neuer Features wahrgenommen. * **Langsame Innovationszyklen**: Im Vergleich zu neueren Sprachen wird Java manchmal als **langsamer** in der Einführung neuer Features wahrgenommen.
  
Line 62: Line 77:
 ===== Weiterführende Literatur ===== ===== Weiterführende Literatur =====
  
-  * **"Effective Java" von Joshua Bloch** – Best Practices für erfahrene Entwickler. +  * **"Effective Java" von Joshua Bloch** Best Practices für erfahrene Entwickler. 
-  * **"Head First Java" von Kathy Sierra und Bert Bates** – Ein praxisorientiertes Buch für Einsteiger.+  * **"Head First Java" von Kathy Sierra und Bert Bates** Ein praxisorientiertes Buch für Einsteiger.
   * **Oracle Java Documentation**: https://docs.oracle.com/en/java/   * **Oracle Java Documentation**: https://docs.oracle.com/en/java/
- 
-===== Übungen ===== 
- 
-  * Schreiben Sie ein einfaches "Hello World"-Programm in Java und vergleichen Sie die Syntax mit Python. 
-  * Erstellen Sie eine kleine Android-App mit Java und einer anderen mit Kotlin, und vergleichen Sie die Unterschiede. 
-  * Entwickeln Sie eine Multithreading-Anwendung und untersuchen Sie die Performance im Vergleich zu C++. 
- 
  • informationstechnik/programmierung/java.1739350552.txt.gz
  • Last modified: 12/02/2025 08:55
  • by mnsr