X
XtremWi'ler
Gast
Zur Klausurvorbereitung habe wir ein paar fragen zu Java und Progen bekommen.
Mich würde jetzt mal interessieren ob ich alles richtig verstanden habe.
Achja, würde mich auch sehr freuen wenn mir wer fragen 63, 68 und 72 beantworten kann.
Danke
Fragen
1. Weshalb werden Klassenattribute typischerweise mit private qualifiziert?
- um das Prinzip des data hinding zu erfüllen
- damit keine variablen durch direkten zugriff verändert werden können
2. Macht es Sinn Methoden als private zu deklarieren?
-ja wenn die Methoden nur in der klassen verwendet werden müssen
- damit Methoden nicht von außen aufgerufen werden können
3. Weshalb benutzt man getter und Setter Methoden?
- um das Prinzip des data hiding zu erfüllen
-um private variablen in einer klasse zu ändern oder auszugeben
4. Wozu dient das Schlüsselwort „this“?
-um auf die klasse, in der man gerade ist, selbst zu verweisen
- um bei Parameter Übergabe in Methoden Fehler zu vermeiden
Bsp.:
Int I = 5;
public void set (int i) {
This.i = I;
}
5. Ist die Verwendung von this in einer als static deklarierten Methode sinnvoll?
-ja wenn das Objekt auf das this verweist auch static ist
Bsp.:
Private static int i = 5;
Public static void set ( int i ) {
This.i = i
}
- ansonsten würde es auch einen Compilerfehler geben
6. Was versteht man unter dem Überladen einer Methode?
- wenn der Name einer Methode mehrfach verwendet wird und nur durch seine parameter unterscheidbar ist
7. Was bewirkt die Qualifizierung eines Attributes mit final?
- ein Attribute welches mit final initialisiert wird kann nur einmal deklariert werden
- ein final Attribute ist somit als konstante anzusehen und somit komplett groß zu schreiben
- man kann es vergleichen mit einer privat variablen wozu es keine getter und Setter gibt , diese ist nämlich nach dem initialisieren nicht mehr veränderbar
8. Was sind die Unterschiede beim Aufruf zwischen statischen und nicht-statischen Methoden?
- eine statische Methoden ist wieder der Name schon sagt statisch dh. Sie ist schon da
- mit anderen Worten sie muss nicht erst erzeugt werden sonder kann ohne instanziierung gleich verwendet werden
- viele der Methoden der klasse math sind static
9. Was sind Konstruktoren und wozu dienen diese?
-konstruktoren sind da um eine Instanz des Objektes zu erzeugen
-es sind eigentlich auch nur Methoden die groß geschrieben werden
-und die variablen mit ihren werten initialisieren
10. Was bewirkt die „finalize“ Methode in Java? Macht es Sinn, diese zu verwenden?
-finalize ist die Methode die ein Objekt zerstört dh. Sie löscht es und gibt den vom Objekt verwendeten speicher frei
-man kann sie verwenden wenn man möchte dass eine neue Instanz eines anderen Objektes erzeugt wird wenn das verwendete object gelöscht wird
-in vielen anderen sprachen wie zb. c++ wie die finalize Methode als destruktor bezeichnet
- In Java muss man die Methode aber nicht explicit aufrufen werden, da sie von dem Garbage collector aufgerufen wird wenn die Instanz des object nicht mehr gebrauch wird
11. Macht es Sinn einen Konstruktor ein private vorranzustellen?
- ja wenn man den Konstruktor durch einen anderen aufrufen will, und nicht möchte dass man ihn von außen aufrufen kann
-somit ist der Konstruktor nur in dem Objekt selbst verwendbar
12. Was ist der Unterschied zwischen einer Basis- und einer Superklasse?
- eine Basis bzw. superklasse ist das gleiche und meint das es eine „Haupt“ klasse ist von der eine „unter“klasse abgeleitet ist
13. Was ist der Unterschied zwischen einer Basis- und einer Subklasse?
- eine Basis klasse ist einer der subklasse übergeordnete dh die subklasse hat min alle Methoden der basisklasse nur nicht der ihre Konstruktoren
- das Prinzip wird auch als Vererbung bezeichnet , die subklasse erweitert die basisklasse
14. Was besagen die „ist ein“ und „hat ein“ Regeln?
- das eine Cabrio eine Auto ist = ist ein
-eine konkretes Objekt ist von einem abstrakten object abgeleitet
-cabrio hat eine Farbe und Auto hat eine Farbe
- das heißt es gibt eine konkretes Objekt das die gleichen Eigenschaften wie das abstrakte Objekt
15. Was ist Mehrfachvererbung?
-Mehrfachvererbung auch Polymorphismus genannt ist ein vorgehen um ein Objekt von Mehrern Objekten erben zulassen, und so ohne weiteres nicht in Java möglich( bei konkreten Objekten) um den Benutzer zu schützen zweimal die gleiche Methode mit unterschiedlichen Implementierungen aus verschiedenen Objekten zu haben
-bei abstrakte klassen bzw. Interfaces lässt Java eine Vererbung zu hier müssen die Methoden ja auch noch implementiert werden und somit ist eine unterschiedliche Implementierung der gleichen Methode
16. Was versteht man unter Polymorphismus?
-sollte das gleiche wie 15 sein
17. Was versteht man unter der Signatur einer Methode?
- die Signatur einer Methoden sind unteranderen die Parameter dieser Methoden
18. Kann eine Subklasse eine Methode enthalten, welche sich von einer entsprechenden Methode in der Basisklasse nur durch den Rückgabewert unterscheidet?
-ja wenn die Methode in der subklasse die Methoden in der basisklasse überschreibt
19. Können private Methoden einer Basisklasse in einer Subklasse überschrieben werden?
- nein weil sie nicht vererbt werden also es kann eine Methode mit der gleichen Signatur und dem Namen geben dies überschreibt aber nicht die privat Methode der basisklasse weil diese ja nicht vererbt wird
20. Ist die Typkonvertierung (Sub)b für Base b = new Sub() zulässig?
-ja weil die sub b ja von Base abgeleitet ist und man immer übergeordnete klassen als typ nehmen kann
-Sub b = new Base() würde nicht gehen weile sub eine Spezialisierung von Base ist
21. Wozu benutzt man instanceof?
- wenn man vergleichen will ob eine Objekt eine instance dies Objektes ist
-es unteranderem beim singelton Entwurfsmuster verwendet
-zb wenn man will dass nur ein Fenster erzeugt wird
22. Was versteht man unter dem Überschreiben von Methoden?
- wenn man eine Methoden der basisklasse in einer Methode der subklasse anders implementiert der Methodenname und die Signatur aber gleich sind
23. Was ist ein interface und wozu wird es benutzt?
- ein interface ist eine abstrakte klasse die so Abstract ist das alles in ihr abstakt ist
- man verwendet es wenn man sichergehen will das bestimmte Methoden implementiert werden
24. Können Interfaces auch Attribute enthalten?
-ja diese Attribute sind dann finale und werden nicht vererbt
Fragen
25. Wie kann man von inneren Klassen auf Attribute der äußeren Klasse zugreifen?
- man kann die direkt ansprechen ohne eine instance zu erzeugen
- braucht keine getter oder Setter
26. Wie kann man von einer inneren Klasse, die Teil einer äußeren Subklasse ist, auf die Attribute der Basisklasse zugreifen?
-indem man eine instanze erzeugt oder sie sind static
-und dann per getter und Setter
27. Was bewirkt das Schlüsselwort super?
-mit super kann man auf die Basis klasse verweisen
28. Was bewirkt der Methodenaufruf this();
29. Was bewirkt der Methodenaufruf super();?
-verweist auf die Basis um klasse Konstruktor bzw. Methode aufzurufen
30. Kann man in einem Konstruktor einer Klasse einen anderen Konstruktor derselben Klasse aufrufen?
- ja wenn man sicher gehen will das das Objekt mit verscheiden Parameter belegt ist
Public class MeineClasse{
Public MeineClasse(){}
Public MeineClasse(int i){
Public MeineClasse{}
}
Public MeineClasse(int i, String s){
Public MeineClasse(int i){}
}
}
31. Was macht die equals Methode der Klasse Object?
- sie vergleich ob die Objekte die gleichen Attribute haben und an derselben stelle im speicher steht(dazu wird ein hash wert verwendet)
32. Was macht eine „gute“ equals Methode aus?
- kommt drauf an wie man gut interpretiert
-bei Strings zb ist die equal Methode gut implementiert weil Strings ja aus eine pool ausgewählt werden und damit das erzeugte Objekt immer am gleichen speicher steht
String string1 = new String („hallo Welt“);
String string2 = new String (“hallo Welt”);
String2.equals(string1); // Return true
- weil beide an der gleichen stelle im speicher verweisen
-bei primitiven Datentypen wie integer ist sie nicht gut weil bei der Initialisierung für die gleiche zahl eine andere Stelle im speicher reserviert wird
Int i = 5;
Int i2 = 5;
I2.equals(i); // return false
33. Was bewirkt das Schlüsselwort Abstract vor einer Klassendeklaration?
- es bewirkt das die klasse abstract somit kann sie nicht instanziiert werden und muss mit Implementes vererbt werden
- somit kann man Methoden festlegen die erst später implementiert werden
- aber zum unterschied zu Interfaces kann man auch Methoden direkt implementieren
34. Was bewirkt das Schlüsselwort Abstract vor einer Methodendeklaration?
- die Methode ist abstakt und kann somit auch später implementierte werden
35. Was bewirkt das Schlüsselwort static vor einer Methodendeklaration?
- das die Methode static ist und somit ohne eine Instanziierung der klasse aufgerufen werden kann
- weile Methoden der klasse math sind static
36. Was ist der Unterschied im Zugriff auf statische und nicht-statische Methoden?
- sie müssen nicht instanziiert werden
37. Ist es möglich in einer abstrakten Klasse eine finale Methode zu besitzen?
-ja ist möglich
38. Was versteht man unter anonymen Klassen?
- klassen die bei instanziiert werden aber nicht deklariert, somit kann man sie über keine variable ansprechen
Zb class Main {
New jframe;
}
39. Wann werden anonyme Klassen eingesetzt?
- wenn man die instanze nicht direkt ansprechen muss
Zb class Main {
New jframe;
}
40. Was sind die Einschränkungen von anonymen Klassen?
- das weiß ich nicht
41. Wie weißt man einer Klasse eine Schnittstelle zu?
-durch das Schlüsselwort Implements
42. Kann eine Klasse auch mehrere Schnittstellen erhalten?
- ja weil nicht die gleichen Methoden mit unterschiedlicher Implementierung auftreten könne
43. Kann man Referenzen auf Schnittstellen erzeugen?
- nein , man kann keine Instanz einer Schnittstelle erzeugen
44. Kann man Objekte aus Schnittstellen erzeugen?
- ist das nicht das gleiche wie 43?
45. Was sind generische Klassen?
- generische klasse können alle Daten typen annehmen die man über gibt
-sie werden in <> klammer geschrieben nach klassen nahmen,
-man verwendet meist ein T
- man kann sie auch noch einschränken in dem man sagt<T extends>
46. Können anonyme Klassen Attribute enthalten?
- ja man kann aber nicht über getter oder Setter darauf zugreifen
47. Können anonyme Klassen Konstruktoren enthalten?
- ja müssen sie sogar ansonsten kann man sie ja nicht instanziieren
48. Können anonyme Klassen static Attribute/Methoden enthalten?
- ja wenn am sagt Systen.out.println(math.random+“ ist eine Zufallszahl“);
Fragen
49. Wozu dienen Exceptions?
-um auftretende Fehler abzufangen
50. Was versteht man unter Wrapping?
- wenn man primitive Datentypen in Objekt verwandlet, dies kann unteranderem nützlich für den Compiler sein, sowie Typsicherheit bei coden bringen
51. Was versteht man unter Boxing?
- wenn man primitive Daten typen in Objekte verwandlet
52. Wozu benutzt man sogenannte try-catch-Blöcke?
- um auftretende exceptions zu fangen
-zb wenn ein Programm etwas in einer Datei speicher soll und dabei mitbekommt das es schon eine Datei mit demselben Namen gibt dann gibt es eine exception welche durch try-catch abgefangen werden kann und dann mit einer Textausgabe mit“Datei Name schon vorhanden“ an den Benutzer schickt
53. Ist die throws-Anweisung teil der Signatur?
- nein sie sagt nur dass beim Aufruf eine exception aufgefangen werden muss
54. Wie können Ausnahmen ausgelöst werden?
- wenn variablen deklariert aber nicht initialisiert sind BSP Nullpointerexzeption
-wenn ich in einem Array mit 5 felder das 6 Feld anspreche bsp. arrayoutofbounds
- Datei schon vorhabe
- Datei nicht vorhanden filenotfound
55. Was bewirkt das „finally“ ?
- damit nach einer exception noch etwas aufgerufen werden kann
- Zb.
Catch {
FileStream input = New fileinputstrem (new bufferedreader) ;}
finally (exception e){
input.close
}
- somit ist der Reader auch bei einer exception geschlossen, was System Ressourcen schonen kann
56. Wie lauten die grundsätzlichen Regeln für Exceptions?
- da abfangen wo sie auftreten und nicht immer weiterreichen
57. Was sind Streams, und welche Arten gibt es?
- Streams sind Daten ströme meist binär
-InputStream and OutputStreams
58. Wozu benutzt man die Groß-O-Notation?
-um den Rechenaufwand eines Algorithmus zu beziffern
59. Was versteht man unter einer einfach verketteten Liste?
- eine liste ist ein Datentyp
- und einfach verkettet meine dass jeder Element nur seinen Nachfolger kennt
60. Was versteht man unter einer mehrfach verketteten Liste?
- wenn eine liste sowohl seine Nachfolger und Vorgänger kennt
61. Was versteht man unter einer Ringliste/zirkulären Liste?
62. Wie macht man aus einer verketteten Liste eine Warteschlange?
- in dem man sie in der Reihenfolge in der sie hinzugefügt wurde abarbeitet
63. Wir macht man aus einer verketteten Liste eine prioritisierte Warteschlange?
64. Wie erkennt ein Iterator, wann alle Elemente abgearbeitet sind?
- wenn die Methode hasNext false zurück gibt
65. Was ist eine Deque?
- ist eine warteschlagen wo der letzte als erstes abgearbeitet wird
66. Was ist Hashing?
- wenn man Objekt in einer Tabelle speichert die über einen Index ansprechbar ist
67. Was macht eine gute Hashfunktion aus?
- es treten wenig kollisonen auf
68. Wie sollte die Größe einer Hashtable idealerweise angelegt sein?
69. Wie geht man mit Kollisionen beim Hashing um?
- man sondiert sein entweder linear oder quadratisch
- man kann auch noch eine andere Hashfunktion benutzen um eine neues buket zu finden
- man kann auch eine verkettete liste nehmen was aber rechen aufwendiger wird
70. Warum ist das quadratische Sondieren dem linearen vorzuziehen?
- weil es die werte gleichmäßiger über die Tabelle verteilt
71. Darf es in einer Hashtabelle Elemente geben, welche gleich sind?
- ja gleiche Elemente schon nur müssen die einen anderen Index haben
72. Was versteht man unter Rehashing? Kann dies auch bei einer Verkettung auftreten?
-wenn man aus Hashwerte den inhalt ausrechnet?
73. Was sind Bäume?
- Datentypen die eine ausgangspunkt (wurzel,Root) haben und dann im Idealfall zwei knoten dran
Fragen
74. Nennen Sie den Unterschied zwischen AVL-Binärbäumen und „normalen“ Binärbäumen?
- Avl-Binärbäume sind sortierte Binärbäume das heißt das ein knoten Max eine stufe unterschied zu einem anderen knoten hat
75. Wozu werden Binärbäume benutzt?
- um möglichst efficient zu suchen
76. Wo liegt der Vorteil bei einem AVL-Binärbaum?
- sie sind sortiert und arten nicht in listen aus
77. Nennen und beschreiben Sie die vier Traversionsarten!
-preorder, postorder, inorder, Levelorder
- preorder (wlr) zuerst wird die wurzel dann der linke und anschließend der rechte Teilbaum durchlaufen
-postorder (lrw)zuerst wird der l dann der rechte und zum Schluss die wurzel durchsucht
-inorder(lwr)zuerst der linke dann die wurzel und zum Schluss der rechts wird durchsucht
-levelorder hier wir bei der wurzel begonnen und dann ebene für ebene von links nach rechts durchlaufen
78. Welche Anforderung besteht an die Objekte, die man in einem Baum einfügen möchte?
- es muss sortierbar sein
79. Was ist eine Collection?
- Collection ist der die superklasse von alles listen, Sets oder maps.
-sie ist von iterabel abgeleitet
-man kann in hier verscheiden Datentypen speichern
80. Was ist der Unterschied von Sets und Maps?
List ist geordnet und kann dublicate habe
Sets sind ungeordnet und kann kein dublicate habe
Maps sind die Werte immer mit einem Index versehen
Mich würde jetzt mal interessieren ob ich alles richtig verstanden habe.
Achja, würde mich auch sehr freuen wenn mir wer fragen 63, 68 und 72 beantworten kann.
Danke
Fragen
1. Weshalb werden Klassenattribute typischerweise mit private qualifiziert?
- um das Prinzip des data hinding zu erfüllen
- damit keine variablen durch direkten zugriff verändert werden können
2. Macht es Sinn Methoden als private zu deklarieren?
-ja wenn die Methoden nur in der klassen verwendet werden müssen
- damit Methoden nicht von außen aufgerufen werden können
3. Weshalb benutzt man getter und Setter Methoden?
- um das Prinzip des data hiding zu erfüllen
-um private variablen in einer klasse zu ändern oder auszugeben
4. Wozu dient das Schlüsselwort „this“?
-um auf die klasse, in der man gerade ist, selbst zu verweisen
- um bei Parameter Übergabe in Methoden Fehler zu vermeiden
Bsp.:
Int I = 5;
public void set (int i) {
This.i = I;
}
5. Ist die Verwendung von this in einer als static deklarierten Methode sinnvoll?
-ja wenn das Objekt auf das this verweist auch static ist
Bsp.:
Private static int i = 5;
Public static void set ( int i ) {
This.i = i
}
- ansonsten würde es auch einen Compilerfehler geben
6. Was versteht man unter dem Überladen einer Methode?
- wenn der Name einer Methode mehrfach verwendet wird und nur durch seine parameter unterscheidbar ist
7. Was bewirkt die Qualifizierung eines Attributes mit final?
- ein Attribute welches mit final initialisiert wird kann nur einmal deklariert werden
- ein final Attribute ist somit als konstante anzusehen und somit komplett groß zu schreiben
- man kann es vergleichen mit einer privat variablen wozu es keine getter und Setter gibt , diese ist nämlich nach dem initialisieren nicht mehr veränderbar
8. Was sind die Unterschiede beim Aufruf zwischen statischen und nicht-statischen Methoden?
- eine statische Methoden ist wieder der Name schon sagt statisch dh. Sie ist schon da
- mit anderen Worten sie muss nicht erst erzeugt werden sonder kann ohne instanziierung gleich verwendet werden
- viele der Methoden der klasse math sind static
9. Was sind Konstruktoren und wozu dienen diese?
-konstruktoren sind da um eine Instanz des Objektes zu erzeugen
-es sind eigentlich auch nur Methoden die groß geschrieben werden
-und die variablen mit ihren werten initialisieren
10. Was bewirkt die „finalize“ Methode in Java? Macht es Sinn, diese zu verwenden?
-finalize ist die Methode die ein Objekt zerstört dh. Sie löscht es und gibt den vom Objekt verwendeten speicher frei
-man kann sie verwenden wenn man möchte dass eine neue Instanz eines anderen Objektes erzeugt wird wenn das verwendete object gelöscht wird
-in vielen anderen sprachen wie zb. c++ wie die finalize Methode als destruktor bezeichnet
- In Java muss man die Methode aber nicht explicit aufrufen werden, da sie von dem Garbage collector aufgerufen wird wenn die Instanz des object nicht mehr gebrauch wird
11. Macht es Sinn einen Konstruktor ein private vorranzustellen?
- ja wenn man den Konstruktor durch einen anderen aufrufen will, und nicht möchte dass man ihn von außen aufrufen kann
-somit ist der Konstruktor nur in dem Objekt selbst verwendbar
12. Was ist der Unterschied zwischen einer Basis- und einer Superklasse?
- eine Basis bzw. superklasse ist das gleiche und meint das es eine „Haupt“ klasse ist von der eine „unter“klasse abgeleitet ist
13. Was ist der Unterschied zwischen einer Basis- und einer Subklasse?
- eine Basis klasse ist einer der subklasse übergeordnete dh die subklasse hat min alle Methoden der basisklasse nur nicht der ihre Konstruktoren
- das Prinzip wird auch als Vererbung bezeichnet , die subklasse erweitert die basisklasse
14. Was besagen die „ist ein“ und „hat ein“ Regeln?
- das eine Cabrio eine Auto ist = ist ein
-eine konkretes Objekt ist von einem abstrakten object abgeleitet
-cabrio hat eine Farbe und Auto hat eine Farbe
- das heißt es gibt eine konkretes Objekt das die gleichen Eigenschaften wie das abstrakte Objekt
15. Was ist Mehrfachvererbung?
-Mehrfachvererbung auch Polymorphismus genannt ist ein vorgehen um ein Objekt von Mehrern Objekten erben zulassen, und so ohne weiteres nicht in Java möglich( bei konkreten Objekten) um den Benutzer zu schützen zweimal die gleiche Methode mit unterschiedlichen Implementierungen aus verschiedenen Objekten zu haben
-bei abstrakte klassen bzw. Interfaces lässt Java eine Vererbung zu hier müssen die Methoden ja auch noch implementiert werden und somit ist eine unterschiedliche Implementierung der gleichen Methode
16. Was versteht man unter Polymorphismus?
-sollte das gleiche wie 15 sein
17. Was versteht man unter der Signatur einer Methode?
- die Signatur einer Methoden sind unteranderen die Parameter dieser Methoden
18. Kann eine Subklasse eine Methode enthalten, welche sich von einer entsprechenden Methode in der Basisklasse nur durch den Rückgabewert unterscheidet?
-ja wenn die Methode in der subklasse die Methoden in der basisklasse überschreibt
19. Können private Methoden einer Basisklasse in einer Subklasse überschrieben werden?
- nein weil sie nicht vererbt werden also es kann eine Methode mit der gleichen Signatur und dem Namen geben dies überschreibt aber nicht die privat Methode der basisklasse weil diese ja nicht vererbt wird
20. Ist die Typkonvertierung (Sub)b für Base b = new Sub() zulässig?
-ja weil die sub b ja von Base abgeleitet ist und man immer übergeordnete klassen als typ nehmen kann
-Sub b = new Base() würde nicht gehen weile sub eine Spezialisierung von Base ist
21. Wozu benutzt man instanceof?
- wenn man vergleichen will ob eine Objekt eine instance dies Objektes ist
-es unteranderem beim singelton Entwurfsmuster verwendet
-zb wenn man will dass nur ein Fenster erzeugt wird
22. Was versteht man unter dem Überschreiben von Methoden?
- wenn man eine Methoden der basisklasse in einer Methode der subklasse anders implementiert der Methodenname und die Signatur aber gleich sind
23. Was ist ein interface und wozu wird es benutzt?
- ein interface ist eine abstrakte klasse die so Abstract ist das alles in ihr abstakt ist
- man verwendet es wenn man sichergehen will das bestimmte Methoden implementiert werden
24. Können Interfaces auch Attribute enthalten?
-ja diese Attribute sind dann finale und werden nicht vererbt
Fragen
25. Wie kann man von inneren Klassen auf Attribute der äußeren Klasse zugreifen?
- man kann die direkt ansprechen ohne eine instance zu erzeugen
- braucht keine getter oder Setter
26. Wie kann man von einer inneren Klasse, die Teil einer äußeren Subklasse ist, auf die Attribute der Basisklasse zugreifen?
-indem man eine instanze erzeugt oder sie sind static
-und dann per getter und Setter
27. Was bewirkt das Schlüsselwort super?
-mit super kann man auf die Basis klasse verweisen
28. Was bewirkt der Methodenaufruf this();
29. Was bewirkt der Methodenaufruf super();?
-verweist auf die Basis um klasse Konstruktor bzw. Methode aufzurufen
30. Kann man in einem Konstruktor einer Klasse einen anderen Konstruktor derselben Klasse aufrufen?
- ja wenn man sicher gehen will das das Objekt mit verscheiden Parameter belegt ist
Public class MeineClasse{
Public MeineClasse(){}
Public MeineClasse(int i){
Public MeineClasse{}
}
Public MeineClasse(int i, String s){
Public MeineClasse(int i){}
}
}
31. Was macht die equals Methode der Klasse Object?
- sie vergleich ob die Objekte die gleichen Attribute haben und an derselben stelle im speicher steht(dazu wird ein hash wert verwendet)
32. Was macht eine „gute“ equals Methode aus?
- kommt drauf an wie man gut interpretiert
-bei Strings zb ist die equal Methode gut implementiert weil Strings ja aus eine pool ausgewählt werden und damit das erzeugte Objekt immer am gleichen speicher steht
String string1 = new String („hallo Welt“);
String string2 = new String (“hallo Welt”);
String2.equals(string1); // Return true
- weil beide an der gleichen stelle im speicher verweisen
-bei primitiven Datentypen wie integer ist sie nicht gut weil bei der Initialisierung für die gleiche zahl eine andere Stelle im speicher reserviert wird
Int i = 5;
Int i2 = 5;
I2.equals(i); // return false
33. Was bewirkt das Schlüsselwort Abstract vor einer Klassendeklaration?
- es bewirkt das die klasse abstract somit kann sie nicht instanziiert werden und muss mit Implementes vererbt werden
- somit kann man Methoden festlegen die erst später implementiert werden
- aber zum unterschied zu Interfaces kann man auch Methoden direkt implementieren
34. Was bewirkt das Schlüsselwort Abstract vor einer Methodendeklaration?
- die Methode ist abstakt und kann somit auch später implementierte werden
35. Was bewirkt das Schlüsselwort static vor einer Methodendeklaration?
- das die Methode static ist und somit ohne eine Instanziierung der klasse aufgerufen werden kann
- weile Methoden der klasse math sind static
36. Was ist der Unterschied im Zugriff auf statische und nicht-statische Methoden?
- sie müssen nicht instanziiert werden
37. Ist es möglich in einer abstrakten Klasse eine finale Methode zu besitzen?
-ja ist möglich
38. Was versteht man unter anonymen Klassen?
- klassen die bei instanziiert werden aber nicht deklariert, somit kann man sie über keine variable ansprechen
Zb class Main {
New jframe;
}
39. Wann werden anonyme Klassen eingesetzt?
- wenn man die instanze nicht direkt ansprechen muss
Zb class Main {
New jframe;
}
40. Was sind die Einschränkungen von anonymen Klassen?
- das weiß ich nicht
41. Wie weißt man einer Klasse eine Schnittstelle zu?
-durch das Schlüsselwort Implements
42. Kann eine Klasse auch mehrere Schnittstellen erhalten?
- ja weil nicht die gleichen Methoden mit unterschiedlicher Implementierung auftreten könne
43. Kann man Referenzen auf Schnittstellen erzeugen?
- nein , man kann keine Instanz einer Schnittstelle erzeugen
44. Kann man Objekte aus Schnittstellen erzeugen?
- ist das nicht das gleiche wie 43?
45. Was sind generische Klassen?
- generische klasse können alle Daten typen annehmen die man über gibt
-sie werden in <> klammer geschrieben nach klassen nahmen,
-man verwendet meist ein T
- man kann sie auch noch einschränken in dem man sagt<T extends>
46. Können anonyme Klassen Attribute enthalten?
- ja man kann aber nicht über getter oder Setter darauf zugreifen
47. Können anonyme Klassen Konstruktoren enthalten?
- ja müssen sie sogar ansonsten kann man sie ja nicht instanziieren
48. Können anonyme Klassen static Attribute/Methoden enthalten?
- ja wenn am sagt Systen.out.println(math.random+“ ist eine Zufallszahl“);
Fragen
49. Wozu dienen Exceptions?
-um auftretende Fehler abzufangen
50. Was versteht man unter Wrapping?
- wenn man primitive Datentypen in Objekt verwandlet, dies kann unteranderem nützlich für den Compiler sein, sowie Typsicherheit bei coden bringen
51. Was versteht man unter Boxing?
- wenn man primitive Daten typen in Objekte verwandlet
52. Wozu benutzt man sogenannte try-catch-Blöcke?
- um auftretende exceptions zu fangen
-zb wenn ein Programm etwas in einer Datei speicher soll und dabei mitbekommt das es schon eine Datei mit demselben Namen gibt dann gibt es eine exception welche durch try-catch abgefangen werden kann und dann mit einer Textausgabe mit“Datei Name schon vorhanden“ an den Benutzer schickt
53. Ist die throws-Anweisung teil der Signatur?
- nein sie sagt nur dass beim Aufruf eine exception aufgefangen werden muss
54. Wie können Ausnahmen ausgelöst werden?
- wenn variablen deklariert aber nicht initialisiert sind BSP Nullpointerexzeption
-wenn ich in einem Array mit 5 felder das 6 Feld anspreche bsp. arrayoutofbounds
- Datei schon vorhabe
- Datei nicht vorhanden filenotfound
55. Was bewirkt das „finally“ ?
- damit nach einer exception noch etwas aufgerufen werden kann
- Zb.
Catch {
FileStream input = New fileinputstrem (new bufferedreader) ;}
finally (exception e){
input.close
}
- somit ist der Reader auch bei einer exception geschlossen, was System Ressourcen schonen kann
56. Wie lauten die grundsätzlichen Regeln für Exceptions?
- da abfangen wo sie auftreten und nicht immer weiterreichen
57. Was sind Streams, und welche Arten gibt es?
- Streams sind Daten ströme meist binär
-InputStream and OutputStreams
58. Wozu benutzt man die Groß-O-Notation?
-um den Rechenaufwand eines Algorithmus zu beziffern
59. Was versteht man unter einer einfach verketteten Liste?
- eine liste ist ein Datentyp
- und einfach verkettet meine dass jeder Element nur seinen Nachfolger kennt
60. Was versteht man unter einer mehrfach verketteten Liste?
- wenn eine liste sowohl seine Nachfolger und Vorgänger kennt
61. Was versteht man unter einer Ringliste/zirkulären Liste?
62. Wie macht man aus einer verketteten Liste eine Warteschlange?
- in dem man sie in der Reihenfolge in der sie hinzugefügt wurde abarbeitet
63. Wir macht man aus einer verketteten Liste eine prioritisierte Warteschlange?
64. Wie erkennt ein Iterator, wann alle Elemente abgearbeitet sind?
- wenn die Methode hasNext false zurück gibt
65. Was ist eine Deque?
- ist eine warteschlagen wo der letzte als erstes abgearbeitet wird
66. Was ist Hashing?
- wenn man Objekt in einer Tabelle speichert die über einen Index ansprechbar ist
67. Was macht eine gute Hashfunktion aus?
- es treten wenig kollisonen auf
68. Wie sollte die Größe einer Hashtable idealerweise angelegt sein?
69. Wie geht man mit Kollisionen beim Hashing um?
- man sondiert sein entweder linear oder quadratisch
- man kann auch noch eine andere Hashfunktion benutzen um eine neues buket zu finden
- man kann auch eine verkettete liste nehmen was aber rechen aufwendiger wird
70. Warum ist das quadratische Sondieren dem linearen vorzuziehen?
- weil es die werte gleichmäßiger über die Tabelle verteilt
71. Darf es in einer Hashtabelle Elemente geben, welche gleich sind?
- ja gleiche Elemente schon nur müssen die einen anderen Index haben
72. Was versteht man unter Rehashing? Kann dies auch bei einer Verkettung auftreten?
-wenn man aus Hashwerte den inhalt ausrechnet?
73. Was sind Bäume?
- Datentypen die eine ausgangspunkt (wurzel,Root) haben und dann im Idealfall zwei knoten dran
Fragen
74. Nennen Sie den Unterschied zwischen AVL-Binärbäumen und „normalen“ Binärbäumen?
- Avl-Binärbäume sind sortierte Binärbäume das heißt das ein knoten Max eine stufe unterschied zu einem anderen knoten hat
75. Wozu werden Binärbäume benutzt?
- um möglichst efficient zu suchen
76. Wo liegt der Vorteil bei einem AVL-Binärbaum?
- sie sind sortiert und arten nicht in listen aus
77. Nennen und beschreiben Sie die vier Traversionsarten!
-preorder, postorder, inorder, Levelorder
- preorder (wlr) zuerst wird die wurzel dann der linke und anschließend der rechte Teilbaum durchlaufen
-postorder (lrw)zuerst wird der l dann der rechte und zum Schluss die wurzel durchsucht
-inorder(lwr)zuerst der linke dann die wurzel und zum Schluss der rechts wird durchsucht
-levelorder hier wir bei der wurzel begonnen und dann ebene für ebene von links nach rechts durchlaufen
78. Welche Anforderung besteht an die Objekte, die man in einem Baum einfügen möchte?
- es muss sortierbar sein
79. Was ist eine Collection?
- Collection ist der die superklasse von alles listen, Sets oder maps.
-sie ist von iterabel abgeleitet
-man kann in hier verscheiden Datentypen speichern
80. Was ist der Unterschied von Sets und Maps?
List ist geordnet und kann dublicate habe
Sets sind ungeordnet und kann kein dublicate habe
Maps sind die Werte immer mit einem Index versehen
Zuletzt bearbeitet von einem Moderator: