1 JAVA - KLASSENDATEIEN Seminarvortrag von Studierach Beatrix.

Slides:



Advertisements
Ähnliche Präsentationen
C Sharp (C#) Martin Saternus Senior Student Partner
Advertisements

der Universität Oldenburg
der Universität Oldenburg
Objektorientierte Programmierung
der Universität Oldenburg
der Universität Oldenburg
der Universität Oldenburg
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Kritische Betrachtung
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Kapselung , toString , equals , Java API
der Universität Oldenburg
10 Streams JavaHS Merseburg WS 05/06 E/A - Ströme (Streams) in Java.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Listen Richard Göbel.
Indirekte Adressierung
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
FH-Hof Java Packages Richard Göbel. FH-Hof Das Modulkonzept für Java Packages dienen zur Strukturierung größerer Java- Programme Ein Package kann: eigene.
Java: Grundlagen der Objektorientierung
Erweiterte Zuweisungskompatibilität
Konstruktoren.
Objekte und Arbeitsspeicher
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Objektorientierte Programmierung JDK-Klassenbibliothek
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Programmieren mit JAVA
Programmieren mit JAVA
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
1EDV 1 - Java Native Interface Java mit eingebundenen (native) C-Programme Vortrag: Rolf Heitzenröder am
Packages Vortrag : Cornelia Hardt 23. November 1999.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Interfaces. DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt.
DVG Einführung in Java1 Einführung in JAVA.
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Datenströme DVG Datenströme.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Informatikunterricht mit Java
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Laufzeitumgebungen – Das Beispiel der Java Virtual Machine
Performance-Optimierung in JAVA
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Java und Eclipse.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Reinhard Stumptner Seminar Softwareentwicklung Dynamisches Laden und Binden in Java.
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
Programmiervorkurs WS 2014/15 Methoden
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Übung Informatik I exercise01. 2 Inhaltsübersicht Nachbesprechung Übung 1 Individuelle Fragen/Bemerkungen.
Java-Kurs - 3. Übung Hausaufgabe Arrays For-Schleifen.
2 Datenabstraktion Geheimnisprinzip:
Einführung in Java PING e.V. Weiterbildung Andreas Rossbacher 24. März 2005.
Objektorientierte Programmierung (OOP)
Java Programme nur ein bisschen objektorientiert.
Dr. Wolfram Amme, Generisches Programmieren, Informatik II, FSU Jena, SS Generisches Programmieren.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Konstruktoren.
Hello World! Javakurs 2013 Arne Kappen
Die Struktur einer Java-Klasse
Implementieren von Klassen
 Präsentation transkript:

1 JAVA - KLASSENDATEIEN Seminarvortrag von Studierach Beatrix

2 Überblick Klassendatei Spezielle Strings Constant Pool Attribute

3 Class-File Programm in Java Programm in anderer Sprache Programm in Java Compiler Java class files Java class files Other binary format

4 Typen 1. PRIMITIVE TYPEN: u1...1 unsigned byte u unsigned bytes u unsigned bytes u unsigned bytes 2. TABELLENNAME Big Endian

5 Klassendatei - Struktur ClassFile{ u4 magic; u2 minor_version; u2 major_version; u2 constant_pool_count; cp_info constant_pool [constant_pool_count-1]; u2 access_flags u2 this_class; u2 super_class; u2 interfaces_count; u2 interfaces[interfaces_count]; u2 fields_count; field_info fields[fields_count]; u2 methods_count; method_info methods[methods_count]; u2 attributes_count; attributte_info attributes[attributes_count]; } Magic Number: 0xCAFEBABE

6 Beispiele zur Version JDK unterstützt Klassendatei- Formate der Versionen 45.0 bis 45.3 SDK 1.2 unterstützt Klassendatei- Formate der Versionen 45.0 bis 46.0 Versionsnummer: 45.3 Major version no. Minor version no.

7 Klassendatei - Struktur ClassFile{ u4 magic; u2 minor_version; u2 major_version; u2 constant_pool_count; cp_info constant_pool [constant_pool_count-1]; u2 access_flags u2 this_class; u2 super_class; u2 interfaces_count; u2 interfaces[interfaces_count]; u2 fields_count; field_info fields [fields_count]; u2 methods_count; method_info methods[methods_count]; u2 attributes_count; attributte_info attributes[attributes_count]; }

8 Constant Pool Tag: CONSTANT_Class name_index: 7 Tag: CONSTANT_Utf8_info length: 3 This_class: 1 bytes: „Act“ constant_pool Entry #1 constant_pool Entry #7 this class

9 Klassendatei - Struktur ClassFile{ u4 magic; u2 minor_version; u2 major_version; u2 constant_pool_count; cp_info constant_pool [constant_pool_count-1]; u2 access_flags u2 this_class; u2 super_class; u2 interfaces_count; u2 interfaces[interfaces_count]; u2 fields_count; field_info fields[fields_count]; u2 methods_count; method_info methods[methods_count]; u2 attributes_count; attribute_info attributes[attributes_count]; }

10 Access_flags Flag NameBedeutungVerwendung ACC_PUBLIC Zugriff ausserhalb des Package möglich Klasse, Interface ACC_FINAL Keine Unterklassen erlaubt Klasse ACC_SUPER Hat geerbte MethodenKlasse, Interface ACC_INTERFACE Ist ein InterfaceInterface ACC_ABSTRACT Ist Abstract und kann nicht instanziert werden Klasse, Interface

11 Überblick Klassendatei Spezielle Strings Constant Pool Attribute

12 Spezielle Strings Fully qualified Names Simple Names Descriptors

13 Fully qualified names Source Code: – java.lang.Thread Class File: – java/lang/Thread

14 Simple names Constant Pool Eintrag der auf die Methode String toString() verweist: – „toString“ Constant Pool Eintrag der auf das Feld java.io.PrintStram out verweist: – „out“

15 Descriptors FieldDescriptor: FieldType ComponentType: FieldType FieldType: BaseType ObjectType ArrayType BaseType: B C D F I J S Z ObjectType: L ArrayType: [ ComponentType MethodDesciptor: ( ParameterDesciptor * ) ReturnDesciptor ObjectType ArrayType ParameterDesciptor: FieldType ReturnDesciptor: FieldType V

16 Beispiele - Field Desciptor int i;  I long [][] windingRoad;  [[J java.lang.Object[] stuff  [Ljava/lang/Object

17 Beispiel – MethodDescriptor int getSize;  ()I void main(String [] args);  ([Ljava/lang/String;)V boolean regionMatches(boolean ignoreCase, int toOffset, String other, int offset, int len);  (ZILjava/lang/Srting;II)Z

18 Überblick Klassendatei Spezielle Strings Constant Pool Attribute

19 Constant Pool – Allgemeines Format cp_ info { u1 tag; u1 info[]; } tag – Indikator für Typ des Eintrags info – Inhalt variert mit Wert des Tags

20 Constant Pool - Tag CONSTANT_Class CONSTANT_Fieldref CONSTANT_Methodref CONSTANT_InterfaceMethodref CONSTANT_String CONSTANT_Integer CONSTANT_Float CONSTANT_Long CONSTANT_Double CONSTANT_NameAndType CONSTANT_Utf8

21 Constant_Class CONSTANT_Class_info{ U1 tag; U2 name_index; }

22 CONSTANT_NameAndType CONSTANT_NameAndType_info{ U1 tag; U2 name_index; U2 desciptor_index; }

23 CONSTANT_UTF8 CONSTANT_utf8_info{ U1 tag; U2 length; U2 bytes[length]; }

24 Überblick Klassendatei Spezielle Strings Constant Pool Attribute

25 Attribute Code ConstantValue Deprecated Exceptions InnerClasses LineNumberTable LocalVariableTable SourceFile Synthetic

26 ConstantValue ConstantValue_attribute { u2 attribute_name_index; u4 attribute_length; u2 constantvalue_index; }

27 Code Code_attribute { u2 attribute_name_index; u4 attribute_length; u2 max_stack; u2 max_locals; u4 code_length; u1 code[code_ length] u2 exception table_length; { u2 start_pc; u2 end_pc; u2 handler_pc; u2 catch_type; } exception_table[exception_table_length]; u2 attributes_count; attribute_info attributes[attributes_count]: }

28 LocalVariableTable LocalVariableTable _attribute { u2 attribute_name_index; u4 attribute_length; u2 local_variable_table_length; { u2 start_pc; u2 length; u2 name_index; u2 descriptor_index; u2 index; } local_variable_table[local_variable_table_length]: }

29 Danke für Ihre Aufmerksamkeit!