javax vs java пакет



каково обоснование пакета javax? Что входит в java и что в javax?



Я знаю, что многие пакеты enterprise-y находятся в javax, но так же и Swing, новый api даты и времени (JSR-310) и другие пакеты J2SE.

477   6  

6 ответов:

Я думаю, что это историческая вещь - если пакет вводится как дополнение к существующему JRE, он входит как javax. Если он впервые представлен как часть из JRE (как NIO был, я считаю), то он приходит как java. Не знаю, почему новая дата и время API будет в конечном итоге как javax хотя, следуя этой логике... если только он также не будет доступен отдельно в качестве библиотеки для работы с более ранними версиями (что было бы полезно). Примечание от много лет спустя: это на самом деле оказался в java в конце концов.

Я считаю, что есть ограничения на java пакет-я думаю, что загрузчики классов настроены на только разрешить занятия в рамках java.* чтобы быть загруженным от rt.jar или что-то подобное. (Там, конечно, Регистрация ClassLoader.preDefineClass.)

EDIT: хотя официальное объяснение (предложенный поиск orbfish не дал ни одного на первой странице или около того) не вызывает сомнений в" ядре "против " расширения", я все еще подозреваю, что во многих случаях решение по какому-либо конкретному пакету также имеет историческую причину. Это java.beans неужели это "ядро" для Java, например?

первоначально javax предназначался для расширений, и иногда вещи будут продвигаться из javax в java.

одной из проблем был Netscape (и, вероятно, IE) ограничивающие классы, которые могут быть в пакете java.

когда Swing был установлен на "выпуск" на java из javax, был своего рода мини-взрыв, потому что люди поняли, что им придется изменить весь свой импорт. Учитывая, что обратная совместимость является одной из основных целей Java, они изменились их ум.

в тот момент, по крайней мере, для сообщества (возможно, не для Солнца) весь смысл javax был потерян. Итак, теперь у нас есть некоторые вещи в javax, которые, вероятно, должны быть на java... но помимо людей, которые выбрали имена пакетов, я не знаю, Может ли кто-нибудь понять, что такое обоснование в каждом конкретном случае.

пакеты java являются "базовыми", а пакеты javax являются расширениями.

Swing был расширением, потому что AWT был оригинальным API пользовательского интерфейса. Свинг пришел позже, в версии 1.1.

пространство имен javax-это обычно (это громкое слово) используется для стандартных расширений, в настоящее время известный как дополнительные пакеты. Стандартные расширения являются подмножеством неосновных API; другой сегмент неосновных API, очевидно, называется нестандартными расширениями, занимая пространства имен, такие как com.солнце.* или com.компания IBM.. Основные API-интерфейсы занимают java. пространство имен.

Не все в мире Java API начинается в ядре, именно поэтому расширения обычно рождаются из запросов JSR. В конечном итоге они продвигаются до ядра, основанного на "мудром совете".

интерес к этой номенклатуре, вышел из faux pas со стороны Sun - расширения могли быть продвинуты до ядра, т. е. перемещены из javax.* на java.* нарушение обещания обратной совместимости. Программисты хрипло закричали, и здравый смысл возобладал. Вот почему Swing API, хотя и является частью ядра, продолжает оставаться в javax.* пространство имен. И именно так пакеты продвигаются от расширений к ядру - они просто становятся доступными для загрузки как часть JDK и JRE.

java.* пакеты являются основными языковыми пакетами Java, что означает, что программисты, использующие язык Java, должны были использовать их, чтобы сделать любое полезное использование языка java.

javax.* пакеты являются необязательными пакетами, что обеспечивает стандартный масштабируемый способ сделать пользовательские API доступными для всех приложений, работающих на платформе Java.

Javax используется только для расширений. Однако позже sun добавила его в библиотеку java, забыв удалить x. разработчики начали создавать код с помощью javax. Но позже в свое время suns решили изменить его на java. Разработчикам не понравилась эта идея, потому что их код будет разрушен... так пакета javax держали.

Comments

    Ничего не найдено.