java 2

Von Oracle Certified Professional Java SE 8 Programmer 2 Study guide - Jeanne Boyarsky and Scott Selikoff

Von Oracle Certified Professional Java SE 8 Programmer 2 Study guide - Jeanne Boyarsky and Scott Selikoff


Fichier Détails

Cartes-fiches 500
Langue Deutsch
Catégorie Informatique
Niveau Université
Crée / Actualisé 03.03.2020 / 22.06.2022
Lien de web
https://card2brain.ch/box/20200303_java_2
Intégrer
<iframe src="https://card2brain.ch/box/20200303_java_2/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Ist eine java.lang.IllegalStateException/UnsupportedOperationException checked/unchecked?

unchecked

Was gibt es für zuwei wichtige Regeln bei try catch über die catchblöcke?

  • Die Reihenfolge ist wichtig! (unreachable code)
  • es können nur checked exceptions gefangen werden die tatsächlich geworfen werden

Wie erstellt man eine custom checked/unchecked exception?

checked: extend Exception
unchecked: extend RuntimeException

Compiled das?

catch(Exception e | Exception2 e2)

Nein, nur ein Variablenname erlaubt:

catch(Exception1 | Exception2 e)

Ist das erlaubt?

try {

} catch(RuntimeException e) {

 e = new RunTimeException();

]

Ja, ist aber eine schlechte idee

Ist das erlaubt?

try{

} catch(IOException | RuntimeException e) {

  e = new RuntimeException();

}

Nein, bei multicatch nicht!

Braucht trywithresources einen catch oder finally block?

nein, implizit gibt es ihn aber, man muss ihn aber nicht angeben

Können mehrere Resourcen in einem try-with-resoruce geöffnet werden?

Ja
try (BufferedReader r = Files.newBufferedReader(path1);
BufferedWriter w = Files.newBufferedWriter(path2)) {
// protected code
}

Können try-with-resources-blocks auch catch/finally böcke haben?

Ja, laufen zusätzlch zum impliziten

Wann läuft der finally bkock bei try-with-resources? Was hat das für auswirkungen?

Vor custom catch/finally blöcke, das bedeutet, dass man die resourcen nicht in den custon catch/finally verwenden kann

Wie kann man Zahlen formatieren lassen mit locale?

Mit der Klasse NumberFormat

Was gibt es für Methoden bei der Klasse Numberformat?

  • .getInstance()  , getInstance(locale)
  • .getNumberinstance(), getNumberInstance(locale)
  • .getCurrencyInstance(), getCurrencyInstance(locale)
  • .getPercentInstance(), getPercentInstance(locale)
  • .getIntegerInstance(), getIntegerInstance(locale)
  • .parse(String)  -> wandelt String in Zahl

Was passiert mit Sonderzeichen/nicht zahlen die nicht erkannt werden bei NumberFormat.parse()?

Der String wird bis zu dem Zeichen, welches nicht erkannt wird, geparsed und als Zahl zurückgegeben. Bei CurrencyInstance z.B. wird aber auch ein $ am Anfang erkannt.

Mit welcher Klasse kann man Dates formatieren? In welchem Package liegt die?

DataTimeFormatter im package java.time.format

Wo findet man predefined Formats für den DateTimeFormatter?

In FormatStyle (z.B. FormatStyle.SHORT)

Wie legt man selber ein Pattern beim DatetimeFormatter an?

DateTimeForatter.ofPattern(„MMMM dd, yyyy, hh:mm)

 Beim DateTimeFormatter: Wieviele M’s/D’s,.. braucht man, was passiert dann?

M = 1, MM = 01, MMM= Jan, MMMM = January

d=1, dd=01

yy=11, yyyy=2011

Was muss eine Klasse implementieren die in try-with-resources angelegt werden soll?

Das Interface Autoclosable (und die methode close)

Compiled der code?

public class StuckTurkeyCage implements AutoCloseable {
public void close() throws Exception {
throw new Exception("Cage door does not close");
}
public static void main(String[] args) {
try (StuckTurkeyCage t = new StuckTurkeyCage()) {

System.out.println("put turkeys in");
}
}
}

Nein, Exception is checked und muss deshalb gehandlet werden. D.h. würde main eine Exception angeben würde es compilen

Was passiert wenn der try block bei try-with-resources auch eine exception wirft? D.h. try(hier wird exxception in close geworfen) { hier wird exception geworfen)

Die Exception aus der close-funktion landet in den suppressed exceptions (ex.getSuppressed)

Welche Exception würde hier gefangen werden wenn in der close-funkiton von Autoclosable eine IllegalStateException geworfen wird?

try (JammedTurkeyCage t = new JammedTurkeyCage()) {
 throw new RuntimeException("turkeys ran off");
 } catch (IllegalStateException e) {
 System.out.println("caught: " + e.getMessage());
}

Gar keine -> der catch-block schaut nur nach primaryExceptions(die erste die geworfen wird), die wär aber eine RuntimeException und wird ncht gefangen

Was ist eine primaryException?

Die erste Exception die geworfen wird 

Was wäre hier der output?

27: try (JammedTurkeyCage t1 = new JammedTurkeyCage();
28: JammedTurkeyCage t2 = new JammedTurkeyCage()) {
29: System.out.println("turkeys entered cages");
30: } catch (IllegalStateException e) {
31: System.out.println("caught: " + e.getMessage());
32: for (Throwable t: e.getSuppressed())
33: System.out.println(t.getMessage());
34: }

turkeys entered cages
caught: Cage door does not close
Cage door does not close

--> die erste exception die geworfen wird ist die primary exception

Wann werden suppressed Exceptions hinzugefügt?

Wenn sie im try-block geworfen werden, sonst nicht! 

Funktioniert das folgende?

3: public void rethrowing() throws SQLException, DateTimeParseException {
4: try {
5: parseData();
6: } catch (Exception e) {
7: System.err.println(e);
8; throw e;
9: } }

Funktioniert solange alle checked exception gehandelt/declared werden.

Wie lautet die Syntax von assert?

  • assert boolean_expression;
  • assert boolean_expression: error_message;

Was wird bei einer Assertion geworfen?

Ein AssertionError -> Errors werden nicht gefangen und beenden damit das programm

Wie enabled man Assertions wenn man das Programm laufen lässt?

Mit -ea:

java -ea Programm

bzw. -enableassertions

Für welche Klassen werden Assertions aktiviert wenn man keine Argumente zur -ea flag hinzufügt?

Alle außer Systemklassen

Wie kann man Assertions für bestimmte Packages/klassen enablen?

java -ea:com.packages.package MyProgramm

Wie kann man Assertions für bestimmte klassen/Packages disablen die davor enabled wurden?

Mit -disableassertions(-da):

java -ea:com.package.package -da:com.package.package.disable MyProgram

Was ist die kleinste Einheit der Auführung die gescheduled werden kann?

Ein thread

Was ist ein Prozess?

Eine gruppe von threads

Was bedeuted shared environment?

Dass Threads im gleichen Prozess den gleichen memory space nutzen und direkt miteinander kommunizieren können

Sind java applikationen single oder multithreaded)

Alle sind multithreaded, auch eine hello-world! -> z.b. garbage-collection-thread,..

Wer bestimmt welcher THread gerade laufen soll?

Der Thread-scheduler

Was passiert bei einem context-switch?

  • current state wird gespeichert
  • neuer thread wird geladen

Was ist die thread priority?

Numerischer Wert der angibt wie wichtig der thread ist. Thread scheduler bestimmt unteranderem anhand dieses wertes welcher thread ausgeführt werden soll. 

Wie ist die definiton des Runnable interfaces? Wieviele Argumente werden genommen, was für Daten returned?

@FunctionalInterface public interface Runnable {

  void run();

}

Keine Argumente, keine returndaten

Wie führt man einen Thread am leichtesten aus? In Prosa: wie fhrt man einen THread aus?

mit der java.lang.Thread klasse.

erst wird ein Thread mit einer task definiert, dann mit Thread.start() gestartet