Java-апплет
Java-апплет — это прикладная программа на Java в форме байт-кода. Java-апплеты выполняются в веб-браузере с использованием виртуальной Java машины (JVM), или в AppletViewer, автономном инструменте для тестирования апплетов. Java-апплеты были внедрены в первой версии языка Java в 1995. Java-апплеты обычно пишутся на языке программирования Java, но могут быть написаны и на других языках, которые компилируются в байт-код Java, таких, как Jython.
Апплеты используются для предоставления интерактивных возможностей веб-приложений, которые не могут быть предоставлены HTML. Так как байт-код Java платформо-независим, то Java-апплеты могут выполняться с помощью плагинов браузерами многих платформ, включая Microsoft Windows, UNIX, Apple Mac OS и GNU/Linux. Такие программы с открытым исходным кодом, как applet2app, могут быть использованы для преобразования апплета в самостоятельные программы на Java или исполняемые файлы Linux и Windows.
Java-апплеты в большинстве браузеров выполняются в «песочнице», предотвращая их доступ к локальным данным. Код апплета загружается с веб-сервера, и браузер либо вставляет апплет в веб-страницу, либо открывает новое окно с собственным пользовательским интерфейсом апплета. Апплет может быть отображен на веб-странице путем использования HTML элемента applet , или рекомендуемого элемента object. Этим определяется месторасположение и источник апплета.


Главный класс апплета расширяет класс java.applet.Applet или, если создаётся Swing апплет, javax.swing.JApplet. Класс должен переопределить методы создания пользовательского интерфейса внутри себя.
Преимущества:
• кроссплатформенность• апплет может работать на «всех» установленных к этому времени версиях Java, а не только с последней версией; однако, если апплет требует последнюю версию JRE, то клиент будет вынужден ждать более длительной загрузки;
• апплет поддерживается большинством браузеров;
• он кэшируется в большинстве браузеров, а потому будет быстро загружаться при возвращении на веб-страницу; но апплет может сохраняться в кэше и создавать проблемы после выхода новых версий;
• он может иметь полный доступ к машине, на которой выполняется, если пользователь согласен на это;
• апплет может улучшить использование: после первого запуска апплета, когда JVM уже выполняется и быстро запускается, преимущественно у постоянных пользователей Java, однако JVM придется перезапускать каждый раз, когда запускается новый браузер.
• он может запуститься с сопоставимой (но обычно медленнее) скоростью на других компилируемых языках, таких как C++, но во много раз быстрее, чем JavaScript
• он может перенести работу с сервера к клиенту, делая Интернет-решение с, большим числом пользователей / клиентов.
Недостатки:
• он требует установки Java-расширения (plug-in), которое не во всех браузерах доступно по умолчанию;• он не может запуститься до тех пор, пока не запустится виртуальная Java-машина, и это может занять значительное время при первом запуске;
• создание и дизайн хорошего пользовательского интерфейса с использованием апплетов считается более сложной задачей, чем с помощью технологии, основанной на HTML;
• для повышения безопасности апплета, ограничивается доступ к пользовательской системе: в частности, он не имеет прямого доступа к диску клиента или буферу обмена;
• некоторые организации допускают только программное обеспечение, установленное администраторами. В результате многие пользователи не могут видеть апплеты по умолчанию.