Agenda. Informatik I WS05/06 Folien von Tobias Dezulian
|
|
- Alfred Beyer
- vor 6 Jahren
- Abrufe
Transkript
1 Agenda Geltungsbereich (Scope) von Variablen Blöcke Der Call-Stack Einschub: Debugging unter Eclipse Der Heap Lebensdauer von Objekten Müllabfuhr: Garbage Collection Exceptions
2 Geltungsbereich (Scope) von Variablen Der Geltungsbereich (Scope) von Variablen in Java wird durch die Syntax des Programmcodes vorgegeben. Lokale Variablen sind nur innerhalb ihres Blocks ("{ }") gültig und in ihrer Lebensdauer an diesen Block gebunden. Bei Namensgleichheit von einer lokalen Variablen und einem Feld einer Klasse kann es zu einer Überdeckung des Feldes im Geltungsbereich der lokalen Variable kommen. Graphik: A. Weber und W. Küchlin
3 Blöcke in Java Blöcke gestatten eine übersichtliche Strukturierung Legen den Geltungsbereich von lokalen Variablen fest
4 Blöcke in Java
5 Blöcke in Java
6 Blöcke in Java
7 Blöcke in Java Auch leere Blöcke zulässig Auch leere Anweisungen zulässig
8 Aufrufe Der Aufrufstapel (Call-Stack) Vor jedem Methodenauf werden die aktuellen lokalen Variablen auf dem sogenannten Aufrufstapel (Call-Stack) abgelegt [Bei der Datenstruktur Stack werden neue Elemente obenauf gelegt und Zugriff ist nur auf das oberste Element möglich] Innerhalb der aufgerufenen Methode sind die lokalen Variablen anderer Methoden (z.b. der aufrufenden Methode) nicht sichtbar Bei der Rückkehr vom Methodenaufruf werden die lokalen Variablen der aufrufenden Methode wieder sichtbar Call-Stack lokale Variablen von methodeb() lokale Variablen von methodeb() lokale Variablen von methodea() Rekursion lokale Variablen von main()
9 Aufrufe Der Aufrufstapel (Call-Stack) Vor jedem Methodenauf werden die aktuellen lokalen Variablen auf dem sogenannten Aufrufstapel (Call-Stack) abgelegt [Bei der Datenstruktur Stack werden neue Elemente obenauf gelegt und Zugriff ist nur auf das oberste Element möglich] Innerhalb der aufgerufenen Methode sind die lokalen Variablen anderer Methoden (z.b. der aufrufenden Methode) nicht sichtbar Bei der Rückkehr vom Methodenaufruf werden die lokalen Variablen der aufrufenden Methode wieder sichtbar Call-Stack lokale Variablen von methodeb() lokale Variablen von methodeb() lokale Variablen von methodea() Rekursion [unsichtbar] lokale Variablen von main()
10 Der Call-Stack Man kann sich in Java mittels Thread.dumpStack() jederzeit die Methodenaufrufe, die momentan auf dem Stack liegen, ausgeben lassen. Zugriff auf die lokalen Variablen von aufrufenden Methoden: debugging-werkzeuge der verwendeten Entwicklungsumgebung verwenden! main() links() call rechts() links() rechts() rechts() links() rechts() links() main()
11 Call-Stack: Beispiel "Walk" Ende der Rekursion
12 Call-Stack: Beispiel "Walk" Ende der Rekursion
13 Der Callstack im Debugger der IDE Der Callstack im Debugger der IDE
14 Der Callstack im Debugger der IDE Der Callstack im Debugger der IDE int bisherigestrecke [lokale Variable]
15 Der Callstack im Debugger der IDE Der Callstack im Debugger der IDE
16 Call-Stack: Beispiel "Walk" Aufruf Aufruf
17 Der Call-Stack (Beispiel): Ausgabe Ausgabe von oben nach unten
18 Live Debugging unter Eclipse Breakpoints Perspektiven unter Eclipse: Java-Perspektive Debug-Perspektive Call-Stack View
19 Speicheraufteilung in der virtuellen Maschine (JVM): Stack und Heap rechts() links() rechts() links() main()?? Stack Heap
20 Die Lebensdauer von Objekten Ein Objekt wird unbenutzbar, sobald die letzte Referenz darauf entfernt worden ist. Der Garbage Collector (in spezieller Mechanismus in der VM) gibt dann den Speicherplatz, den das Objekt bisher beansprucht hat, frei. Verwendung Entfernung der letzten Referenz Instanziierung Garbage Collection
21 Speicheraufteilung in der virtuellen Maschine (JVM): Stack und Heap rechts() links() rechts() links() main() Stack Heap
22 Garbage Collection rechts() links() rechts() links() main() Stack Heap
23 Garbage Collection rechts() links() rechts() links() main() Stack Heap
24 Garbage Collection rechts() links() rechts() links() main() Stack Heap
25 Werkzeugunterstützte Sicht in den Heap
26 Globale Variablen (static) rechts() links() rechts()?? links() main() Stack Heap
27 Garbage Collection: Mark & Sweep
28 Was ist Garbage Collection? automatische Erkennung und Freigabe von nicht mehr referenzierten Objekten a b a = b; a b somit zurück gewonnener Speicher steht dem System wieder zur Verfügung Folie adaptiert von Angelika Kusel, Universität Linz
29 Vor- und Nachteile Vorteile: kein explizites Freigeben von Speicher nötig Beseitigung von folgenden Fehlerquellen zu frühe Freigabe (Dangling Pointer) gar keine Freigabe Nachteile: zusätzlicher Overhead, der vom Laufzeitsystem bewältigt werden muss Folie adaptiert von Angelika Kusel, Universität Linz
30 GC-Algorithmen/Verfahren (1/2) 2 grundsätzliche Aufgaben: tote" Objekte erkennen Speicherplatz der JVM wieder zugänglich machen lebendige Objekte sind solche, die von einem Wurzelzeiger aus erreicht werden können Wurzelzeiger finden sich in: lokalen Variablen im Stack in globalen (statischen) Variablen Folie adaptiert von Angelika Kusel, Universität Linz Heap
31 GC-Algorithmen/Verfahren (2/2) Reference Counting -> ältestes Verfahren, nicht in Java verwendet Mark and Sweep Mark and Compact Stop and Copy Folie adaptiert von Angelika Kusel, Universität Linz
32 Mark and Sweep 2 Phasen: mark-phase und sweep-phase mark-phase: Markierung aller von den Wurzelzeigern aus erreichbaren Objekte sweep-phase: sequentieller Heap-Durchlauf Zurücksetzen der Markierung Freigabe von unmarkierten Objekten Folie adaptiert von Angelika Kusel, Universität Linz
33 Mark and Compact -> verdichtende Variante von Mark and Sweep 1) mark(); 2) berechne für jeden markierten Block die Zieladresse nach Verdichtung ) Biege Wurzelzeiger und die Zeiger in den Blöcken auf die neue Zieladresse um 4) Verschiebe die Blöcke auf die neue Zieladresse Folie adaptiert von Angelika Kusel, Universität Linz
34 Stop and Copy (1/2) a b c d e f from Space unbenützt to Space a b c d e f a d from Space scan free to Space a b c d e f a d c from Space Folie adaptiert von Angelika Kusel, Universität Linz to Space scan == free
35 Stop and Copy (2/2) Vorteile: verdichtendes Einpaß-Verfahren (vgl. Mark and Compact: 1 Mark-Phase plus 3 Sweep-Phasen) Laufzeit abhängig von der Anzahl der lebenden Objekte (bei Mark and Sweep: abhängig von Heapgröße) Nachteile: nur die Hälfte des Heaps kann verwendet werden das Kopieren der Objekte kostet Zeit Folie adaptiert von Angelika Kusel, Universität Linz
36 Ausnahmebehandlung (Exceptions) Exceptions werden von der virtuellen Maschine automatisch bei einem Ausnahmezustand geworfen Exceptions sind ganz "normale" Objekte -- lediglich ihre Erzeugung unterscheidet sich von der anderer Objekten Exception stehen in einer Vererbungshierarchie genau wie andere Klassen auch
37 Ausnahmebehandlung (Exceptions) RuntimeException Throwable Exception Error IOException NullPointerException "Checked" Exceptions
38 Ausnahmebehandlung (Exceptions) RuntimeExceptions werden von der JVM selbst geworfen (z.b. bei Division durch 0) erzwingen keinen try/catch Block "checked" Exceptions werden von von der Java Bibliothek oder eigenen Klassen erzeugt erzwingen einen try/catch Block (den "Check")
39 Exceptions im Detail RuntimeException
40 Exceptions im Detail
41 Exceptions Absichtliches Erzeugen einer RuntimeException
42 Exceptions "live" unter Eclipse
Java Garbage Collection
Java Garbage Collection Kurzfassung In diesem Seminarbericht möchte ich zuerst auf die Frage eingehen, was Garbage Collection ist und welche Vor- und Nachteile es in Bezug auf eine konventionelle Heapverwaltung
MehrJava Virtual Machine (JVM) Bytecode
Java Virtual Machine (JVM) durch Java-Interpreter (java) realisiert abstrakte Maschine = Softwareschicht zwischen Anwendung und Betriebssystem verantwortlich für Laden von Klassen, Ausführen des Bytecodes,
Mehr6 Speicherorganisation
Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrEarly first draft Höllische Programmiersprachen Seminar im WS 2014/15 Speichermanagement
Early first draft Höllische Programmiersprachen Seminar im WS 2014/15 Speichermanagement Max Haslbeck Technische Universität München 20.01.2015 Zusammenfassung 1 Einleitung 2 Begriffsklärung Heutzutage
MehrGrundlagen von Python
Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
MehrSicherheitskritische Echtzeitsysteme mit Java
Java für sicherheitskritische Anwendungen Seite 1 Sicherheitskritische Echtzeitsysteme mit Java Andy Walter, COO 22.06.2010 Java für sicherheitskritische Anwendungen Seite 2 Trends bei kritischer Software
MehrJava für C++ Programmierer
Java für C++ Programmierer Alexander Bernauer bernauer@inf.ethz.ch Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?
MehrGliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions
try-catch Schlüsselworte try-catch e Schlüsselwort Schlüsselwort selbst erstellte ermöglichen die Behandlung von Fehlern, die zur Laufzeit entstehen. try-catch in C: Fehler führt immer zum Abbruch des
MehrJava Performance Tuning
Seminarunterlage Version: 5.04 Version 5.04 vom 16. Januar 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1
Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen
MehrSpeicher und Adressraum
Linearer Speicher (Adressraum) Technische Universität München Speicher und Adressraum Freie Speicherhalde (Heap) Freier Speicherstapel (Stack) Globale Variablen Bibliotheksfunktionen Laufzeitsystem Programmcode
MehrProgrammierung mit C Zeiger
Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch
MehrWillkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java
Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen
MehrJ.5 Die Java Virtual Machine
Java Virtual Machine Die Java Virtual Machine 22 Prof. Dr. Rainer Manthey Informatik II Java-Compiler und Java Virtual Machine Quellcode-Datei class C... javac D.java Java-Compiler - Dateien class class
Mehr7. Übung zu Algorithmen und Datenstrukturen
7. Übung zu Algorithmen und Datenstrukturen Dynamisches Programmieren Greedy Algorithms Exceptions 1 Dynamische Programmierung nutzt gezielt aus, dass man bei manchen Problemen den Rechenaufwand extrem
MehrJava Fehlerbehandlung
Java Fehlerbehandlung 1 Fehlerbehandlung In jedem nicht-trivialen Programm kann es während der Laufzeit zu Fehlersituationen kommen. Dabei handelt es sich nicht unbedingt um Programmierfehler: z. B.: Programm
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {
MehrAuD-Tafelübung T-B5b
6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit
Mehr3 Klassen, Attribute, Methoden
3 Klassen, Attribute, Methoden Jörn Loviscach Versionsstand: 10. April 2011, 10:25 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.j3l7h.de/videos.html
MehrC/C++ Debugging mit CDT unter Eclipse
C/C++ Debugging mit CDT unter Eclipse Bevor Sie mit dem Debuggen beginnen können, müssen Sie eine compilierbare Applikation erstellen, also eine Applikation, die keine Syntaxfehler mehr enthält. Sie können
MehrJava-Optimierung Grundlagen, Konfiguration, Methoden und Werkzeuge zur Optimierung von Oracle-Java
Java-Optimierung Grundlagen, Konfiguration, Methoden und Werkzeuge zur Optimierung von Oracle-Java Vesperbox am Freitag, den 09.11.2012 Daniel Bäurer inovex GmbH Systems Engineer Wir nutzen Technologien,
MehrKapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik
Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen
MehrKlassen mit Instanzmethoden
Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 3.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 3.12.07
MehrJava-Tutorium WS 09/10
Tutorial: Eclipse Debugger Was ist der Eclipse Debugger? Die Eclipse Plattform stellt einige sehr hilfreiche Features zum Programmieren bereit. Eines dieser Features ist der Debugger. Mithilfe des Debuggers
MehrJavakurs zu Informatik I. Henning Heitkötter
Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,
MehrDeklarationen in C. Prof. Dr. Margarita Esponda
Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 13: Ausnahmen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Ausnahmen (Exceptions) Motivation Fehlerbehandlung Klassenhierarchie Checked vs. Unchecked
Mehr5.13 Umgang mit Fehlern
5.13 Umgang mit Fehlern Klassifikation von Fehlern: Syntaxfehler: Lexikalische Fehler: Falsche oder unbekannte Worte String s neu String("Max"); Falsche Anordnung von Anweisungen: Falscher Typ: import
MehrMethoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only
Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer
Mehr2Binden 3. und Bibliotheken
3 Vom C-Programm zum laufenden Prozess 3.1 Übersetzen - Objektmodule 1Übersetzen 3. - Objektmodule (2) Teil III 3Vom C-Programm zum laufenden Prozess 2. Schritt: Compilieren übersetzt C-Code in Assembler
MehrTEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4
Inhaltsverzeichnis TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA... 1 1 GRUNDLAGEN DER PROGRAMMIERUNG... 4 1.1 Das erste Java-Programm... 4 1.2 Programme und ihre Abläufe... 6 1.3 Entwurf mit Nassi-Shneiderman-Diagrammen...
MehrJava RMI Remote Method Invocation
Java RMI Remote Method Invocation Ziel: Aufruf von Instanzmethoden entfernter Objekte basierend auf Java. Paket: java.rmi und Unterpakete Topologie: RMI Registry RMI Server RMI Client Der Server registriert
MehrC++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue
C++ - Einführung in die Programmiersprache Funktionen Leibniz Universität IT Services Anja Aue Subroutine (Unterprogramm) Lösung von Teilen einer Gesamtaufgabe. Kapselung von Anweisungen, die zu einer
MehrVerteilte Systeme. Verteilte Systeme. 5 Prozeß-Management SS 2016
Verteilte Systeme SS 2016 Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 31. Mai 2016 Betriebssysteme / verteilte Systeme Verteilte Systeme (1/14) i
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrBei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife
303 Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife durchgeführt wird. 304 305 for-schleifen sind in Aktivitätsdiagrammen
MehrÜberschreiben von Methoden
Vergleich der DoME Realisierungen: Methode ausgeben Version 1 (ohne Vererbung): Anzeigen aller Informationen CD: A Swingin Affair (64 Min)* Frank Sinatra Titelanzahl: 16 Mein Lieblingsalbum von Sinatra
MehrEinführung in den NetBeans Profiler
Let s talk about IT Wenn s mal wieder länger dauert Einführung in den NetBeans Profiler Dominik Hofmann 14.01.2010 Themenüberblick Themen Grundlagen und Features des NetBeans Profilers CPU Profiling Memory
MehrVorkurs Informatik WiSe 15/16
Java 1 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2015 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello! 12.10.2015 Dr. Werner Struckmann / Stephan
MehrException. 6. Exceptions. Die Klasse java.lang.exception. Fehlermeldung. Klassenname. Ort des Auftretens
6. Exceptions Exception Hintergrund: Programmieren auf der Basis von Verträgen Kundenklasse Lieferantenklasse Eine Exception ist ein Objekt, das Informationen über einen Programmfehler enthält. Eine Exception
MehrClemens H. Cap http://wwwiuk.informatik.uni-rostock.de http://www.internet-prof.de. Bedarf an Zeit, Speicher, Netz und anderen Ressourcen
Performance Bedarf an Zeit, Speicher, Netz und anderen Ressourcen Lernziel Warum ist Performance bei Ajax so wichtig? Was sind die Fallen bei Ajax Programmierung? Welche Werkzeuge gibt es? Ausgewählte
MehrWie groß ist die Page Table?
Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Cluster-Praktikum Sommersemester 2007 Transparent Replizierte Objekte in JavaParty Institut für Programmstrukturen und Datenorganisation
Mehr8 Zugriffstypen ( Zeiger )
8 Zugriffstypen ( Zeiger ) 1. Zugriffstypen, die auf Daten in einem Storage Pool zeigen Heap. 2. Allgemeine Zugriffstypen, die auf (mehr oder weniger) beliebige Daten zeigen. 3. Zugriffsparameter für Unterprogramme
MehrExceptions. Prof. Dr. Margarita Esponda SS 2012. M. Esponda-Argüero
Exceptions Prof. Dr. Margarita Esponda SS 2012 1 Ausnahmen Eine Ausnahme (Exception) ist ein Fehler oder ein nicht geplantes Ereignis, das während der Ausführung eines Programms vorkommt und dessen normalen
MehrJava I Vorlesung 6 Referenz-Datentypen
Java I Vorlesung 6 Referenz-Datentypen 7.6.2004 Referenzen this, super und null Typkonvertierung von Referenztypen Finale Methoden und Klassen Datentypen in Java In Java gibt es zwei Arten von Datentypen:
MehrJava: Eine Übersicht. Dennis Giffhorn. Lehrstuhl für Programmierparadigmen Universität Karlsruhe
Java: Eine Übersicht Dennis Giffhorn Lehrstuhl für Programmierparadigmen Universität Karlsruhe Allgemeines Objektorientiert Syntaxfamilie von C/C++ Statisch getypt Entwickelt von Sun Microsystems class
MehrDynamische Speicherverwaltung
Dynamische Speicherverwaltung Tim Dobert 17.05.2013 Inhaltsverzeichnis 1 Allgemeines zur Speichernutzung 2 2 Ziel und Nutzen 2 3 Anwendung in C 2 3.1 malloc............................... 3 3.2 calloc...............................
MehrEffizientes Memory Debugging in C/C++
Effizientes Memory Debugging in C/C++ Adam Szalkowski Embedded Computing Conference 2014 Ursachen/ Symptome Debugging Tools Ursachen / Symptome Was habe ich falsch gemacht? Was kann denn passieren im schlimmsten
MehrProf. W. Henrich Seite 1
Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse
MehrAlgorithmen & Programmierung. Rekursive Funktionen (1)
Algorithmen & Programmierung Rekursive Funktionen (1) Berechnung der Fakultät Fakultät Die Fakultät N! einer nichtnegativen ganzen Zahl N kann folgendermaßen definiert werden: d.h. zur Berechnung werden
Mehr9 Zeiger (Pointer). Dynamischer Speicher
9 Zeiger (Pointer). Dynamischer Speicher Jörn Loviscach Versionsstand: 25. September 2013, 18:07 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html
MehrKlausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte
Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte Musterlösung 1. Aufgabe (5 Punkte) Im folgenden Programmcode sind einige Fehler enthalten. Finden und markieren Sie mindestens
MehrGebundene Typparameter
Gebundene Typparameter interface StringHashable { String hashcode(); class StringHashMap { public void put (Key k, Value v) { String hash = k.hashcode();...... Objektorientierte
Mehr7 Assemblies. Anwendungen (.exe) bzw. Anwendungskomponenten (.dll) für.net Portable Execution (PE) Files
7 Assemblies 8 Virtual Execution System VES Anwendungen (.exe) bzw. Anwendungskomponenten (.dll) für.net Portable Execution (PE) Files Teil der CLR Class Loader Metadaten (Manifest) zur Selbstbeschreibung
MehrBlöcke und Grand Central Dispatch
Blöcke und Grand Central Dispatch Multithreading ist ein Thema, mit dem sich alle Programmierer bei der modernen Anwendungsentwicklung beschäftigen müssen. Selbst wenn Sie glauben, dass Ihre Anwendung
MehrWas machen wir heute? Betriebssysteme Tutorium 12. Organisatorisches. Frage 12.1.a. Programmieraufgaben Vorstellung. Antwort
Was machen wir heute? Betriebssysteme Tutorium 12 1 Organisatorisches Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität
MehrApplet Firewall und Freigabe der Objekte
Hauptseminar Applet Firewall und Freigabe der Objekte Nachweis von Sicherheitseigenschaften für JavaCard Jin Zhou Ein Überblick über diesen Vortrag Applet Firewall Kontext JCRE Entry Point Objekt Shareable
MehrProgrammieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik
Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine
MehrProgrammierkurs Java
Programmierkurs Java Konstruktor, Statische Methoden Packages Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Initialisierung von Datenstrukturen
MehrSpeicherverwaltung. Objektorientierte Programmierung. (Winter 2006/2007) Lebensdauer von Objekten. new, delete. Beispiel: Verkettete Listen
11. Dynamische Speicherverwaltung 11-1 Objektorientierte Programmierung (Winter 2006/2007) Kapitel 11: Dynamische Speicherverwaltung Lebensdauer von Objekten new, delete Beispiel: Verkettete Listen 11.
MehrDebuggen mit GDB (Gnu DeBugger) unter Eclipse
Debuggen mit GDB (Gnu DeBugger) unter Eclipse Boris Budweg, 16.11.2009 Version 0.4 Abstract: Kleine Einführung in die Bedienung des GDB über Eclipse und die Möglichkeiten eines Debuggers. Viele Screenshots
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
MehrEinführung in die Programmierung 1
Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener
MehrSystemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007
Systemprogrammierung Projekt: Java RMI Wintersemester 2006 / 2007 Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 2 1. Einleitung
MehrSpec# Einführung. Formale Software-Entwicklung Seminar SS 07 Universität Karlsruhe Hilal Akbaba
Spec# Einführung Formale Software-Entwicklung Seminar SS 07 Universität Karlsruhe Hilal Akbaba Inhalt Einführung in C# Das Spec# System Die Konstrukte Vererben der Verträge System Architektur Einführung
MehrGrundzüge der Programmierung. Wiederverwendung VERERBUNG
Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse
MehrPraktikum Compilerbau Sitzung 9 Java Bytecode
Praktikum Compilerbau Sitzung 9 Java Bytecode Prof. Dr.-Ing. Gregor Snelting Matthias Braun und Sebastian Buchwald IPD Snelting, Lehrstuhl für Programmierparadigmen KIT Universität des Landes Baden-Württemberg
MehrWelche GC-Strategie ist die richtige?
BED-Con 4.4.2013 Memory Management und Garbage Collectoren: TP, CMS und G1 Welche GC-Strategie ist die richtige? Tobias@Frech.info / @TobiasFrech Tobias Frech Java Administrator 2 Objekte oder Garbage?
MehrEinstieg in die Informatik mit Java
1 / 26 Einstieg in die Informatik mit Java Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Was sind Felder? 2 Vereinbarung von Feldern 3 Erzeugen von Feldern
MehrInhaltsverzeichnis. Danksagungen... 11
Danksagungen............................................ 11 Einführung............................................... 13 Über dieses Buch.......................................... 15 Voraussetzungen...................................
Mehr1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert
Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume
MehrImplementierung der Jikes Research Virtual Machine
Fakultät Informatik Institut für technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Implementierung der Jikes Research Virtual Machine Hauptseminar Technische Informatik
MehrUnterprogramme. Unterprogramme
Unterprogramme Unterprogramme wichtiges Hilfsmittel für mehrfach benötigte Programmabschnitte spielen in höheren Programmiersprachen eine wesentliche Rolle in Assembler sind bestimmte Konventionen nötig
MehrJava Einführung Klassendefinitionen
Java Einführung Klassendefinitionen Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren 2 Klassen definieren In der Problemanalyse
MehrShort Introduction to C# C# (C SHARP) Microsofts Antwort auf Java
Short Introduction to C# C# (C SHARP) Microsofts Antwort auf Java Short Introduction to C# C# (C SHARP) Microsofts Antwort auf Java Standardisierung durch die ECMA und ISO Short Introduction to C# C# (C
MehrII.1.1. Erste Schritte - 1 -
! 1. Grundelemente der Programmierung! 2. Objekte, Klassen und Methoden! 3. Rekursion und dynamische Datenstrukturen! 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1
MehrVorkurs Informatik WiSe 16/17
Java Rekursion Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 11.10.2016 Technische Universität Braunschweig, IPS Überblick Einleitung Beispiele 11.10.2016 Dr. Werner Struckmann / Stephan Mielke,
MehrEffiziente Java Programmierung
Effiziente Java Programmierung Seminar Implementierung moderner virtueller Maschinen am Beispiel von Java SS 2009 von Reinhard Klaus Losse 20. Mai 2009 Gliederung Definition Effizienz Werkzeuge zum Messen
MehrRemote Method Invocation
Remote Method Invocation spezielle Technik aus dem Java-Umfeld Ausführung der Methoden auf einem entfernten Rechner Analogon zum RPC (Remote Procedure Call) Zweck: Objekte in verschiedenen Java-VM s Aufruf
MehrDie Programmiersprache C99: Zusammenfassung
Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach
MehrKapitel 8. Programmierkurs. Methoden. 8.1 Methoden
Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08
MehrVererbung & Schnittstellen in C#
Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung
MehrVirtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44
Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Die Idee Virtuelle Adressen Prozess 1 Speicherblock 0 Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock
MehrSEP 325. Notwendigkeit. häufige Situation: Programm funktioniert im Prinzip fehlerfrei, aber nicht mit gewünschter Performanz
Optimierungen SEP 325 Notwendigkeit häufige Situation: Programm funktioniert im Prinzip fehlerfrei, aber nicht mit gewünschter Performanz Symptome des Mangels an Performanz: OutOfMemoryError wird geworfen
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Rückblick Schleifen while do-while for Methoden Verfahren: Intervallschachtelung 2 Wo
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden
Grundlagen der Programmierung Prof. H. Mössenböck 6. Methoden Parameterlose Methoden Beispiel: Ausgabe einer Überschrift class Sample { static void printheader() { // Methodenkopf Out.println("Artikelliste");
MehrAnzeige des Java Error Stack in Oracle Forms
Anzeige des Java Error Stack in Oracle Forms (Version 2.0) Juni 2008 Autoren: Jürgen Menge / Thomas Robert Seite 1 von 7 Oracle Forms bietet seit der Version 6i die Möglichkeit, serverseitig Java-Klassen
MehrFachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 10
Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Übungsblatt Nr. 10 Aufgabe 20: Code Verständnis Löse diese Aufgabe selbständig als Vorbereitung zur Übung auf dem Papier. a) Gib
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 8. Arrays. Arrays
1 Kapitel 8 Ziele 2 Die Datenstruktur der kennenlernen Grundlegende Algorithmen auf in Java implementieren können Mit von Objekten arbeiten können 3 Erweiterungen zur Behandlung von : Überblick Bisher
MehrVorlesung Informatik II
Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 02. JAVA: Erstes Programm 1 Das erste Java-Programm
MehrJava I Vorlesung Vererbung und Sichtbarkeit
Java I Vorlesung 4 Vererbung und Sichtbarkeit 17.5.2004 Vererbung Überladen, Überschreiben, Verstecken, Verschatten Zugriffskontrolle Statische Members Wiederholung: OOP Programme bestehen aus Klassen.
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
MehrJava Real-Time Specification
Ausgewählte Kapitel eingebetteter Systeme Java Real-Time Specification Tobias Distler 05.07.2006 Java und Echtzeit? Problem Nichtdeterministisches Verhalten der Garbage Collection Weitere Nachteile Scheduling
MehrAspektorientierte Programmierung (aspect-oriented programming, AOP)
Aspektorientierte Programmierung (aspect-oriented programming, AOP) Abstract Die aspektorientierte Programmierung ist ein neues Programmierparadigma, das die Probleme und Nachteile, die aus der prozeduralen
MehrAdvanced Programming in C
Advanced Programming in C Pointer und Listen Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Variablen vs. Pointer - Statischer und dynamischer
MehrJava Einführung Methoden in Klassen
Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding
MehrObjects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0
Objects First With Java A Practical Introduction Using BlueJ Mehr über Vererbung Exploring polymorphism 1.0 Zentrale Konzepte dieses Kapitels Methoden-Polymorphie statischer und dynamischer Typ Überschreiben
Mehr