Как написать драйвер java

Обновлено: 08.07.2024

Класс DriverManager является уровнем управления JDBC, отслеживает все доступные драйверы и управляет установлением соединений между БД и соответствующим драйвером.

Прежде чем подключаться к серверу БД необходимо определиться с соответствующим драйвером JDBC, который представляет собой *.jar файл. В следующей таблице представлен список jdbc.drivers для нескольких СУБД.

Примечание :
1. Драйверы лучше всего скачивать с сайта производителей СУБД.
2. Необходимо учитывать особенности использования подключения к серверу СУБД. Например, если использовать БД Derby в монопольном режиме, т.е. как хранилище, то лучше подключать драйвер org.apache.derby.jdbc.EmbeddedDriver.

Для подключения драйвера лучше всего разместить его в одной из поддиректорией приложения и прописать в classpath. При использовании IDE для разработки приложения подключение драйвера JDBC можно выполнить через интерфейс среды разработки.

DriverManager.registerDriver

Чтобы сказать диспетчеру драйверов JDBC, какой именно драйвер следует загрузить, необходимо выполнить одну из команд :

  1. Class.forName(“полное имя класса”)
  2. Class.forName(“полное имя класса”).newInstance()
  3. DriverManager.registerDriver(new “полное имя класса”)

Команды все равнозначны. Задача заключается в том, чтобы classloader загрузил нужный драйвер. Например :

Загрузка драйвера JDBC может производиться и другим способом. При вызове Java машины (JVM) можно указать в значении специального системного свойства jdbc.drivers название класса JDBC драйвера:

В этом случае при первой попытке установления соединения с базой данных менеджер драйверов автоматически сам загрузит класс указанный в системном свойстве jdbc.drivers.

Выбирайте любой способ, ориентируясь на то, нужно ли вам будет в дальнейшем переходить на другую СУБД. Если да, то, второй способ будет предпочтительнее. Особенно для тех, кто пишет программы для широкой публики. А ей свойственно желать самолй выбирать, чем пользоваться.

Примечание : если при выполнении программы вы получаете ошибку No driver available - это, скорее всего, означает, что вы просто неправильно указалт путь к драйверу в переменной CLASSPATH.

Классы драйверов JDBC разрабатываются со статической секцией инициализации, в которой экземпляр определенного класса создается и регистрируется в классе DriverManager при загрузке. Таким образом, приложение может не вызывать DriverManager.registerDriver непосредственно. Этот вызов автоматически делается самим драйвером при загрузке класса драйвера.

Для обеспечения безопасности управления драйвером JDBC DriverManager отслеживает, каким загрузчиком классов ClassLoader загружен драйвер. При открытии соединения с сервером БД используется только драйвер, поступивший либо из локальной файловой системы, либо загруженные тем же ClassLoader'ом, которым загружено приложение, запросившее соединение с БД.

DriverManager.getConnection

Получить доступ к серверу базы данных можно с использованием моста JDBC - ODBC. Программа взаимодействия между драйвером JDBC и ODBC была разработана фирмой JavaSoft в сотрудничестве с InterSolv. Данная "связка" реализована в виде класса JdbcOdbc.class (для платформы Windows JdbcOdbc.dll).

При использовании JDBC - ODBC необходимо принимать во внимание, что помимо JdbcOdbc-библиотек должны существовать специальные драйвера (библиотеки), которые реализуют непосредственный доступ к базам данных через стандартный интерфейс ODBC. Как правило эти библиотеки описываются в файле ODBC.INI.

На внутреннем уровне JDBC-ODBC-Bridge преобразует методы Java в вызовы ODBC и тем самым позволяет использовать любые существующие драйверы ODBC, которых к настоящему времени накоплено в изобилии. Однако, чаще всего, все-таки используется механизм ODBC благодаря его универсальности и доступности.

Особенности использования JDBC-ODBC

JDBC DriverManager является "хребтом" JDBC-архитектуры, и его основная функция очень проста - соединить Java-программу и соответствующий JDBC драйвер и затем "выйти из игры". Структура драйвера ODBC была взята в качестве основы JDBC из-за его популярности среди независимых поставщиков программного обеспечения и пользователей. Но может возникнуть законный вопрос - а зачем вообще нужен JDBC? не легче ли было организовать интерфейсный доступ к ODBC-драйверам непосредственно из Java? Путь через JDBC-ODBC-Bridge, как ни странно, может оказаться гораздо короче. С чем это связано:

  • ODBC основан на C-интерфейсе и его нельзя использовать непосредственно из Java. Вызов из Java C-кода нарушает целостную концепцию Java и пробивает брешь в защите.
  • Так как Java не имеет указателей, а ODBC их использует, то перенос ODBC C-API в Java-API нежелателен.
  • Java-API необходим, чтобы добиться абсолютно чистых Java решений. Когда ODBC используется, то ODBC-драйвер и ODBC менеджер должны быть инсталлированы на каждой клиентской машине. В то же время, JDBC драйвер написан полностью на Java и может быть легко переносим на любые платформы.

Следующий код демонстрирует соединение с сервером БД с использованием моста jdbc-odbc-bridge :

Все знают, что мобильная разработка на Java — одна из самых популярных отраслей разработки, наравне с веб-разработкой. Будьте в курсе последних новостей о Spring!

spring

Spring: итоги ушедшего года

Spring — очень популярный веб-фреймворк для Java, и прошлый год для него не прошел бесследно, было внесено много изменений, с главными из которых мы предлагаем ознакомиться.

Компиляция Java-кода на ходу

Ну разве не круто иметь возможность компилировать код прямо на лету? Раньше такой возможностью могли похвастаться только динамические языки, но теперь мощь такого подхода доступна и для джавистов.

10 советов по отлову null

Вообще, null — очень противное значение. Сколько ошибок было вызвано его появлением в совсем неожиданных местах, а сколько потом часов было потрачено на отладку этого кода? Чтобы не выискивать потом проблему, ее лучше предотвратить. Как — читайте в данной статье.

Что бы я хотел знать, когда начинал писать реактивные системы

Реактивные системы — системы настолько гибкие, что в любой момент отзываются на ввод, и достигается это с помощью асинхронности. Причем это куда сложнее, чем обычные потоки.

Java недостаточно хороша для энтерпрайза?

Что имеется в виду под «не очень хороша»? Ее типизация. Да, она вроде как строгая статическая, но в некоторых местах она все же дает сбои. В каких — смотрите в статье.

Быстрые параллельные вычисления с использованием стримов

Восьмая версия Java, которая, кстати, вышла довольно давно, принесла много нововведений: лямбды, стримы, лучший интерфейс типов. И вот о практическом использовании одного из них и пойдет речь.

Главные принципы построения приложений

Хорошая статья для начинающих, которая подскажет, как же все-таки нужно организовать взаимодействие компонентов в своем приложении.

Сравнение MVC, MVP и MVVM на примере приложения для Android

Тут ситуация довольно интересная: все об этом что-то слышали, но мало кто знает, что это такое. Ну вот, у вас есть хороший источник, который поможет во всём разобраться.

Небольшие подсказки и хитрости при разработке мобильных приложений. На этот раз про создание градиентов.

Как увеличить скачивание вашего приложения с помощью емодзи

Вы будете удивлены, но добавление всего одного емодзи в описание сильно подняло количество скачиваний приложения.

Пишем свой драйвер для Android

Да, теперь вы можете писать собственные драйвера к устройствам.

PreviewSeekBar — компонент ползунка с предпросмотром.
Toasty — как Toast, только лучше.
AndroidWiFiADB — плагин для Android Studio для отладки по воздуху.

Создание интерфейса в стиле Material с помощью Netbeans и Swing

Material UI завоевывает все больше поклонников и продолжает распространяться не только на мобильных устройствах.

Держите ваш код в чистоте

Сборник советов, которые помогут держать ваш код в чистоте, чтобы с ним всегда было приятно работать.

40 хаков для Spring в JetBrains IDEA

Достаточно объемное видео, которое поможет вам перенести на новый уровень навыки кодинга в IDEA, и не только на Spring.

Теоретически я предпологаю, что драйверы на яве писать возможно. Потому как ява-машина присутствует в любом случае и эта машина (независимо для какой платформы написанная) все равно контактирует с железом через ОС.

Теоретически я предпологаю, что драйверы на яве писать возможно. Потому как ява-машина присутствует в любом случае и эта машина (независимо для какой платформы написанная) все равно контактирует с железом через ОС.

спасибо за внимание.
за проявленный интерес буду благодарен

Теоретически я предпологаю, что драйверы на яве писать возможно. Потому как ява-машина присутствует в любом случае и эта машина (независимо для какой платформы написанная) все равно контактирует с железом через ОС.

спасибо за внимание.
за проявленный интерес буду благодарен

вообще-то драйвером называется софт, работающий непосредственно
с железом (часть ОС между железом и софтом).

Теоретически я предпологаю, что драйверы на яве писать возможно. Потому как ява-машина присутствует в любом случае и эта машина (независимо для какой платформы написанная) все равно контактирует с железом через ОС.

спасибо за внимание.
за проявленный интерес буду благодарен

вообще-то драйвером называется софт, работающий непосредственно
с железом (часть ОС между железом и софтом).

А, следовательно, непригодный для написания на Java.

Я принимаю поправки в мой адрес и с уважением отношусь к вашему мнению.
Однако же предлогаю посмотреть на эту проблемму с другой стороны:

1. Драйвер содержит определенный набор комманд (методов) доступных для ОС с целью управления устройством.
2. Драйвер общается с устройством через определенный порт (возьмем грубо наш сом-порт)
3. При помощи потоков программист на ява имеет возможность подключиться к тому или иному порту, например JMF (JavaTM Media Framework (JMF) ).
4. Следовательно мы имеем возможность обращения к нашему устройству напрямую. А если учесть, что синтаксис комманд поддерживаемых нашим устройством известен, то управление нашим устройством возможно. Другая сторона медали, пожалуй, заключается в том, что наш програмный модуль должен быть каким-то способом доступен для ОС. В этом случае мы получим наш "псевдодрайвер".

Мне не стыдно признаться в том, что я не компетентен в "железе", однако простые умозаключения наводят на мысль, что решить эту задачу на ява все-таки возможно.
Если с вашей точки зрения в моих логиеских построениях вкрались не точности буду признателен за поправки: учиться никогда не поздно.

Как вариант могу предложить следующее (драйвером это трудно назвать, зато с устройством можно будет обращаться напрямую через сеть):

Теоретически я предпологаю, что драйверы на яве писать возможно. Потому как ява-машина присутствует в любом случае и эта машина (независимо для какой платформы написанная) все равно контактирует с железом через ОС.

спасибо за внимание.
за проявленный интерес буду благодарен

вообще-то драйвером называется софт, работающий непосредственно
с железом (часть ОС между железом и софтом).

А, следовательно, непригодный для написания на Java.

Я принимаю поправки в мой адрес и с уважением отношусь к вашему мнению.
Однако же предлогаю посмотреть на эту проблемму с другой стороны:

1. Драйвер содержит определенный набор комманд (методов) доступных для ОС с целью управления устройством.
2. Драйвер общается с устройством через определенный порт (возьмем грубо наш сом-порт)
3. При помощи потоков программист на ява имеет возможность подключиться к тому или иному порту, например JMF (JavaTM Media Framework (JMF) ).
4. Следовательно мы имеем возможность обращения к нашему устройству напрямую. А если учесть, что синтаксис комманд поддерживаемых нашим устройством известен, то управление нашим устройством возможно. Другая сторона медали, пожалуй, заключается в том, что наш програмный модуль должен быть каким-то способом доступен для ОС. В этом случае мы получим наш "псевдодрайвер".

Мне не стыдно признаться в том, что я не компетентен в "железе", однако простые умозаключения наводят на мысль, что решить эту задачу на ява все-таки возможно.
Если с вашей точки зрения в моих логиеских построениях вкрались не точности буду признателен за поправки: учиться никогда не поздно.

с уважением студент .

ок. псевдодрайвер так псевдодрайвер :)

все что ты написал - сделать можно :)

все что ты написал - сделать можно :)

Не сказал только, как сделать.

начальных условий у тебя нет.

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

как будет использоваться драйвер? напишешь ты
его, будет считывать он данные и куда их?
в базу класть? или он просто должен отдавать их
другим приложениям?

Я теперь в общих чертах представляю что надо делать.
Этот "псевдодрайвер" и будущее програмное обеспечение для него необходим для того, чтобы снимать показания с датчиков, находящихся на боченках с вином. Все это нужно для того, чтобы контроллировать температуру сусла и сохронять ее в определенных пределах.

Я теперь в общих чертах представляю что надо делать.
Этот "псевдодрайвер" и будущее програмное обеспечение для него необходим для того, чтобы снимать показания с датчиков, находящихся на боченках с вином. Все это нужно для того, чтобы контроллировать температуру сусла и сохронять ее в определенных пределах.

С уважением .
Всем удачи

вообще-то датчик чего шлет то и представляется.

Докладываю, НА JAVA драйвера для ОПЕРАЦИОННОЙ СИСТЕМЫ написать НЕЛЬЗЯ, т.к. все, что связано с языком JAVA работает внутри JVM - JAVA virtual machine. А, извиняюсь, любая виртуальная машина общается с физическим устройством опосредованно, через драйверы ОС и промежуточное программное обеспечение, предоставляемое JVM.
С COM портами компьтера конечно работать можно, но нестандартных функций не реализовать.

Докладываю, НА JAVA драйвера для ОПЕРАЦИОННОЙ СИСТЕМЫ написать НЕЛЬЗЯ, т.к. все, что связано с языком JAVA работает внутри JVM - JAVA virtual machine. А, извиняюсь, любая виртуальная машина общается с физическим устройством опосредованно, через драйверы ОС и промежуточное программное обеспечение, предоставляемое JVM.
С COM портами компьтера конечно работать можно, но нестандартных функций не реализовать.

Докладываю, НА JAVA драйвера для ОПЕРАЦИОННОЙ СИСТЕМЫ написать НЕЛЬЗЯ, т.к. все, что связано с языком JAVA работает внутри JVM - JAVA virtual machine. А, извиняюсь, любая виртуальная машина общается с физическим устройством опосредованно, через драйверы ОС и промежуточное программное обеспечение, предоставляемое JVM.
С COM портами компьтера конечно работать можно, но нестандартных функций не реализовать.

Electronic Insect

вообще-то датчик чего шлет то и представляется.

известен тип датчика? марка?

Если бы где букварь найти где более-менее ясно описвается работа с портами, было бы замечательно.

Я слышал что-то о написании драйверов устройств на Java (слышал, как в "ушах", а не из Интернета) и задавался вопросом. Я всегда думал, что драйверы устройств работают на уровне операционной системы и поэтому должны быть написаны в на том же языке, что и ОС (таким образом, в основном, CI)

Вопросы

    Я вообще ошибаюсь в этом
    предположение? (кажется, так)

Как водитель в "чужой"
язык в ОС?

Каковы требования (от
язык программирования)
для драйвера устройства в любом случае?

Спасибо за чтение

спросил(а) 2020-03-20T16:15:29+03:00 1 год, 8 месяцев назад

Есть несколько способов сделать это.

Во-первых, код, работающий на "уровне ОС", не обязательно должен быть написан на том же языке, что и ОС. Он просто должен быть связан с кодом ОС. Практически все языки могут взаимодействовать с C, и это действительно все, что нужно.

Таким образом, с точки зрения языка, технически нет проблем. Функции Java могут вызывать функции C, а функции C могут вызывать функции Java. И если ОС не написана на C (скажем, ради аргумента, написанного на С++), тогда код ОС С++ может вызывать некоторый промежуточный код C, который пересылается на вашу Java, и наоборот. C в значительной степени является языком программирования.

Как только программа была скомпилирована (для собственного кода), ее исходный язык больше не имеет значения. Ассемблер выглядит примерно так же, независимо от того, на каком языке был написан исходный код перед компиляцией. Пока вы используете то же соглашение о вызовах, что и ОС, это не проблема.

Большей проблемой является поддержка времени выполнения. В ОС не так много программных сервисов. Например, обычно нет виртуальной машины Java. (Нет причин, по которым там технически не могло быть, но обычно, но обычно, можно с уверенностью предположить, что он не присутствует).

К сожалению, в своем представлении по умолчанию, как Java байт-код, для Java-программы требуется много инфраструктуры. Ему нужна виртуальная машина Java для интерпретации и JIT байт-кода, и ему нужна библиотека классов и т.д.

Но есть два способа обойти это:

    Поддержка Java в ядре. Это будет необычный шаг, но это можно сделать.
    Или скомпилируйте исходный код Java в собственный формат. Программу Java не нужно компилировать в байт-код Java. Вы можете скомпилировать его для ассемблера x86. То же самое касается любых библиотек классов, которые вы используете. Они тоже могут быть скомпилированы до ассемблера. Конечно, части библиотеки классов Java требуют определенных функций ОС, которые не будут доступны, но тогда использование этих классов можно было бы избежать.

Так что да, это можно сделать. Но это не просто, и непонятно, что вы получили.

Конечно, другая проблема может заключаться в том, что Java не позволит вам получить доступ к произвольным местам памяти, что значительно затруднит передачу аппаратного обеспечения. Но это тоже можно было бы обработать, возможно, вызывая очень простые функции C, которые просто возвращают соответствующие области памяти в качестве массивов для работы Java.

ответил(а) 2020-03-20T16:29:19.479957+03:00 1 год, 8 месяцев назад

Запись драйверов устройств Solaris в Java охватывает устройство A RAM, написанное на Java.

ответил(а) 2020-03-20T16:15:29+03:00 1 год, 8 месяцев назад

Драйвер устройства может быть много вещей

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

Some examples

Промышленные устройства очень отличаются от ваших домашних/офисных устройств (например, сканеры, принтеры). Особенно в сфере производства (например, продуктов питания), компании все чаще выбирают централизованный сервер, на котором выполняется приложение MES (например, разработанное на Java). Сервер MES должен взаимодействовать с устройствами производственной линии, но также содержит бизнес-логику. Ява - это язык, который может делать и то, и другое.

Если ваши домашние/офисные устройства часто встроены в ваш компьютер или подключены с помощью кабеля USB, эти промышленные устройства обычно используют разъемы Ethernet или RS232. Так что, по сути, почти каждый язык может сделать эту работу.

В этой области пока не так много стандартизации. Большинство поставщиков предпочитают создавать свои собственные протоколы для своих устройств. Ведь они производители аппаратного обеспечения, а не гении программного обеспечения. Результатом является большое разнообразие протоколов. Некоторые поставщики предпочитают простые текстовые протоколы, но другие предпочитают сложные двоичные протоколы с кодами CRC, кадрированием. Иногда им нравится укладывать несколько протоколов (например, алгоритм подтверждения связи конкретного поставщика поверх уровня OPC). Сильный язык ООП имеет здесь много преимуществ.

Например, я видел печать Java с постоянной скоростью 100 мс/цикл. Это включает в себя создание уникальной этикетки, отправку ее на принтер, получение подтверждения, печать его на бумаге и нанесение его на продукт с использованием давления воздуха.

Таким образом, сила Java:

    Это полезно как для бизнес-логики, так и для сложного взаимодействия. Он так же надежен в связи с сокетами, как и C. Некоторые драйверы могут выиграть от мощности Java OOP. Ява достаточно быстрая.
ответил(а) 2020-03-29T16:32:28.793883+03:00 1 год, 7 месяцев назад

Это не невозможно, но, возможно, трудно и, возможно, не имеет большого смысла.

Возможно, потому что Java - это обычный язык программирования, если у вас есть какой-то способ доступа к данным, это не проблема. Обычно в современной ОС ядро ​​имеет слой, позволяющий каким-то образом обеспечить необработанный доступ к оборудованию. Также уже существуют драйверы в пользовательском пространстве, по крайней мере часть userpace-Part не должна быть проблемой для реализации на Java.

Это делает не слишком много смысла, потому что ядро ​​должно запустить JVM для запуска драйвера. Также JVM-реализации обычно содержат много памяти.

Вы также можете использовать Java-код, скомпилированный для выполнения на платформе (а не с помощью JVM). Обычно это не так эффективно, но оно может быть подходящим для драйвера устройства.

Вопрос в том, имеет ли смысл реализовать драйвер в Java? Или заявлено по-другому: на что вы надеетесь, если вы используете Java для реализации драйвера вместо другой альтернативы? Если вы можете ответить на этот вопрос, вы должны найти способ сделать это возможным.

В конце намек на JNode - проект, который пытается реализовать полную ОС исключительно на основе Java.

ответил(а) 2020-03-20T16:15:29+03:00 1 год, 8 месяцев назад

Возможно, вы слышали ссылку на JDDK?

Запись драйвера устройства на 100% в Java невозможна без встроенного кода, чтобы обеспечить взаимодействие между (1) точками входа и соглашениями о конкретном драйвере для ОС и (2) экземпляром JVM. Экземпляр JVM можно запустить "in-process" (и "in-process" может иметь разные значения в зависимости от ОС и от того, является ли драйвер драйвером режима ядра или пользовательского режима) или как отдельная пользовательская земля процесс, с которым может взаимодействовать тонкий, адаптивный уровень адаптивного драйвера, и на который упомянутый слой адаптации драйвера может разгрузить фактическую работу пользователя.

ответил(а) 2020-03-20T16:15:29+03:00 1 год, 8 месяцев назад

У вас слишком узкий вид драйверов устройств.

Я написал такие драйверы устройств поверх MOST в автомобильном приложении. Более широкое использование может быть драйвером для USB-устройств, если Java когда-либо получает приличную библиотеку USB.

В этих случаях существует общий протокол низкого уровня, который обрабатывается в собственном коде, а драйвер Java обрабатывает специфику устройства (форматы данных, конечные автоматы. ).

ответил(а) 2020-03-20T16:15:29+03:00 1 год, 8 месяцев назад

Возможно?

Вероятная?

Кроме того, удар производительности будет довольно большим, если в драйверах устройств будут использоваться управляемые языки.

ответил(а) 2020-04-06T16:39:29+03:00 1 год, 7 месяцев назад

Это возможно, чтобы скомпилировать java-код для инструкций, связанных с оборудованием (то есть не с JVM-байт-кодом). См. Например GCJ. С этим в руке вы намного ближе к возможности компиляции драйверов устройств, чем раньше.

Я не знаю, насколько это практично.

ответил(а) 2020-03-20T16:15:29+03:00 1 год, 8 месяцев назад

Для мотивации, пожалуйста, помните, что существует множество быстрых языков, которые лучше, чем C для программирования; они могут быть не такими быстрыми, как C, но они безопасные языки: если вы допустили ошибку, вы не получите поведения undefined. И "поведение undefined" включает в себя выполнение произвольного кода, предоставляемого некоторым злоумышленником, который форматирует ваш HD.
Многие функциональные языки обычно скомпилированы в собственный код.

Драйверы устройств содержат большинство ошибок в ядре ОС - я знаю, что для Linux (Линус Торвальдс и другие так говорят), и я слышал это для Windows. В то время как для диска или Ethernet-драйвера вам нужна первоклассная производительность, а в то время как в Linux-драйверах сегодня есть узкое место для 10G Ethernet или SSD-дисков, большинству драйверов не требуется такая большая скорость - все компьютеры ждут с той же скоростью.

Вот почему существуют различные проекты, позволяющие писать драйверы, которые запускаются за пределами ядра, даже если это вызывает замедление; когда вы можете это сделать, вы можете использовать любой язык, который вам нужен; вам просто понадобятся привязки Java для используемой библиотеки управления оборудованием - если вы пишете драйвер на C, у вас все равно будет библиотека с привязками C.

Для драйверов в режиме ядра, есть две проблемы, о которых я еще не видел:

Сбор мусора, и это жесткое требование. Вам нужно написать сборщик мусора в ядре; некоторые алгоритмы GC основаны на виртуальной памяти, и вы не можете их использовать. Кроме того, вам, вероятно, потребуется отсканировать всю память ОС, чтобы найти корни для GC. Наконец, я бы только доверял алгоритму, гарантирующему (мягкому) GC в реальном времени, что сделало бы накладные расходы еще большими.
Читая статью, о которой упоминалось о драйверах Java-устройств поверх Linux, они просто сдаются и требуют, чтобы программисты вручную освобождали память. Они пытаются утверждать, что это не поставит под угрозу безопасность, но я не думаю, что их аргумент убедителен - даже не ясно, понимают ли они, что сборка мусора необходима для безопасного языка.

Отражение и загрузка классов. Полная реализация Java, даже при использовании собственного кода, должна иметь возможность загружать новый код. Это библиотека, которую вы можете избежать, но если у вас есть интерпретатор или JIT-компилятор в ядре (и нет реальной причины, которая делает его технически невозможным).

. Документ о JVM в Linux очень плохой, и их показатели производительности не убедительны - действительно, они тестируют сетевой драйвер USB 1.1, а затем показывают, что производительность не так уж плоха! Однако, учитывая достаточно усилий, можно сделать что-то лучше.

Читайте также: