java — вопросы с ответами

Средство программирования Java – это язык высокого уровня, который не зависит от платформы (Windows, Mac или Linux), является объектно-ориентированным и одним из самых популярных в мире.

Изначально был разработан корпорацией Sun Microsystems, которая затем стала частью американской девелоперской компанией Oracle.

Краткая история

Проект Java был основан канадским программистом Джеймсом Гослингом, первоначально назывался «Дуб» (по-английски - Oak), а затем был переименован в честь всемирно известной марки кофе. Цель создания – написание программ для бытовых приборов. Например, команда планировала написание софта для обычных видеомагнитофонов и кухонных тостеров.

Но к середине 90-х годов XX века приоритеты сместились – начали бурно развиваться сетевые технологии, поэтому руководство компании Sun решило переориентировать Java на создание интернет-приложений. И правильно сделало – популяризация Всемирной паутины превратило этот язык программирования в самый распространенный на всем земном шаре.

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

Сейчас Java применяется для написания множества серверных приложений и клиентского софта.

Особенности Java

Сама технология Явы опирается на синтаксис языка C, а объектно-ориентированные функции – на C++.

Как сейчас используется Java:

  1. Разработчик пишет приложение. Тип его системы не имеет значения.
  2. Продукт выкладывается в сети.
  3. Пользователь скачивает софт.
  4. Запуск программы (или версии) производится в любой ОС – Windows, Mac, Linux и любых других. Единственное требование – установка соответствующих библиотек, которые находятся в свободном доступе.

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

Полученная программа способна запускаться на любом компьютере при помощи виртуальной машины Java.

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

Еще одна особенность Java – автоматическая работа с памятью (утилизатор памяти). Разработчик не должен заботиться о ее освобождении - сама платформа оптимизирует код так, что не используемые объекты выгружаются из ячеек автоматически.

Что требуется для разработки и запуска программ

Компания Sun Microsystems распространяет программный продукт для разработчиков - Java Development Kit.

Потребителям продукции предоставляется возможность скачать исполняющий комплекс, основа которого – виртуальная машина Java (JVM).

Существуют как решения от компании Sun, так и сторонние:

  • Microsoft VM – разработка «Майкрософт» только для систем Windows. После конфликта в суде с компанией Sun для конкурирующей виртуальной машины установили ограничения;
  • Eclipse – отпочковавшийся от IBM некоммерческий проект. Кроме Java поддерживает другие языки. Отношения с компанией Sun также весьма натянутые.

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

Как сейчас применяют Java

Большинство пользователей слышали о таких языках как Basic, Pascal, C и C++. Половина из них используется для обучения, остальные – для написания операционных систем и драйверов.

А как используется Java:

  • софт, работающий под управлением мобильных операционных систем – Андроид или iОS, пишется именно не этом языке. Упомянутые корпорации являются крупнейшими заказчиками приложений на Java. Один только рынок мобильных ява-игр оценивается в 70 млрд. долларов США;
  • серверные и веб-приложения. Особенно часто можно встретить программы для специалистов финансового сектора. Заказчиками ПО становятся крупные банки и корпорации, которым требуются решения для обработки информации на серверах. Не отстают от них и государственные структуры – они заказывают прикладные приложения для внедрения в страховые, социальные и даже военные проекты;
  • программы для финансовых бирж и букмекеров – этот софт скачивается прямо с официальных сайтов трейдерами на бирже или азартными игроками. Отличительная особенность – в дальнейшем клиенту не нужно посещать сайт – он осуществляет вход в личный кабинет из Java-приложения. Это существенно снижает нагрузку на сервера;
  • научные программы – благодаря кроссплатформенности и открытости, Java завоевывает любовь интернационального ученого сообщества. Среду используют не только специалисты IT, но и астрофизики, генетики, лингвисты.

Причины, по которым платформа Java так популярна:

  1. Универсальность, отсутствие привязки к операционной системе.
  2. Открытый код.
  3. Простота. Тогда как написание сложного софта на C или C++ потребует поиска программиста высокого уровня (а их не так много), людей, имеющих опыт работы с Java, найти намного проще, да и скорость обучения таких спецов – много выше.

Последняя выпущенная в 2018 году версия - Java SE 11. Ее особенности:

  • появилось множество новых API – интерфейсов прикладного программирования. Это стало возможным благодаря включению в стандарт Java модуля HTTP Client и Flight Recorder;
  • убраны два модуля: Java EE и CORBA;
  • Java FX удален из ядра, он будет поставляться отдельно;
  • добавили поддержку TLS 1.3, что позволит ускорить загрузку веб-страниц на мобильных устройствах. Старые криптосистемы будут заменены на более современные алгоритмы;
  • служба сборки мусора Epsilon запущена в тестовом режиме.

Это только часть новшеств, для изучения подробностей придется заглянуть в официальную документацию.

Важно: последнюю версию будут поддерживать вплоть до 2026 года.

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

Несколько проектов, о которых слышали все:

  • Amazon – мировой гипермаркет. Основан на платформе Java;
  • приложение Uber – одноименная транснациональная компания использует эту программу для Android, чтобы быть на связи со своими клиентами;
  • сетевая игра Minecraft – не обошлось без Java и здесь. Кстати, шведский программист Перссон, создавший игру, только в 2012 году заработал около 100 млн.$.

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

Недостатки платформы. Java vs. C(C++)

Часто технологию Java упрекают в низкой скорости работы приложений. В то же время семейство «C» считается чемпионом по быстроте исполнения кода – ведь именно на этом языке компилируются драйвера практически для всех устройств, а также ядра операционных систем.

Бывает, программисты (особенно начинающие) затевают споры, выясняя, какой язык «круче», но следует признать, что далеко не все приложения пишутся на одном языке. Часто делаются вставки (в том числе и на низкоуровневом Ассемблере) для ускорения или оптимизации кода.

Тогда следует определить – в каких ситуациях лучше использовать Java, а в каких – C. И в чем они различаются.

  Java С++
Универсальность Оба языка универсальны, у Java это свойство проще реализуется.
Простота изучения Яву можно порекомендовать для новичка. Язык очень требователен к программисту. Любая небрежность может стать фатальной. Лучше изучать тем, кто уже имеет опыт написания кода.
Особенности применения Приложения, ориентированные на веб – например, программки для онлайн-чатов, сетевых кинотеатров, мессенджеров, игры. Для обеспечения работы «железа» - драйверы, системные утилиты для ОС, а также ПО для криптозащиты и антивирусные программы.
Совместное использование Использование C++ возможно – есть специальный инструмент JNI. Допускается, с применением JNI.

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

17 ответов
Некоторая предыстория: У меня есть Java 1.6 webapp, работающий на Tomcat 7. База данных - это MySQL 5.5. Раньше я использовал драйвер Mysql JDBC 5.1.23 для подключения к БД. Все сработало. Недавно я обновился до драйвера Mysql JDBC 5.1.33. После обновления Tomcat выбросит эту ошибку при запуске прил...
tomcat
timezone
jdbc
22 окт. 2014, в 20:05
7 ответов
Я столкнулся с тем, что Xamarin утверждает, что их реализация Mono на Android и их скомпилированные приложения на С# быстрее, чем Java-код. Кто-нибудь выполнял фактические тесты на очень похожие Java и С# -код на разных платформах Android для проверки таких претензий, мог бы опубликовать код и резул...
xamarin
dot42
16 июнь 2013, в 15:28
15 ответов
Я пытаюсь обновить определенную строку некоторое время, и кажется, что есть два способа сделать это. Из того, что я прочитал и попробовал, вы можете просто использовать: execSQL(String sql) метод или: update(String table, ContentValues values, String whereClause, String[] whereArgs). (Дайте мне зн...
21 март 2012, в 02:14
6 ответов
Я уже создал базу данных SQLite. Я хочу использовать этот файл базы данных с моим проектом Android. Я хочу связать эту базу данных с моим приложением. Вместо создания новой базы данных, как приложение может получить доступ к этой базе данных и использовать ее в качестве своей базы данных?...
02 фев. 2012, в 07:12
4 ответа
Я использую SQLite с Android, и я хочу знать, как наилучшим образом получить сгенерированный идентификатор строки, которую я вставил. Решение, которое, как я думаю, делает поиск после include, но выглядит не лучшим образом.
23 март 2011, в 18:09
32 ответа
Я работаю над тем, чтобы моя база данных говорила с моими Java-программами. Может ли кто-нибудь дать мне быструю и грязную программу-образец с помощью JDBC? Я получаю довольно грозную ошибку: Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link fail...
jdbc
06 июнь 2010, в 07:06
14 ответов
Я знаком с PHP, JavaScript и множеством других языков сценариев, но у меня нет большого опыта работы с Java или Android. Я ищу способ отправить данные POST на PHP script и отобразить результат.
httpconnection
client-server
30 май 2010, в 13:16
12 ответов
Как вы подключаетесь к базе данных MySQL в Java?
jdbc
15 май 2010, в 08:17
20 ответов
Я хочу использовать регионы для сворачивания кода в Eclipse; как это можно сделать на Java? Пример использования в С#: #region name //code #endregion
folding
26 фев. 2010, в 20:03
22 ответа
Я хочу присоединиться к String[] с помощью строки клея. Есть ли функция для этого?
arrays
join
04 окт. 2009, в 01:37
8 ответов
Что такое эквивалент Java final в С#?
reserved-words
access-modifiers
25 авг. 2009, в 11:33
16 ответов
Любой, кто работает на Android ( "gPhone" ), знает или знает, где я могу найти для него хороший инструмент ORM? Код написан на Java, а база данных - SQLite. То, что я хотел бы найти, - это инструмент, который дает определение объекта, может автоматически генерировать таблицы и функции CRUD (что было...
orm
crud
16 дек. 2008, в 15:35
14 ответов
У меня есть одна пользовательская java-программа, в которой я хотел бы иметь данные о хранилищах в небольшой базе данных, такой как Derby или Sqlite. Я хотел бы использовать уровень абстракции данных в своей программе. Hibernate, по-видимому, требует большой конфигурации и является излишним для того...
database
hibernate
17 нояб. 2008, в 19:19
12 ответов
Мне нужно, чтобы UTF-8 работал в моем Java webapp (сервлеты + JSP, без использования фреймворка) для поддержки äöå и т.д. для обычного финского текста и кириллических алфавитов, таких как ЦжФ для особых случаев. Моя настройка такова: Среда разработки: Windows XP Производственная среда: Debian Испо...
tomcat
utf-8
encoding
26 сен. 2008, в 12:39
10 ответов
Меня привлекает аккуратность, которую предоставляет одна база данных. В какой библиотеке драйвера/соединителя есть подключение и использование SQLite с Java. Я обнаружил библиотеку обертки, http://www.ch-werner.de/javasqlite, но есть ли другие более известные проекты?...
03 сен. 2008, в 06:14
Наверх
Меню