Язык Java имеет интересную и непростую историю создания и развития с начала 1990-х годов. Платформа и язык Java начинались как внутренний проект в Sun Microsystems в декабре 1990 года, и разрабатывалась как альтернатива языкам программирования C и C++.
Разработкой нового языка занимался Джеймс Гослинг ( к Райану Гослингу отношения не имеет) и изначально назвал его Оak (в переводе с английского Дуб). К лету 1992 года команда смогла продемонстрировать части новой платформы, включая операционную систему Green OS, язык Oak, библиотеки и аппаратное обеспечение.
В 1994 году язык Oak был переименован в виду того, что название «Oak» уже использовалось как торговая марка компании Oak Technology (американская организация, поставщик электронных компонентов). Oak был переименован в Java, в честь марки кофе которое получило название одноименного острова Ява. Поэтому на официальной эмблеме изображена чашка с горячим кофе.
Java описывается как многоцелевой, строго типизированный язык объектно-ориентированного программирования (ООП) . С помощью этого языка программирования можно создавать приложения на нескольких устройствах. Его область применения очень широка, что позволяет нам создавать программное обеспечение для мобильных устройств, торговых терминалов, банкоматов, IoT (Интернета вещей), а также веб-страниц.
Пробежимся по некоторым характеристикам языка:
-Java сочетает в себе мощь компилируемых языков с гибкостью интерпретируемых языков. Компилятор ( javac ) компилирует исходный код в байт -код , затем виртуальная машина ( JVM ) выполняет этот байт-код, преобразовывая его в машиночитаемый код.
- Два этапа компиляции позволяют получить главную особенность языка: независимости от платформы и переносимость. Независимость от платформы означает , что программа, скомпилированная на одной машине, может выполняться на любой другой машине, независимо от ОС , если установлена JVM. Функция переносимости означает возможность запускать программу на разных машинах. На самом деле один и тот же код будет одинаково работать на разных платформах , независимо от совместимости оборудования или операционных систем, без каких-либо изменений, таких как перекомпиляция или корректировка исходного кода.
- Java активно поддерживает концепции объектно-ориентированного программирования, такие как инкапсуляция, абстракция, полиморфизм и наследование. Все инструкции и данные в программе Java должны быть добавлены внутри класса или объекта
- Java включает в себя несколько полезных функций, которые помогают нам писать надежные и безопасные приложения. Одна из важнейших — система управления памятью, наряду с автоматической сборкой мусора . По сравнению с такими языками, как C/C++, Java избегает концепции явных указателей и не требует, чтобы программисты вручную управляли выделенной памятью.Вместо этого сборщик мусора позаботится об удалении неиспользуемых объектов для освобождения памяти.
Кроме того, Java является строго типизированным языком, что позволяет снизить количество ошибок в приложении и предоставляет механизмы обработки ошибок.
- Наличие многопоточности — это функция, которая позволяет выполнять несколько потоков одновременно то есть, писать Java-программы, которые решают множество задач одновременно, определяя несколько потоков. Преимущество многопоточности в том, что она не занимает память для каждого потока — все потоки используют общую область памяти .
Первой стабильной версией Java стала JDK 1.0, релиз которой состоялся 23 января 1996 года.
Затем JDK 1.1 (19 февраля 1997). Наиболее значимые дополнения: обширное изменение событий библиотеки AWT, в язык добавлены внутренние классы а так же добавлен JDBC — платформенно-независимый промышленный стандарт взаимодействия Java-приложений с различными СУБД.
Следующей базовой версией Java стала версия Java 2, символизировавшая собой второе поколение. Первой версии Java 2 был присвоен номер 1.2. С появлением версии 2, SUN Microsystems стала выпускать Java в виде пакета J2SE (Java 2 Platform Standard Edition — Стандартная версия платформы Java 2) и теперь номера версий указываются применительно к этому продукту.
Самым крупным обновлением языка считается 8 версия Java( вышла 18 марта 2014 года): Лямбда-выражения и аннотация @FunctionalInterface; возможность наличия у метода интерфейса реализации по умолчанию; Date & Time API (java.time); Stream API – возможность выполнения последовательности операций над элементами массива, а также возможность производить их параллельно (parallelStream); добавлены операции над ассоциативными массивами (Map); появились ссылки на метод или конструктор; появились предикаты, функции, поставщики (Фабрики объектов), опциональные значения, конструктор компаратора.
И сейчас 8 версия Java во многих компаниях считается основной, однако большая часть компаний переходят на версии 11 и 17.
Язык Java и сегодня остается одним из самых востребованных языков программирования в IT. По данным индекса TIOBE, ранжирующего языки программирования на основе поисковых запросов о них, Java стабильно находится на высоких позициях в рейтинге с момента его запуска.