Академический Документы
Профессиональный Документы
Культура Документы
Java
Появился в 1995
ов mod
Медиафайлы на Викискладе
Содержание
1История создания
3История версий
o 3.1JDK 1.0
o 3.2JDK 1.1
o 3.3J2SE 1.2
o 3.4J2SE 1.3
o 3.5J2SE 1.4
o 3.6J2SE 5.0
o 3.7Java SE 6
o 3.8JavaFX
o 3.9Java ME Embedded
o 3.10Java SE 7
3.10.1Список нововведений
o 3.11Java SE 8
3.11.1Список нововведений
o 3.12Java SE 9
3.12.1Список нововведений
o 3.13Java SE 10
3.13.1Список нововведений
o 3.14Java SE 11
3.14.1Список нововведений
5Java и Microsoft
6Java и Android
o 7.1Производительность
8Основные возможности
9Основные идеи
o 9.1Примитивные типы
9.2.2Инициализация переменных
9.2.3Сборка мусора
o 9.3Классы и функции
9.3.1Конструкторы
9.3.3Завершённость (final)
9.3.4Абстрактность
9.3.5Интерфейсы
9.3.5.1Маркерные интерфейсы
o 9.4Обработка ошибок
o 9.5Пространство имён
10Примеры программ
11Средства разработки ПО
12См. также
13Примечания
o 13.1Комментарии
o 13.2Документация
o 13.3Источники
14Литература
15Ссылки
Библиотека Accessibility.
Java 2D.
Поддержка технологии drag-and-drop.
Полная поддержка Unicode, включая поддержку ввода на японском, китайском и
корейском языках.
Поддержка воспроизведения аудиофайлов нескольких популярных форматов.
Полная поддержка технологии CORBA.
JIT-компилятор, улучшенная производительность.
Усовершенствования инструментальных средств JDK, в том числе поддержка
профилирования Java-программ.
J2SE 1.2[править | править код]
Дата выпуска 8 декабря 1998 года[13]. Кодовое имя Playground. В данном случае встречается
путаница. Выпускались книги, например, Beginning Java 2 by Ivor Horton (Mar 1999), фактически по
J2SE 1.2 (бывшее название — Java 2). Вместе с тем по сей день такие книги публикуются,
например: Х. М. Дейтел, П. Дж. Дейтел, С. И. Сантри. Технологии программирования на Java 2.
Распределённые приложения (2011).
В то время, когда, как известно, Java 2 была исторически заменена следующими релизами,
подобные названия книг дезориентируют в понимании, о какой же версии Java они написаны на
самом деле. Если J2SE 1.2 принято считать за Java 2, а авторы книг за Java 2 принимают JDK 7,
это приводит к полной путанице.
J2SE 1.3[править | править код]
Дата выпуска 8 мая 2000 года. Кодовое имя Kestrel.
J2SE 1.4[править | править код]
Дата выпуска 6 февраля 2002 года. Кодовое имя Merlin.
J2SE 5.0[править | править код]
Спецификация Java 5.0 была выпущена 30 сентября 2004 года, кодовое имя Tiger. C этой версии
изменена официальная индексация, вместо Java 1.5 правильнее называть Java 5.0. Внутренняя
же индексация Sun осталась прежней — 1.x. Минорные изменения теперь включаются без
изменения индексации, для этого используется слово «Update» или буква «u», например, Java
Development Kit 5.0 Update 22. Предполагается, что в обновления могут входить как исправления
ошибок, так и небольшие добавления в API, JVM.
В данной версии разработчики внесли в язык целый ряд принципиальных дополнений:
Полноценная поддержка лямбда-выражений.
Ключевое слово default в интерфейсах для поддержки функциональности по
умолчанию.
Статические методы в интерфейсах.
Ссылки на методы и конструкторы[24][25].
Функциональные интерфейсы (предикаты, поставщики и т. д.)
Потоки (stream) для работы с коллекциями.
Новый API для работы с датами.
… (не закончено)
Java SE 9[править | править код]
В связи со сложностями в реализации модульной системы в рамках проекта Jigsaw, релиз
версии, первоначально запланированный 22 сентября 2016 года, несколько раз откладывался:
сначала дата была перенесена на 23 марта 2017 года, потом — на 27 июля 2017 года, а затем —
на 21 сентября 2017 года[26][27][28].
Последняя дата стала официальной датой релиза версии[29].
Список нововведений[править | править код]
Java SE — Java Standard Edition, основное издание Java, содержит компиляторы,
API, Java Runtime Environment; подходит для создания пользовательских приложений,
в первую очередь — для настольных систем.
Java EE — Java Enterprise Edition, представляет собой набор спецификаций для
создания программного обеспечения уровня предприятия. В 2017-м проект Java EE
был передан Eclipse Foundation[56], после чего был переименован в Jakarta EE[57].
Модули Java EE удалены из Java SE начиная с 11-й версии[58].
Java ME — Java Micro Edition, создана для использования в устройствах,
ограниченных по вычислительной мощности, например, в мобильных телефонах, КПК,
встроенных системах;
Java Card — технология предоставляет безопасную среду для приложений,
работающих на смарт-картах и других устройствах с очень ограниченным объёмом
памяти и возможностями обработки.
Язык Java активно используется для создания мобильных приложений под операционную
систему Android. При этом программы компилируются в нестандартный байт-код для
использования их виртуальной машиной Dalvik (начиная с Android 5.0 Lollipop виртуальная
машина заменена на ART). Для такой компиляции используется дополнительный инструмент, а
именно Android SDK (Software Development Kit), разработанный компанией Google.
Разработку приложений можно вести в среде Android Studio, NetBeans, в среде Eclipse, используя
при этом плагин Android Development Tools (ADT), или в IntelliJ IDEA. Версия JDK при этом
должна быть 5.0 или выше.
8 декабря 2014 года Android Studio признана компанией Google официальной средой разработки
под ОС Android.
1 в массивах, 4 в
boolean true, false
переменных[70]
byte 1 −128..127
char 2 0..216−1, или 0..65535
double a[10][20];
Foo b(30);
Нельзя преобразовывать объект типа int или любого другого примитивного типа
в указатель или ссылку и наоборот.
Над ссылками запрещено выполнять операции ++ , −− , + , − или любые другие
арифметические и логические операции ( && , || , ^^ ).
Преобразование типов между ссылками жёстко регламентировано. За
исключением ссылок на массивы, разрешено преобразовывать ссылки только
между наследуемым типом и его наследником, причём преобразование
наследуемого типа в наследующий должно быть явно задано, а во время
выполнения производится проверка его осмысленности. Преобразования ссылок
на массивы разрешены лишь тогда, когда разрешены преобразования их базовых
типов, а также нет конфликтов размерности.
В Java нет операций взятия адреса ( & ) или взятия объекта по адресу
( * ). Амперсанд ( & ) означает всего лишь «побитовое и» (двойной амперсанд —
«логическое и»). Однако для булевых типов одиночный амперсанд означает
«логическое и», отличающееся от двойного тем, что цепь проверок не
прекращается при получении в выражении значения false [73]. Например, a == b
&& foo() == bar() не повлечёт вызовов foo() и bar() в случае, если a !=
b , тогда как использование & — повлечёт в любом случае.
class Box {
int width; // ширина коробки
int height; // высота коробки
int depth; // глубина коробки
// Конструктор
Box(int a, int b) {
width = a;
height = b;
depth = 10;
}
double x = Math.sin(1);