Предпослание ко второму изданию
За последние несколько лет язык программирования Java пользовался беспрецедентным успехом. Этот успех принес с собой и вызов: наряду с взрывным ростом популярности наблюдался также взрывной рост требований к языку и его библиотекам. Чтобы справиться с этим вызовом, язык тоже развивался (к счастью, не столь стремительно), а вместе с ним и библиотеки.
Это второе издание спецификации языка программирования Java отражает эти изменения. Оно интегрирует все изменения, внесённые в язык программирования Java с момента публикации первого издания в 1996 году. Большая часть этих изменений была внесена в релизе Java платформы 1.1 в 1997 году и связана с добавлением объявлений вложенных типов. Более поздние изменения касались операций с плавающей точкой. Кроме того, в этом издании содержатся важные уточнения и поправки, касающиеся поиска методов и бинарной совместимости.
В этой спецификации определяется язык в его современном виде. Вероятно, язык программирования Java будет продолжать развиваться. На момент написания этого предисловия, в рамках процесса Java Community есть текущие инициативы по расширению языка с помощью обобщенных типов и утверждений, уточнению модели памяти и т. д. Однако было бы неуместно задерживать публикацию второго издания до завершения этих работ.
Спецификации библиотек теперь слишком велики, чтобы уместиться в этом томе, и они продолжают развиваться. Поэтому спецификации API были удалены из этой книги. Спецификации библиотек можно найти в Интернете; эта спецификация теперь посвящена исключительно собственно языку программирования Java.
Многие люди внесли вклад в эту книгу, прямо или косвенно. Тим Линдхольм проявил необычайное усердие в своей роли технического редактора серии Java. Он также внес неоценимый технический вклад, особенно в вопросах плавающей точки. Без него книга, вероятно, так и не увидела бы свет. Лиза Френдли, редактор серии, оказывала поддержку и советы, за что я ей очень благодарен.
Дэвид Боуэн первым предложил мне заняться спецификациями платформы Java. Я благодарен ему за то, что он познакомил меня с этой необычайно богатой областью.
Джон Роз, отец вложенных типов в языке программирования Java, неизменно был добр и поддерживал мои попытки точно их описать.
Многие люди предоставили ценные комментарии к этому изданию. Особая благодарность Роли Перере из Ergnosis и Леониду Арбузову и его коллегам из команды по согласованию соответствия платформы Java в Новосибирске: Константину Боброускому, Наталье Головлевой, Владимиру Иванову, Алексею Кайгородову, Сергею Каткову, Дмитрию Хухро, Евгению Латкину, Илье Неверову, Павлу Оздихину, Игорю Пянкову, Вячеславу Рыбалову, Сергею Самоилиди, Максиму Соколоникову и Виталию Чайко. Их тщательное прочтение предварительных черновиков значительно улучшило точность этой спецификации.
Я обязан Мартину Одерски, Эндрю Беннетту и членам команды компиляторов javac, прошлым и настоящим: Ирис Гарсия, Биллу Мэддоксу, Дэвиду Стаутамиру и Тодду Терниджу. Они все усердно работали, чтобы обеспечить соответствие эталонной реализации спецификации. За многие приятные технические обмены я благодарен им и другим коллегам из Sun: Ларсу Баку, Джошуа Блоху, Клиффу Кликку, Роберту Филду, Мохаммаду Гахрагоузолу, Бену Гомесу, Стеффену Грарупу, Роберту Гриземере, Грему Гамильтону, Гордону Хиршу, Питеру Кесслеру, Шену Лиангу, Джеймсу МакИллири, Филиппу Милну, Срджану Митровичу, Ананда Паланисвами, Майку Палецни, Марку Рейнхолду, Кеннету Расселу, Рене Шмидту, Дэвиду Унгару, Крису Вику и Хонг Чжану.
Моя менеджер Трисия Джордан была образцом терпения, сочувствия и понимания. Благодарность также выражаю Лэрри Абрахамсу, директору Java 2 Standard Edition, за поддержку этой работы.
Следующие лица предоставили полезные комментарии, которые внесли свой вклад в эту спецификацию: Годмар Бак, Ханс Бойм, Филипп Чарльз, Дэвид Чейз, Джо Дарси, Джим де Ривиер, София Дроссополу, Сьюзен Айзенбах, Пол Хаар, Урс Хоэльцле, Барт Якобс, Кент Джонсон, Марк Лиллибридж, Норберт Линденберг, Филиппе Мулет, Келси О'Хейр, Билл Пуг, Кэмерон Парди, Энтони Сайан, Дженнифер Шепард, Дэвид Шильдс, Джон Спайсер, Ли Воролл и Дэвид Враг.
Сюзи Пелуш оказала неоценимую помощь в создании индекса и, вместе с Дугом Крамером и Атулом Дамбалкаром, помогла с экспертизой FrameMaker; Майк Хендрикссон и Джули Диникола из Addison-Wesley были любезны, отзывчивы и, в конечном счете, сделали эту книгу реальностью.
В личном плане я благодарю свою жену Вэйхонг за её любовь и поддержку.
Наконец, я хотел бы поблагодарить моих соавторов, Джеймса Гослинга, Билла Джоя и Гая Стиля, за приглашение участвовать в этой работе. Это было удовольствием и привилегией.
© Oracle and/or its affiliates. All rights reserved.
Licensed under the Oracle Technology Network License Agreement.