Kategorie-Archiv: Informatik-Studium

Hier sind alle Artikel zu finden, die mein Informatik-Studium an der Universität Würzburg betreffen.

Java 8: Features und Änderungen im neuen Java

Java 8, das im September 2013 erscheinen soll, bietet zahlreiche neue Features, diverse Änderungen und kleinere Neuerungen im Detail. Dieser Artikel soll eine grobe Übersicht über die Features und Änderungen in Java 8 geben. TechEmpower hat hierzu eine detaillierte Liste aller Java 8 Features und Änderungen ausgearbeitet, die ich auf wesentliche Features gekürzt habe.

Interface-Verbesserungen

Interfaces können in Java 8 nun statische Methoden definieren. Bisher mussten Interfaces aus Libraries stets eine Utility-Klasse mit sich bringen, um eine Grundfunktionalität anbieten zu können. Diese an Interfaces gebundene Utility-Klassen sind fortan aber überflüssig, da die statischen Methoden nun direkt in den Interfaces implementiert werden können, um auf diesen zu arbeiten. Sie müssen nicht mehr in eine extra Utility-Klasse ausgelagert werden.

Weiterhin können in Interfaces nun default-Methoden implementiert werden. Dies wurde auch in vielen Klassen der Java-Standard-Packages direkt umgesetzt. Die Methoden override, equals, hashCode und toString können jedoch nicht überschrieben werden, da diese von Object bereits implementiert werden. Weiterlesen

Java: Hello World – verblüffend statt einfach

Wer statt dem doch relativ langweiligen Hello-World-Programm

System.out.println("hello world");

einmal außergewöhnlichen Java-Code nutzen will, um in Java “hello world” auf der Konsole auszugeben, der wird sich wahrscheinlich über folgendes Hello-World-Beispiel in Java freuen:

System.out.println(randomString(-229985452) + " "
    + randomString(-147909649));

Weiterlesen

Hallo, ich bin ein Compiler

Hallo, ich bin ein Compiler.

Ich habe gerade tausende Zeilen Quellcode überprüft, während du diesen Satz gelesen hast. Um nur eine einzige Zeile deines Codes zu optimieren, habe ich Millionen verschiedener Möglichkeiten abgewägt, die auf einer gewaltigen Menge akademischer Forschung basieren. Diese Forschung selbst zu begreifen, würde dich Jahre deines Lebens kosten.
Es ist mir nicht peinlich – kein bisschen – wenn ich ein dreizeilige Schleife in tausende Befehle umwandle, nur um sie schneller zu machen. Ich spüre keine Scham dabei, mich sehr um Optimierung zu bemühen oder die dreckigsten Tricks anzuwenden. Und wenn du das nicht willst, vielleicht für einen Tag oder zwei, dann benehme ich mich und mache es, wie du es willst. Ich kann die von mir benutzten Methoden ändern, wann immer du willst, ohne auch nur eine einzige Zeile deines Codes zu ändern. Ich kann dir sogar zeigen, wie dein Code in Assembler, auf anderen Prozessor-Architekturen, auf anderen Betriebssystemen und in anderen Assembler-Konventionen aussieht, wenn du das willst. Ja, alles in Sekunden.

Weil ich es – wie du weißt – kann
und du es – wie du weißt – nicht kannst.

PS: Ach ja, du hast die Hälfte des Codes, den du geschrieben hast, nicht genutzt. Ich habe dir einen Gefallen getan und ihn weggeworfen.

Quelle: Antwort auf die Frage, warum nicht mehr Programme in Assembler geschrieben werden (Stack Overflow).

Lizenz: CC BY-SA 3.0. Ich würde mich über eine Verlinkung freuen!

Pflichtenheft in LaTeX: Version 0.2 verfügbar

Das Pflichtenheft in LaTeX ist nun in Version 0.2 verfügbar. Das Pflichtenheft in LaTeX entstammt eigentlich meinem Softwarepraktikum. Ich habe die Version 0.2 des LaTeX-Pflichtenhefts jedoch noch einmal um einige Details erweitert, nicht zuletzt wegen der großen Nachfrage.

Neuerungen des “Pflichtenheft in Latex 0.2″

Version 0.2 des Pflichtenhefts zeichnet sich durch folgende Neuerungen aus:

  • Detailliertere Beschreibung der einzelnen Kapitel
  • Beispiele für Bilder (figure), Fußnoten (footnote) und Listen (itemize) in LaTeX
  • Abbildungsverzeichnis in LaTeX
  • Zeilenlänge auf 80 Zeichen beschränkt

Der Latex-Quelltext und weitere Informationen sind unter “Pflichtenheft in LaTeX” verfügbar.

Geplante Eigenschaften der nächsten Version

Die aktuelle Version des Pflichtenhefts basiert auf dem “Lehrbuch der Objektmodellierung” von Heide Balzert. Als nächstes ist eine alternative Version nach Helmut Balzerts “Lehrbuch der Softwaretechnik” geplant. Weiterhin wäre außerdem ein Lastenheft in LaTeX denkbar.

Über Anregungen oder Vorschläge in den Kommentaren würde ich mich sehr freuen!

Komplexe Zahlen in Java als Klasse

Eine Aufgabe in der Vorlesung “Objektorientiertes Programmieren” war es, eine Klasse ComplexNumber zur Repräsentation einer komplexen Zahl in Java zu erstellen. Meine kommentierte Musterlösung hilft hoffentlich auch einigen anderen Studenten. Hierzu sollten auch clone, equals, hashCode und toString sinnvoll überschrieben werden. Weiterlesen