Предыстория издания Java SE 7
Издание Java® SE 7 спецификации виртуальной машины Java включает все изменения, внесённые в виртуальную машину Java с момента второго издания 1999 года. Кроме того, были внесены многочисленные исправления и уточнения, чтобы согласовать её с популярными реализациями виртуальной машины Java и с концепциями, общими для виртуальной машины Java и языка программирования Java.
Читатели могут сообщать об ошибках и неоднозначностях в спецификации виртуальной машины Java по адресу jvms-comments_ww@oracle.com.
Платформа Java SE 5.0 в 2004 году внесла значительные изменения в язык программирования Java, но относительно мало повлияла на дизайн виртуальной машины Java. В формат файла class были добавлены элементы для поддержки новых функций языка программирования Java, таких как дженерики и методы с переменным числом аргументов.
Платформа Java SE 6 в 2006 году не принесла изменений в язык программирования Java, но представила совершенно новый подход к верификации байткода в виртуальной машине Java. Эва Роз в своей магистерской диссертации предложила радикальное переосмысление верификации байткода в контексте платформы Java Card. Это привело к реализации для Java ME CLDC и, в конечном итоге, к пересмотру процесса верификации Java SE, описанного в главе 4.
Шэн Лианг реализовал верификатор Java ME CLDC. Антеро Тайвальсаари руководил общей спецификацией Java ME CLDC, а Гилад Брача отвечал за спецификацию верификатора. Анализ верификации байткода Алессандро Коглио был наиболее обширным, реалистичным и исчерпывающим исследованием этой темы и значительно способствовал разработке спецификации. Вей Тао совместно с Фрэнком Еллином, Тимом Линдхольмом и Гиладом Брачей реализовал верификатор Prolog, который послужил основой для спецификации как в Java ME, так и в Java SE. Затем Вей реализовал спецификацию «на самом деле» в виртуальной машине HotSpot JVM. Позднее Минмяо Ян улучшил дизайн и спецификацию, а также реализовал финальную версию, которая поступила в реализацию Java SE 6. Спецификация также получила пользу от усилий экспертной группы JSR 202: Питера Бурки, Алессандро Коглио, Сангхона Джина, Кристиана Кемпера, Ларри Роу, Эвы Роз и Марка Штолца.
Платформа Java SE 7 в 2011 году выполнила обещание, данное в первом издании спецификации виртуальной машины Java в 1997 году: «В будущем мы будем рассматривать ограниченные расширения виртуальной машины Java для лучшей поддержки других языков». Гилад Брача в своей работе над hotswapping предвидел трудности, связанные со статической системой типов виртуальной машины Java для разработчиков языков с динамической типизацией. Вследствие этого, инструкция invokedynamic и её поддерживающая инфраструктура были разработаны Джоном Розом и экспертной группой JSR 292: Ола Бини, Реми Форакс, Дан Хеидинга, Фредрик Охрстрем и Йохан Теодору, с особыми вкладами Чарли Наттера и Кристиана Талингера.
Более многочисленные люди, чем мы можем упомянуть здесь, внесли вклад в проектирование и реализацию виртуальной машины Java. Отличная производительность, которую мы видим в современных реализациях виртуальной машины Java, никогда не была бы возможна без технологической основы, заложенной Дэвидом Унгаром и его коллегами в проекте Self в Sun Labs. Эта технология прошла сложный путь, от Self через виртуальную машину Animorphic Smalltalk до виртуальной машины HotSpot JVM. Ларс Бак и Урс Хёльсле являются двумя людьми, которые присутствовали на всех этих этапах и больше, чем кто-либо другой, несут ответственность за высокую производительность, которую мы принимаем как должное в реализациях виртуальной машины Java сегодня.
Эта спецификация была существенно улучшена благодаря вкладам Мартина Бухгольца, Брайана Гоца, Пола Хохенси, Дэвида Холмса, Кэрен Киннеар, Кита МакГигана, Джеффа Найзвангера, Марка Рейнхолда, Наото Сато и Билла Пуга, а также Удея Дханиканды, Дженет Коэниг, Адама Мессингера, Джона Пампуча, Жоржа Сааба и Бернарда Траверсата. Джон Кортни и Роджер Риггс помогли обеспечить применимость этой спецификации к Java ME так же, как и к Java SE. Леонид Арбузов, Станислав Авзан, Юрий Гаевский, Илья Мухин, Сергей Резник и Кирилл Широков провели выдающуюся работу в Java Compatibility Kit, чтобы обеспечить возможность тестирования и проверено этой спецификации.
© Oracle and/or its affiliates. All rights reserved.
Licensed under the Oracle Technology Network License Agreement.