Prüfungsvorbereitung - 3. Lehrjahr | Klicke auf Themen zum Aufklappen
public class Auto {
// Attribute
private String marke;
private int ps;
// Konstruktor
public Auto(String marke, int ps) {
this.marke = marke;
this.ps = ps;
}
// Methode
public void fahren() {
System.out.println(marke + " fährt!");
}
}
// Objekt erstellen
Auto meinAuto = new Auto("BMW", 150);
Eine Klasse (Kindklasse) übernimmt Attribute und Methoden einer anderen Klasse (Elternklasse).
public class Fahrzeug {
protected int geschwindigkeit;
public void beschleunigen() {
geschwindigkeit += 10;
}
}
public class Auto extends Fahrzeug {
private int anzahlTueren;
public void hupen() {
System.out.println("Huuup!");
}
}
extends für Vererbung"Vielgestaltigkeit" - Objekte können je nach Kontext unterschiedliches Verhalten zeigen.
// Überschreiben
public class Hund extends Tier {
@Override
public void lpiaut() {
System.out.println("Wuff!");
}
}
// Überladen
public int addiere(int a, int b) { return a + b; }
public double addiere(double a, double b) { return a + b; }
Verbergen von Implementierungsdetails. Zugriff nur über definierte Schnittstellen (Getter/Setter).
private - Nur innerhalb der Klasseprotected - Klasse + Kindklassen + gleiches Paketpublic - Von überall zugreifbar(default) - Nur im gleichen Paketpublic class Konto {
private double kontostand; // gekapselt
public double getKontostand() {
return kontostand;
}
public void einzahlen(double betrag) {
if (betrag > 0) {
kontostand += betrag;
}
}
}
// Interface
public interface Fahrbar {
void fahren();
void bremsen();
}
// Abstrakte Klasse
public abstract class Fahrzeug {
protected String name;
public abstract void starten(); // muss implementiert werden
public void info() { // normale Methode
System.out.println(name);
}
}
Redundanzen vermeiden, Anomalien verhindern (Update-, Insert-, Delete-Anomalie)
-- Daten abfragen
SELECT spalte1, spalte2 FROM tabelle WHERE bedingung;
SELECT * FROM kunden WHERE ort = 'Berlin';
SELECT DISTINCT stadt FROM kunden; -- ohne Duplikate
-- Daten einfügen
INSERT INTO kunden (name, ort) VALUES ('Müller', 'Hamburg');
-- Daten ändern
UPDATE kunden SET ort = 'München' WHERE id = 5;
-- Daten löschen
DELETE FROM kunden WHERE id = 5;
-- Sortieren und Limitieren
SELECT * FROM produkte ORDER BY preis DESC;
SELECT * FROM produkte LIMIT 10;
-- Aggregatfunktionen
SELECT COUNT(*) FROM bestellungen;
SELECT AVG(preis) FROM produkte;
SELECT SUM(menge), MAX(preis), MIN(preis) FROM produkte;
-- INNER JOIN
SELECT k.name, b.datum
FROM kunden k
INNER JOIN bestellungen b ON k.id = b.kunden_id;
-- LEFT JOIN (alle Kunden, auch ohne Bestellung)
SELECT k.name, b.datum
FROM kunden k
LEFT JOIN bestellungen b ON k.id = b.kunden_id;
-- Mehrere JOINs
SELECT k.name, p.bezeichnung, bp.menge
FROM kunden k
JOIN bestellungen b ON k.id = b.kunden_id
JOIN bestellpositionen bp ON b.id = bp.bestell_id
JOIN produkte p ON bp.produkt_id = p.id;
-- Anzahl Bestellungen pro Kunde
SELECT kunden_id, COUNT(*) as anzahl
FROM bestellungen
GROUP BY kunden_id;
-- Mit Bedingung auf Gruppen (HAVING)
SELECT kunden_id, COUNT(*) as anzahl
FROM bestellungen
GROUP BY kunden_id
HAVING COUNT(*) > 5;
-- Umsatz pro Produkt, nur > 1000€
SELECT produkt_id, SUM(menge * preis) as umsatz
FROM bestellpositionen
GROUP BY produkt_id
HAVING SUM(menge * preis) > 1000
ORDER BY umsatz DESC;
BEGIN TRANSACTION;
UPDATE konten SET saldo = saldo - 100 WHERE id = 1;
UPDATE konten SET saldo = saldo + 100 WHERE id = 2;
COMMIT; -- oder ROLLBACK bei Fehler
IP: 192.168.1.0/24
Subnetzmaske: 255.255.255.0 = /24 (24 Bits für Netz)
/24 = 256 Adressen (254 nutzbar)
/25 = 128 Adressen (126 nutzbar)
/26 = 64 Adressen (62 nutzbar)
Netzadresse: Erste IP (192.168.1.0)
Broadcast: Letzte IP (192.168.1.255)
Gateway: Oft erste nutzbare (192.168.1.1)
128 Bit, 8 Blöcke à 16 Bit hexadezimal: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
Asymmetrisch für Schlüsselaustausch, symmetrisch für Daten (z.B. HTTPS)
Alle Infos, die sich auf eine identifizierbare Person beziehen: Name, E-Mail, IP-Adresse, Standort, etc.
Deckungsbeitrag = Erlös - variable Kosten
Stückpreis: 100€
Variable Kosten: 60€
→ Deckungsbeitrag: 40€ pro Stück
Gewinn = Deckungsbeitrag - Fixkosten
Gewinnschwelle: Ab welcher Menge kein Verlust mehr?
BEP = Fixkosten / Deckungsbeitrag pro Stück
BEP = 10.000€ / 40€ = 250 Stück
Internationale Norm für Qualitätsmanagementsysteme. Fordert dokumentierte Prozesse und kontinuierliche Verbesserung.
Stetige, kleine Verbesserungen statt großer Umbrüche. Einbeziehung aller Mitarbeiter.
25 : 2 = 12 Rest 1
12 : 2 = 6 Rest 0
6 : 2 = 3 Rest 0
3 : 2 = 1 Rest 1
1 : 2 = 0 Rest 1
→ 25₁₀ = 11001₂ (von unten lesen)
11001₂ = 1×2⁴ + 1×2³ + 0×2² + 0×2¹ + 1×2⁰
= 16 + 8 + 0 + 0 + 1 = 25₁₀
0-9 und A=10, B=11, C=12, D=13, E=14, F=15
Binär → Hex: Je 4 Bits gruppieren
1101 0011₂ = D3₁₆
Hex → Dezimal:
2F₁₆ = 2×16¹ + 15×16⁰ = 32 + 15 = 47₁₀
Daten und Befehle teilen sich den Bus → Engpass
Register → Cache → RAM → SSD → HDD
1 Bit = 0 oder 1
1 Byte = 8 Bit
1 KB = 1024 Byte
1 MB = 1024 KB
1 GB = 1024 MB
1 TB = 1024 GB
// Singleton Beispiel
public class Database {
private static Database instance;
private Database() {}
public static Database getInstance() {
if (instance == null) {
instance = new Database();
}
return instance;
}
}
git init # Repository erstellen
git clone URL # Repository kopieren
git status # Status anzeigen
git add datei # Datei stagen
git add . # Alle Änderungen stagen
git commit -m "Msg" # Commit erstellen
git push # Hochladen
git pull # Herunterladen + Merge
git fetch # Nur herunterladen
git branch # Branches anzeigen
git branch feature # Branch erstellen
git checkout feature # Branch wechseln
git checkout -b feat # Erstellen + wechseln
git merge feature # Branch zusammenführen