1

Тема: Як джава машина працює на різних процесорах?

Доброго дня.
Я програміст початківець, не дуже розумію ось чого: джава машину вгадали щоб не писати транслятор коду для кожного процесору, правильно? Але, як я розумію,тоді усе одно треба було би писати транслятор для бай коду джава, на кожну архітектуру процесору. І яка тоді різниця? Поясніть, будь ласка.
Заздалегідь дякую

2

Re: Як джава машина працює на різних процесорах?

Джава-машину придумали, щоб дати точний опис виконуваним програмою діям.
А конкретні машини мають свої власні реалізації.
Скажімо, для C розмір цілих типів залежить від архітектури. А для Java - ні.

Подякували: danaroz12341

3 Востаннє редагувалося Torbins (28.05.2022 18:53:39)

Re: Як джава машина працює на різних процесорах?

У віртуальній машині легше контролювати і роботу з пам'яттю, і з потоками, і зі стеком, і ще багато чого іншого. Наприклад якісна реалізація async/await потребуватиме складних маніпуляцій зі стеком потоків. В нативних мовах, типу C++ це означатиме різний код для ARM і x86.
Що стосується самого коду, то більша частина роботи виконується на етапі компіляції сирців у байткод. Запустити цей байткод на конкретному процесорі відносно легко. В результаті маємо програму яка запуститься будь де без жодних змін, але її сирці побачити неможливо, на відміну від JS.

Подякували: danaroz12341

4

Re: Як джава машина працює на різних процесорах?

та все одно Java написана на С++
але це там де немає байткоду в процесорах, Sun колись робила таке і інтегрувала команди

Подякували: danaroz12341