Mich interessieren Computersachen und man kann sagen, dass ich mich bei Computern wiorklich gut auskenne obwohl ich erst 13 Jahre alt bin. Wenn ihr ein Programm für mjich wisst, mit dem man ein Programm schreiben kann könnt ihr mir es bitte mit dateianhang an die email oder einfach ein paar links senden? Würde mich auf rückantwort freuen!
Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge
Ich hatte mir das JRE so ähnlich vorgestellt wie einen Interpreter, so wie man ihn von Basic kennt und der "mühsam" alles Zeile für Zeile übersetzen muss.
Wie Borlander schon sagte, das galt bei Java nie. Java macht das, was .NET heute auch tut. Es über setzt den Quellecode erst einmal in einen Bytecode, den dann die VM ausführt. Bei .NET nennt sihc das IML und verbindet mehrere verschiedene Sprachen, die in einen mehr oder weniger gemeinsamen Bytecode übersetzt werden (sehr vereinfacht).
Um die Effizienz zu steigern machen moderne VM allerdings noch einiges mehr, als nur den Bytecode zu interpretieren. So optimieren sie z.B. den Bytecode bei der Ausführung noch je nach Plattform, auf der sie laufen um besonders schnelle Funktionen der jeweiligen Plattform zu nutzen. Ebenso betreiben sie "Hotspot Optimizing", also die analysieren den Code zur Laufzeit und sehen sich die Teile an, die besonders oft aufgerufen werden, oder besonders viel Zeit beanspruchen und versuchen diese zu optimieren.
Mit diesne Mitteln schaffen es VMs mittlerweile, dass teilweise deren Ausführungsgeschwindigkeit höher liegen kann, als statisch kompilierter Code, da dieser keine Laufzeitoptimierungen durchführen kann.
Wie Borlander schon sagte, das galt bei Java nie. Java macht das, was .NET heute auch tut. Es über setzt den Quellecode erst einmal in einen Bytecode, den dann die VM ausführt. Bei .NET nennt sihc das IML und verbindet mehrere verschiedene Sprachen, die in einen mehr oder weniger gemeinsamen Bytecode übersetzt werden (sehr vereinfacht).
Um die Effizienz zu steigern machen moderne VM allerdings noch einiges mehr, als nur den Bytecode zu interpretieren. So optimieren sie z.B. den Bytecode bei der Ausführung noch je nach Plattform, auf der sie laufen um besonders schnelle Funktionen der jeweiligen Plattform zu nutzen. Ebenso betreiben sie "Hotspot Optimizing", also die analysieren den Code zur Laufzeit und sehen sich die Teile an, die besonders oft aufgerufen werden, oder besonders viel Zeit beanspruchen und versuchen diese zu optimieren.
Mit diesne Mitteln schaffen es VMs mittlerweile, dass teilweise deren Ausführungsgeschwindigkeit höher liegen kann, als statisch kompilierter Code, da dieser keine Laufzeitoptimierungen durchführen kann.