Anwendungsentwickler-Podcast #13: Häufige Fragen im Fachgespräch – Programmierung (Teil 2)

Dieser Beitrag ist Teil 6 von 13 in der Serie Häufige Fragen im Fachgespräch.

In der dreizehnten Episode meines Anwendungsentwickler-Podcasts beende ich meine Liste der häufigen Fragen rund um die Programmierung im Fachgespräch.

Objektorientierung

  • Was bedeutet das Schlüsselwort this?
    • Zeiger auf das aktuelle Objekt.
  • Was bedeutet static?
    • Statische Attribute oder Methoden können ohne eine Instanz ihrer Klasse verwendet werden.
  • Was sind Vor-/Nachteile static?
    • Statische Methoden sind gut testbar, da sie keinen Objektzustand verwenden. Sie können aber z.B. nicht überschrieben werden.
  • Was ist ein Konstruktor?
    • Ein Konstruktor ist eine besondere Methode, die eine Objektinstanz erzeugt.
  • Welche Parameter sollte ein Konstruktor haben?
    • Ein Konstruktor sollte alle Parameter bekommen, die nötig sind, um ein Objekt in einem gültigen Zustand zu erzeugen.
  • Was sind Enumerations?
    • Enumerations sind Datentypen mit einer endlichen Menge an erlaubten Werten.
  • Welche Vorteile bieten Listen gegenüber Arrays?
    • Sie sind redimensionierbar. Sie sind evtl. schneller.

Fehlerbehandlung

  • Was sind Exceptions?
    • Eine Exception beschreibt eine Fehlersituation in einem Programm. Sie kann in anderen Teilen des Programms behandelt werden.
  • Welche zwei Typen von Exceptions gibt es in Java?
    • Checked (müssen gefangen werden) und unchecked Exceptions.
  • Was bedeuten die Schlüsselwörter try, catch, throw und throws?
    • try/catch: umschließen potentiell fehlerhaften Code, throw wirft eine Exception, throws kennzeichnet eine Methode als potentiell fehlerhaft.

Tiefergehendes

  • Was ist Refactoring?
    • Die semantikinvariante Modifikation von Quelltext.
  • Was ist Typinferenz?
    • Durch Typinferenz kann der Compiler den Datentyp einer Variablen ableiten, ohne dass er explizit angegeben werden muss.
  • Was sind generische Klassen?
    • Generische Klassen (Generic) stellen allgemeingültige Algorithmen für unterschiedliche Datentypen bereit.
  • Was sind Ko- und Kontravarianz?
    • Bei einer Vererbungsbeziehung kann eine Methode in der Subklasse überschrieben werden und dabei ihre Parametertypen anhand deren Vererbungsbeziehungen verändern. Wenn diese Veränderung in die gleiche Richtung geht wie die Vererbungsbeziehung der Methode, spricht man von Kovarianz. Wenn sie gegenläufig ist, spricht man von Kontravarianz.
    • Beliebtes Beispiel in Java: Listen sind nicht kovariant, d.h. List<String> erbt nicht von List<Object>.

Literaturempfehlungen

Links

Navigation der Serie<< Anwendungsentwickler-Podcast #12: Häufige Fragen im Fachgespräch – Programmierung (Teil 1)Relationale Datenbanken – Häufige Fragen im Fachgespräch – Anwendungsentwickler-Podcast #17 >>

2 thoughts on “Anwendungsentwickler-Podcast #13: Häufige Fragen im Fachgespräch – Programmierung (Teil 2)

  1. Hallo Stefan,

    vorab einmal vielen Dank für alle diese Informationen!

    Meine betriebliche Projektarbeit bewegt sich ausschließlich im frontend, sprich ich verwende nur JavaScript sowie AngularJs.
    Ich frage mich ob ich in irgendeiner weise trotzdem mit dem Thema Objektorientierung rechnen kann`?
    Ich bin mir in diesem Bezug sehr sehr unsicher was mich dort für Fragen erwarten könnten, in dem Bezug auf das Thema „Programmierung“.

    Liebe Grüße,

    Chris

  2. Bei uns gehört OO zur „Grundbildung“. Ob dein Prüfungsausschuss das auch so sieht, kann ich dir nicht sagen. Aber ich würde behaupten, dass OO ein wichtiges Prüfungsthema ist und jederzeit auch im Fachgespräch drankommen kann, auch wenn du nicht direkt in deinem Projekt damit gearbeitet hast. Du musst dich ja auch mit Datenbanken auskennen, wenn du im Projekt keine eingesetzt hast. Also würde ich mich darauf vorbereiten! Es gibt halt gewisse Inhalte, zu denen jeder Anwendungsentwickler etwas sagen können muss.

    Allerdings solltest du dich auch unbedingt auf Fragen zu deinen verwendeten Technologien vorbereiten. Es gibt nichts Peinlicheres, als wenn Prüflinge Fragen zu ihrem eigenen Projekt nicht beantworten können! Das wären dann in deinem Fall vielleicht Callbacks, funktionale Programmierung, Futures oder was auch immer du an JavaScript-Features verwendet hast.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax