1/59
gooner mosimann der hurensohn
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Unterschied zwischen BufferedReader und Scanner beim Einlesen einer Datei?
BufferedReader liest schneller zeilenweise Strings, Scanner kann flexibler einzelne Tokens (int, double, String) auslesen, ist aber langsamer.
Wie wandelt man den String "1995" in einen int um?
Integer.parseInt("1995");
Warum ist eine ArrayList oft besser geeignet als ein Array?
ArrayList ist dynamisch veränderbar, Array hat fixe Länge.
Was macht SwingUtilities.invokeLater() im main?
Startet GUI-Code im Event Dispatch Thread, sorgt für thread-sichere GUI.
Warum braucht man bei einer JTable fast immer ein JScrollPane?
Damit man bei vielen Zeilen/Spalten scrollen kann, sonst werden Inhalte abgeschnitten.
Unterschied zwischen DefaultTableModel und einem eigenen TableModel?
DefaultTableModel = einfache Standardlösung; eigenes TableModel = flexible Anpassung an spezielle Datenquellen (z. B. DB).
Unterschied zwischen Klasse und Objekt?
Klasse = Bauplan, Objekt = konkrete Instanz dieser Klasse.
Was gibt folgender Code aus: class A { public void hallo() { System.out.println("A"); } } class B extends A { public void hallo() { System.out.println("B"); } } A obj = new B(); obj.hallo();
Ausgabe: B.
Warum sind Getter und Setter wichtig?
Weil sie Kapselung ermöglichen: Variablen bleiben privat, Zugriff erfolgt kontrolliert.
Was gibt folgender Code aus: ArrayList<Object> al = new ArrayList<>(); al.add("Hallo"); al.add(123); for(Object o : al) { System.out.println(o.getClass().getName()); }
Ausgabe: java.lang.String und java.lang.Integer.
Was bedeutet Polymorphie in Java?
Ein Objekt kann unterschiedliche Formen annehmen; Methodenaufrufe richten sich nach der tatsächlichen Objektklasse, nicht der Referenz.
Was macht der Code: DriverManager.getConnection("jdbc:mysql://localhost:3306/testdb","root",""); System.out.println("OK");
Es wird eine Verbindung zur Datenbank aufgebaut und "OK" ausgegeben, falls erfolgreich.
Unterschied zwischen Statement und PreparedStatement?
Statement = direktes SQL, unsicher; PreparedStatement = SQL mit Platzhaltern (?), sicherer und effizienter.
Was passiert bei: ResultSet rs = stmt.executeQuery("SELECT name FROM schueler"); while(rs.next()) { System.out.println(rs.getString("name")); }
Alle Namen aus der Tabelle "schueler" werden zeilenweise ausgegeben.
Was macht SELECT last_insert_id()
in MySQL?
Gibt die ID des zuletzt eingefügten Datensatzes zurück.
Was versteht man unter CRUD-Operationen?
Create, Read, Update, Delete – Grundoperationen einer DB.
Was gibt folgender Code aus: Object o = "Hallo"; String s = (String) o; System.out.println(s.length());
Ausgabe: 5.
Was passiert, wenn man ein Objekt in den falschen Typ castet?
Es entsteht eine ClassCastException (Laufzeitfehler).
Was gibt folgender Code aus: HashMap<Integer,String> hm = new HashMap<>(); hm.put(1,"Apfel"); hm.put(2,"Banane"); System.out.println(hm.get(2));
Ausgabe: Banane.
Unterschied zwischen ArrayList und HashMap?
ArrayList = speichert Werte in Reihenfolge, Zugriff über Index; HashMap = speichert Key-Value-Paare, Zugriff über Schlüssel.
Warum ist HashMap schneller als ArrayList beim Suchen?
Weil HashMap mit Hashing arbeitet (direkter Zugriff), ArrayList linear durchsuchen muss.
Was passiert bei: abstract class DB { abstract void insert(String t); } class DBTest extends DB { void insert(String t) { System.out.println("Insert: "+t); } } new DBTest().insert("Schueler");
Es wird "Insert: Schueler" ausgegeben.
Warum benutzt man abstrakte Klassen für Datenbankschnittstellen?
Um eine gemeinsame Struktur/Bauplan vorzugeben, ohne konkrete Implementierung.
Was gibt folgender Code aus: HashMap<String,Object> row = new HashMap<>(); row.put("Name","Meier"); row.put("Jahrgang",1999); System.out.println(row.get("Name"));
Ausgabe: Meier.
Warum gibt select()
in dbGeneric eine ArrayList<HashMap<String,Object>>
zurück?
Weil jede Zeile eine Map aus Spaltenname→Wert ist und mehrere Zeilen als ArrayList gespeichert werden.
Vorteil von spezialisierten Klassen wie dbLernende im Vergleich zu dbGeneric?
Mehr Klarheit und Typsicherheit; direkter Zugriff auf Felder statt nur über Strings.
Was gibt folgender Code aus: DefaultTableModel model = new DefaultTableModel(); model.addColumn("ID"); model.addRow(new Object[]{1}); System.out.println(model.getValueAt(0,0));
Ausgabe: 1.
Was gibt folgender Code aus: String[] cols = {"Name","Vorname"}; String[][] data = {{"Müller","Hans"},{"Meier","Anna"}}; JTable t = new JTable(data, cols); System.out.println(t.getRowCount());
Ausgabe: 2.
Was gibt folgender Code aus: ArrayList<String> liste = new ArrayList<>(); liste.add("Hans"); liste.add("Peter"); System.out.println(liste.size());
Ausgabe: 2.
Was gibt folgender Code aus: String line = "10;Meier;Anna;anna.meier@example.com"; String[] parts = line.split(";"); System.out.println(parts[2]);
Ausgabe: Anna.
Wie liest man eine Textdatei zeilenweise in Java ein?
Mit FileReader + BufferedReader und readLine().
Was muss man nach dem Arbeiten mit einem FileReader/BufferedReader tun?
Den Reader schließen (close()
), um Ressourcen freizugeben.
Wie kann man eine CSV-Datei in Java auftrennen?
Mit String.split(";")
oder Scanner mit Delimiter.
Was ist ein Separator in einer CSV-Datei?
Ein Zeichen, das Spalten trennt, z. B. ";" oder ",".
Warum sollte man Exceptions beim Datei-Einlesen behandeln?
Weil Datei nicht existieren kann oder Fehler beim Lesen auftreten können.
Was ist der Event Dispatch Thread (EDT) in Swing?
Der spezielle Thread, in dem alle GUI-Aktionen ausgeführt werden.
Warum sollte man GUI-Updates nie im main-Thread machen?
Weil die Oberfläche sonst blockiert und nicht mehr reagiert.
Wie bindet man eine JTable an eine Datenbank?
Durch ein TableModel, das Daten aus der DB liest und in die Tabelle schreibt.
Was passiert, wenn man JTable ohne TableModel benutzt?
Die Tabelle zeigt nur statische Daten, keine dynamische Verbindung zur DB.
Warum benutzt man ein JScrollPane mit JTable oder JTextArea?
Weil sonst Inhalte abgeschnitten werden, wenn sie größer sind als die Anzeige.
Was ist der Unterschied zwischen extends
und implements
in Java?
extends
= Vererbung einer Klasse, implements
= Implementierung eines Interfaces.
Was ist Vererbung?
Mechanismus, bei dem eine Klasse Eigenschaften und Methoden einer anderen übernimmt.
Was ist Überschreiben (Overriding)?
Wenn eine Subklasse eine Methode der Superklasse neu implementiert.
Was ist Überladen (Overloading)?
Wenn mehrere Methoden denselben Namen haben, aber unterschiedliche Parameterlisten.
Was ist der Unterschied zwischen null
und 0
in Java?
null
= keine Referenz auf ein Objekt, 0
= Zahl.
Was passiert, wenn man versucht, auf ein null-Objekt eine Methode aufzurufen?
Es entsteht eine NullPointerException.
Was ist eine Primary Key in einer Datenbank?
Eindeutiger Schlüssel, identifiziert jeden Datensatz eindeutig.
Warum sind PreparedStatements sicherer gegen SQL-Injection?
Weil Parameter gebunden werden und nicht als String ins SQL eingefügt werden.
Was macht rs.next()
in einem ResultSet?
Verschiebt den Cursor zur nächsten Zeile und liefert true, wenn vorhanden.
Wie greift man im ResultSet auf Spalten zu?
Mit rs.getString("spaltenname")
oder rs.getInt("spaltenname")
.
Was ist eine Foreign Key?
Ein Fremdschlüssel, verweist auf Primary Key einer anderen Tabelle.
Wie kann man in Java prüfen, ob eine HashMap einen Key enthält?
Mit map.containsKey(key)
.
Was passiert, wenn man in einer HashMap denselben Key zweimal put()
?
Der alte Wert wird überschrieben.
Wie greift man auf alle Keys in einer HashMap zu?
Mit map.keySet()
.
Wie greift man auf alle Values in einer HashMap zu?
Mit map.values()
.
Warum sind HashMaps nicht sortiert?
Weil sie intern Hashing benutzen und keine Reihenfolge garantieren.
Was ist eine abstrakte Methode?
Eine Methode ohne Implementierung, die in Subklassen überschrieben werden muss.
Was passiert, wenn eine Klasse eine abstrakte Methode nicht implementiert?
Die Klasse selbst muss abstrakt sein.
Was ist der Unterschied zwischen abstract class
und interface
?
abstract class
kann Attribute und Methoden haben, interface
nur Konstanten und abstrakte Methoden (bis Java 7).
Warum gibt man Datenbankzeilen oft als HashMap<String,Object>
zurück?
Weil Spaltennamen Strings sind und Werte beliebige Typen sein können.