Software Engineering (Fach) / Java (Lektion)

In dieser Lektion befinden sich 55 Karteikarten

TINF15 4. Semester

Diese Lektion wurde von mario439 erstellt.

Lektion lernen

  • Was war die Motivation für Java? - Notwendigkeit plattformunahängiger Programmierbarkeit
  • Was ist ein Nachrichtenverarbeitungsmodell? Es gibt keine Funktionen mit Rückgabewert, sondern Nachrichten,die als Methoden implementiert sind und eventuell eine Antwort liefern
  • Was ist eine Klasse? Definition Objekte gleicher Struktur
  • Was sind Instanzen? Sind die „eigentlichen Objekte“ und damit individuelle Ausprägungen ihrer Klassen
  • Was ist Vererbung? Klassen können eine gemeinsame Oberklasse haben. Vererbt werdenVariablendefinitionen und Methoden
  • Was ist Datenkapselung? Variablen eines Objekts können für interne Zwecke „versteckt“ werden (‚private‘-Deklaration)
  • Nenne 3 allgemeine Eigenschaften von objektorientierter Programmierung Gut für alle AnwendungssystemtypenSchlecht geeignet für ProzessdatenverarbeitungSchlecht geeignet für hardwarenahe Programmierung
  • Was versteht man unter einer Virtuelen Maschine in Java ? Ist Teil der JRE, der für die Ausführung des Java Bytecodes zuständig ist Aufgaben-       Klassen laden-       Speicherverwaltung
  • Beschreibe die Geschichte von Java von 1991 bis 2014 1991 Project "Green" Prototyp "Star 7" in C++ -> Oak -> Java 1994 alternativer Internetbrowser "Hot Java" (Applet Erfindung) 1995 Javascript in Netscape 2.0 1998/99 Java Version 2.0 (JDK 1.2) 2006 Java 6 2014 Java 8
  • Welche Nachteile haben Traditionelle Programmiersprachen wie C? (Nimm Bezug auf den Compiler) Quelltexte (.c Dateien) werden auf verschiedenen Compilern für da jeweilige Betriebssystem in ein Binärfile compiliert. Binärcode ist zwischen den Plattformen nicht austauschbar! unterschiedliche Bitgrößen bei z.B. „int“
  • Beschreibe die Compilierung eines Java Programms Quelltexte (.java Dateien) werden in Compilern für das jeweilige Betriebssystem kompiliert. Der entstandene Java Byte Code ist dann plattformunabhängig Für jedes Betriebssystem gibt es einene Virtuelle Maschine, die den Java Byte Code ausführen kann.
  • Nenne 4 Features von Java plattformunabhöngig objektorientiert keine Zeiger automatisches Speichermanagement (garbage collector)
  • Wie sind Java Ressourcen organisiert? in Packages, die .class Dateien enthalten Packages sind schachtelbar Der Class Loader der Virtuelle Maschine lädt die class Files beim Ausfürhren
  • Welchs Vorbild haben JAR Archive? TAR aus Unix
  • Nenne 2 Eigenschaften von JAR Archiven werden in jedeme JDK mitgeliefert Verzeichnisstruktur bleibt erhalten
  • Was bewirkt die package Anweisung? macht eine Klasse weltweit eindeutig identifizierbar verhindert unlautere Benutzung von „Test.class“ Klassen ohne „package“-Anweisung stehen im „default package“
  • Was wird zum Entwickeln von Java Anwendungen zwingend benötigt? Java Development Kit (JDK incl. JRE)
  • Was wird zum ausführen von Java Anwendungen benötigt? Java Runtime Environment (JRE)
  • Wie heißt die Klasse, in der Funktionen und Variablen zur Interaktion mit dem Betriebssystem implementiert sind? System
  • Wie werden Strings vergleichen? str1.equals(str2)
  • Beschreibe die Problematik, die bei Objekt vergleichen auftritt Falls die Instanz eines Objektes einer Variable vom selben Typ zugewiesen wird beinhalten beide Variablennamen die selbe Instaz des Objektes. Es muss auf Gleicheit oder Identität geprüft werden Bsp:String s1 = new String("Hallo");String s2;s2 = s1;if(s1 == s2)         // true...
  • Worauf ist bei mehrmaliger Vererbung in Java zu achten? Mehrfachvererbungen sind nicht erlaubt!!!
  • Mit welcher Methode kann nach Vererbung der Konstruktor der Elternklasse aufgerufen werden? Im Konstruktor der Kindklasse die Methode super(); aufrufen
  • Was bedeutet dar Qualifier final? Overriding nicht möglich
  • Was bedeutet dar Qualifier synchronized? Für Methoden mit kritischen Abschnitten
  • Was bedeutet dar Qualifier static? Methode ist ohne Instanz der Klasse möglich
  • Nenne 1 Vorteil und 2 Nachteile von Arrays VorteilMan kann mit for-Schleifen arbeiten NachteileAnzahl der Elemente muss vorher bekannt seinFeldgröße kann nicht nachträglich geändert werden
  • Nenne 3 Vorteile von Vectors (List) Keine Größenreservierung nötigdynamisch erweiterbarDatenlöschung unproblematisch
  • Nenne 2 Nachteile von Vectors (Lists) leichter Performance NachteilKeine Nicht-Objekte in Vektor speicherbar
  • Wie wird die Anzahl der Objekte eines Vektors abgefragt? v.size()
  • Wie wird ein Element zu einem Vector hinzugefügt? v.addElement(obj)
  • Was ist eine Enumeration? Eine Enumeration kann verschiedene Werte enthalten, die über ihren jeweiligen Namen angesprochen werden können
  • Welche Methode stellt ein GUI Objekt sichtbar auf der Programmoberfläche dar? paint()
  • Nenne 2 Vorteile der Swing Klassen im Gegensatz zu awt (Vorgänger) Alle möglichen look&feels realisierbar look&feel zur Laufzeit austauschbar
  • Nenne 4 Layout Möglichkeiten der GUI und beschreibe diese kurz Flow-Layout (Zeilenumbruchmethode) Border-Layout (Einteilung in North, East, ... Center) Grid-Layout (Spalten/Zeilenlayout) Absolute-Layout (Absolute Position per x,y Angabe)
  • Was versteht man unter dem Highlander Prinzip? In der GUI werden Radio Buttons benutzt. In einer Gruppe von Radio Buttons ist meist erwünscht, dass nur einer davon markiert werden kann. Das Highlander Prinzip hat das Motto "Es kann nur einen geben!"
  • Welche Fehler werden von catch blöcken abgefangen? Nur Fehlerobjekte der angegebenen Klasse oder Instanzen der Unterklassen werden abgefangen
  • Welchen Vorteil bieten Hashtables? (key-value) Sie haben O(1) bei einem Zugriff auf unsortiert Daten
  • Wozu braucht man Streams? Zum Umgang mit großen Datenmengen
  • Wie bearbeitet ein Streamobjekt den Datenstrom? Das Streamobjekt gleitet auf dem Datenstrom
  • Welche Klassen werden zum schreiben/lesen verwendet? FileWriter/PrintWriter FileReader/BufferReader
  • Wie wird im Code angegeben, das eine Klasse ein Interface hat class Klasse1 implements Interface1
  • Wie wird im Code angegeben, dass eine Klasse von einer anderen Klasse erbt? class Klasse1 extends Klasse2
  • Was sind abstrakte Klassen`? Abstrakte Klassen können nicht instanziiert werden
  • Was ist JSON? Eine Standardisierte Darstellung für Objektstrukturen
  • Was ist der große Vorteil von JSON? Kaum Overhead. Kommt mit nur wenigen Syntaxelementen aus
  • Was versteht man unter Rexflexivität Die Eigenschaft von Programmiersprachen, bei der Programme ihre eigene Struktur analysieren oder beeinflussen können
  • Für was wird JDOM verwendet? XML Input und Output
  • Was ist die Idee eines Servlets? Java erzeugt dynamisches HMTL oder andere Formate
  • Beschreibe den Lebenszyklus eines Servlets Erstzugriff -> Instanziierung des Servlets -> Aufruf: init() -> Aufruf: service() -> warte auf zugriff -> Zweiter/Dritter Zugriff -> Aufruf: service() -> Timeout -> Aufruf: destroy() -> Dereferenzierung -> Garbage Collector