C
canndy
Gast
Hallo!
Ich würde gerne wissen, was innerhalb der JVM genau passiert, wenn ich z.B. System.out.println("Hello World!") aufrufe. Vor allem stellt sich mir die Frage, welcher Java-Code in der API die JVM nun tatsächlich veranlasst, nach stdout zu schreiben.
Ich habe mich nun ein bisschen durch die API-Source gewühlt. Als ich bei sun.nio.cs.StreamEncoder ankam, habe ich aufgegeben. Aber liege ich mit meiner Vermutung richtig, dass das letztendlich immer die native Methode "write" in FileOutputStream ist?
Ich habe einen Test gemacht:
Und es zeigt wirklich ein 'A' an...
Stimmt es eigentlich, dass überall, wo ein Java-Programm etwas anderes tun soll als Variablen zu verändern, eine native Methode am Ende steht?
Also, wenn ich ein Fenster öffnen will, steht dann am Ende in der Swing-API irgendwo eine native Methode? Oder wenn ich in eine Datei schreiben will etc.?
Vielen Dank,
canndy
Ich würde gerne wissen, was innerhalb der JVM genau passiert, wenn ich z.B. System.out.println("Hello World!") aufrufe. Vor allem stellt sich mir die Frage, welcher Java-Code in der API die JVM nun tatsächlich veranlasst, nach stdout zu schreiben.
Ich habe mich nun ein bisschen durch die API-Source gewühlt. Als ich bei sun.nio.cs.StreamEncoder ankam, habe ich aufgegeben. Aber liege ich mit meiner Vermutung richtig, dass das letztendlich immer die native Methode "write" in FileOutputStream ist?
Ich habe einen Test gemacht:
Code:
FileOutputStream fis = new FileOutputStream(FileDescriptor.out);
try {
fis.write(65);
}
catch (IOException ioe) {
}
Und es zeigt wirklich ein 'A' an...
Stimmt es eigentlich, dass überall, wo ein Java-Programm etwas anderes tun soll als Variablen zu verändern, eine native Methode am Ende steht?
Also, wenn ich ein Fenster öffnen will, steht dann am Ende in der Swing-API irgendwo eine native Methode? Oder wenn ich in eine Datei schreiben will etc.?
Vielen Dank,
canndy