Что такое OpenJDK:
OpenJDK — это среда разработки языка Java, созданного 26 лет назад. В мире, где каждый год появляются новые технологии, четверть века — это солидный возраст. А самому проекту OpenJDK, в рамках которого развивается Java, в этом году исполнится 15 лет. По логике, Java давно уже должны были оттеснить на задний план более современные решения, однако он до сих пор остается одним из самых популярных языков. В чем секрет?
В этой статье мы постараемся дать ответ на этот вопрос, разберем процесс непрерывного улучшения OpenJDK, поговорим о разработке ПО с открытым исходным кодом и узнаем, что делает Java уникальным языком программирования.
В чем секрет успеха Java и OpenJDK?
Рождение проекта OpenJDK
История Java началась в 1991 г., когда инженеры Sun Microsystems решили создать язык, свободный от ограничений C и C++ и предлагающий более понятные API. Прототип получил название Oak, но затем был переименован в Java.
В 1994 г. Java стала доступна для скачивания, а первый публичный релиз состоялся в 1995 г. и практически сразу получил поддержку в популярном тогда веб-браузере Netscape.
Видео курс по Java 8 от JavaDevBlog.com
В 2006 г. Sun опубликовала исходный код виртуальной машины и компилятора Java HotSpot под лицензией GNU General Public License. В 2007 г. появился проект OpenJDK, в рамках которого версии Java 6 и 7 уже были выпущены с почти полностью открытым исходным кодом. В период с 2006 по 2008 гг. остававшиеся ранее закрытыми части кода Java постепенно были открыты полностью.
На данный момент код OpenJDK находится в свободном доступе. Над развитием проекта работает обширное сообщество, сосредоточенное вокруг компании Oracle. Существует множество дистрибутивов OpenJDK, включая Liberica JDK от BellSoft, исходный код которой тоже доступен каждому в соответствии с опенсорсным подходом к разработке ПО.
Принцип работы и преимущества OpenJDK
Создатели Java преследовали несколько целей:
- Сделать Java простым и понятным объектно-ориентированным языком.
- Обеспечить повышенную надежность и безопасность.
- Организовать Java как архитектурно-нейтральный язык благодаря возможности портирования JVM на любую платформу.
- Приложения, написанные на Java, должны обладать высокой производительностью.
Именно благодаря этим принципам OpenJDK сохраняет популярность, поэтому давайте подробно рассмотрим каждый их них и узнаем, как они влияют на жизнь разработчиков и конечных пользователей.
Java — архитектурно-нейтральный язык, а JVM портируется на любую платформу
Код Java не зависит от архитектуры: правильно написанное приложение запустится на любом устройстве: от ПК до современной микроволновки. Это стало возможным благодаря ключевому компоненту Java — JVM (Java Virtual Machine), среде исполнения приложений.
Обычно языки программирования компилируют код приложения в машинный код, уникальный для каждой платформы. Компилятор Java работает по-другому: он создает особый Java байткод, выполняемый Java Virtual Machine, которая может быть установлена в любой системе.
Java — что это такое?
JVM, в свою очередь, использует динамический компилятор, компилирующий код во время исполнения приложения.
Такой подход позволяет запускать один и тот же код на разных платформах, практически без изменений. Таким образом, следуя инструкциям, вы можете написать программу один раз и запускать ее везде. Поэтому если вы когда-либо хотели поиграть в Тетрис на сенсорном экране вашей микроволновки, именно Java поможет вам легко этого добиться!
А если говорить серьезно, подход «напиши один раз, запускай везде» устраняет проблему совместимости ваших приложений с разными архитектурами, ОС, драйверами или аппаратным обеспечением. Просто используйте виртуальную машину, предназначенную для конкретной платформы. У современных Java дистрибутивов широкий диапазон конфигураций, который постоянно дополняется новыми вариантами.
Java — простой и понятный объектно-ориентированный язык
В наше время Java уже не может похвастаться самым простым синтаксисом. Однако в скором будущем появится много новых фич (статья на английском языке), которые упростят написание и разбор кода на Java. И все же на момент создания синтаксис Java был гораздо более понятным, чем у других языков программирования.
Спецификация языка Java (Java Language Specification) — это набор правил, обеспечивающих соответствие всех инноваций одному стандарту и принципам Java. Все API совместимы друг с другом и со спецификацией Java, поэтому вы не только можете писать собственный код, не беспокоясь о совместимости, но и использовать код других разработчиков. Кроме того, в Java постоянно появляются новые технологии, такие как pattern matching for switch и Vector API, упрощающие написание кода.
Java связана с повышенной надежностью и безопасностью
Поскольку OpenJDK — это опенсорсный проект, любой разработчик может проверить код на предмет уязвимостей или улучшить его безопасность. Таким образом, новые обнаруженные уязвимости своевременно устраняются в рамках ежеквартальных CPU (Critical Patch Update) релизов. В случае Liberica JDK, наша команда техподдержки вносит внеплановые патчи безопасности.
А учитывая широкий выбор инструментов для мониторинга безопасности, таких как сканеры безопасности, вы можете быть уверены, что любые попытки нарушить безопасность ваших приложений обернутся провалом.
Приложения на Java высокопроизводительны
Существует много способов повышения производительности OpenJDK приложений. Например, компиляторы внутри JVM оптимизируют код для достижения пиковой производительности. Если для вас более важно время запуска, используйте технологию нативного образа GraalVM, которая упаковывает приложения вместе с рантаймом в один исполняемый бинарный файл.
Свяжитесь с нашими инженерами, чтобы узнать, почему Java идеально подходит для ваших разработок.
Как развивается OpenJDK
OpenJDK как космодром для запуска ракет в открытый космос
Язык программирования можно сравнить с космодромом, с которого запускают ракеты-носители. Разработчики, создающие приложения (ракеты) ожидают от инфраструктуры слаженной и бесперебойной работы. Любая ошибка в работе среды исполнения может привести к тому, что приложение (даже написанное идеально) не запустится, и компания понесет серьезные убытки.
Итак, почему же разработчики отдают предпочтение OpenJDK? Потому что это космодром, обслуживаемый профессионалами из надежной и обширной команды.
Давай узнаем, как именно ведутся работы в OpenJDK.
Процесс обновления OpenJDK
Разработка OpenJDK ведется в нескольких направлениях:
- устранение багов;
- внедрение новых фич и подготовка устаревших фич к удалению;
- развитие проектов параллельно с основной ветвью.
Давайте рассмотрим все три пункта подробнее.
Устранение багов
Сейчас разработка OpenJDK ведется в GitHub, поэтому процесс в основном автоматизирован и протекает гораздо быстрее, чем раньше.
Для того, чтобы сообщить о баге, разработчик OpenJDK заводит баг в багтрекере и описывает обнаруженную ошибку, которой затем присваивается номер. Если у него нет аккаунта, то он передает информацию о баге разработчику, который может завести баг.
Если разработчик хочет устранить баг, он создает форк (копию) репозитория. В этом форке он исправляет необходимую часть кода. После успешного тестирования разработчик создает pull request для интеграции изменений из локального репозитория.
Затем проводится тестирование изменений, и в случае удовлетворительных результатов они внедряются в основную ветвь OpenJDK и применяются в следующем релизе.
Такая система позволяет любому разработчику внести вклад в поиск и устранение багов.
Внедрение новых фич и подготовка устаревших фич к удалению
Новые фичи обычно внедряются поэтапно.
Сначала разработчики предлагают фичу в виде черновика JEP (draft). Член Управляющего совета, лид OpenJDK, решает, стоит ли брать эту фичу в работу.
После утверждения draft обновляют, внося необходимое описание и план базовой реализации, и таким образом он становится JEP (JDK Enhancement Proposal, предложение об улучшении JDK). JEP проходит множество процедур перед окончательным внедрением.
Процесс включения новой фичи аналогичен процессу исправления багов и ведется в форках проекта на GitHub. Этот процесс может растянуться на длительный срок, так как новые функции вводятся постепенно. В режиме Preview акцент делается на семантике и синтаксисе, в режиме Incubator вносят изменения в API.
Фича может находиться в режиме preview или incubator в течение максимум трех релизов перед окончательным внедрением. Это позволяет разработчикам протестировать новую функцию и посмотреть, как она работает в коде, чтобы не нарушить работу приложений. Обычно после двух previews или incubators новую функцию либо добавляют в релиз в итоговой форме, либо удаляют, если ее расценили как небезопасную, концептуально неправильную или непроизводительную.
Проекты вне основной ветви
Некоторые проекты, оказывающие существенное влияние на функционирование Java, разрабатываются за пределами основной ветви. В случае успешного завершения они сливаются с основным проектом и значительно меняют язык, но чтобы довести их до совершенства, требуется много времени. При необходимости разработчики могут самостоятельно внедрить их в используемый ими билд OpenJDK в текущем незаконченном состоянии для использования в своих приложениях. Со временем эти проекты становятся JEP и включаются в следующий релиз.
Изменения спецификации
Изменения спецификаций предлагаются и разрабатываются в формате JSR, Java Specification Request (запрос на изменение спецификации Java). Эти изменения подвергаются обзору и выносятся на голосование в Исполнительном комитете, в который входят компании и люди, определяющие направление усовершенствования технологий Java. BellSoft тоже входит в состав комитета (страница на английском языке) вместе с такими компаниями, как Alibaba, Amazon, IBM, Intel и Oracle.
График релизов
В рамках OpenJDK выходит три вида релизов:
- Ежеквартальный CPU релиз, о котором мы упоминали выше. Он предназначен для своевременного устранения проблем безопасности и включает в себя исправления уязвимостей и багов.
- Функциональный релиз — номерной релиз с новыми фичами, предназначенный для их тестирования. Благодаря этому релизу разработчики могут поэкспериментировать с новым функционалом, подготовить приложения к удалению фич, помеченных как устаревшие, и спланировать дальнейшую работу.
- LTS (Long Term Support) релиз с долгосрочной поддержкой. Это тоже номерной релиз, в котором внедрены полностью протестированные изменения, и он поддерживается вендорами дольше всего. Такие релизы обычно используются для разработки и запуска приложений в корпоративной среде.
До выхода Java 9 в 2017 г., мажорный релиз иногда приходилось ждать до пяти лет. Сейчас Oracle придерживается нового графика выпуска JDK, в соответствии с которым LTS релизы выходят раз в два года. Java 17 — последняя LTS-версия на данный момент, а следующей будет Java 21 в сентябре 2023 г.
Новые билды Liberica JDK выходят одновременно с другими популярными дистрибутивами.
Почему open source лучше проприетарных решений
Нужно помнить, что OpenJDK — проект open source. Почему это так важно? Потому что все продукты с закрытым исходным кодом — это, по сути, черные ящики. Чисто теоретически, могут ли они быть безопаснее? Да.
Но так же в теории они могут содержать большое количество уязвимостей, о которых никому не известно. Или никому, кроме хакеров, использующих баги для кражи денег или информации.
В случае с open source, это невозможно. Вы всегда знаете, что работает, а что нет и почему. Конечно, злоумышленники исследуют код, но то же самое делают и тысячи разработчиков и специалистов по информационной безопасности! Все обнаруженные уязвимости быстро устраняются. Все криптографические алгоритмы и инструменты безопасности можно протестировать.
Open source — это то, к чему пришла ИТ-индустрия за несколько десятков лет, поэтому опенсорсная разработка успела себя зарекомендовать. Java — яркий тому пример.
И еще кое-что. Если вы думаете, что можете улучшить OpenJDK — никто не может вам помешать это сделать!
Из этого рождается следующий вопрос.
Почему в OpenJDK столько поставщиков и дистрибутивов?
Многие компании создают собственные сборки OpenJDK на базе исходного кода, включая BellSoft, поставляющую Liberica JDK. Почему существует столько поставщиков и чем они различаются?
Ответ прост: функционалом, безопасностью и поддержкой. Все Java Development Kits, включая Oracle Java SE, основаны на OpenJDK. Все они могут обрабатывать код Java надлежащим образом, и в нормальных условиях они работают примерно одинаково. Различия становятся заметны, когда что-то идет не так.
Если вы, используя OpenJDK в корпоративных разработках, столкнулись с проблемой, с ней должны разобраться эксперты. Для этого вам нужно либо выделить команду разработчиков специально для поддержания стабильности OpenJDK, что стоит немалых денег, либо обратиться за помощью к третьей стороне. В случае OpenJDK вам нужно пройти все описанные выше этапы для устранения бага или направить запрос и ждать ответа.
Поставщики дистрибутивов как раз и нужны для того, чтобы оказывать поддержку своим клиентам. Некоторые делают это оперативно и эффективно, в случае с другими приходится долго общаться с менеджерами и юристами, из-за чего вы теряете время и деньги. Мы в BellSoft предоставляем экспертную поддержку и выдаем SLA по запросу в течение часа. Мы также поддерживаем старые версии Java, включая версии 6 и 7.
Еще одно преимущество сборок OpenJDK, включая Liberica JDK, заключается в дополнительной повышенной безопасности и производительности, благодаря чему ваши приложения максимально защищены.
Если у вас остались вопросы касательно Liberica JDK, скачайте технический документ, перейдя по ссылке ниже. В нем содержится подробная информация о нашем дистрибутиве.
Заключение
OpenJDK — это мощная платформа для разработки приложений, и с годами она становится только лучше!
Присоединяйтесь к огромному сообществу разработчиков, ежедневно использующих Java в своей работе. Все мы трудимся над улучшением языка, а это лучшая гарантия того, что Java будет процветать еще много лет.
Источник: axiomjdk.ru
Java SE 8: Лямбда-выражения и другие новшества
В версии языка программирования Java SE 8 с комплектом разработчика JDK 8 и внутренним номером версии., 1.8 произошли значительные усовершенствования благодаря внедрению лямбда-выражений — нового языкового средства с далеко идущим последствиями! Лямбда-выражения позволяют совершенно иначе подходить к программированию и написанию кода.
Лямбда-выражения вносят в Java возможности функционального программирования. В процессе программирования лямбда-выражения способны упростить и сократить объем исходного Кода,- требующегося для создания определенных конструкций, в том числе некоторых типов анонимных классов. Кроме того, лямбда- выражения вводят В язык новый оператор ( -> ) и элемент синтаксиса. И наконец, лямбда-выражения помогают сохранить живость и проворство языка, которые пользователи ужо, привыкли ожидать от Java.
Внедрение лямбда-выражений оказало обширное влияние и на библиотеки Java, которые были дополнены новыми средствами, выгодно использующими лямбда- выражения. К наиболее важным новшествам в библиотеке Java относится новый прикладной Программной интерфейс API потоков ввода-вывода, входящий в пакет java.util.stream . В этом прикладном интерфейсе API, оптимизированном с учетом лямбда-ВыраженИй, поддерживаются конвейерные операции с данными. Еще одним важным новшеством является пакет java.util.function , в котором определен целый ряд функциональных интерфейсов, обеспечивающих дополнительную поддержку лямбда-ВЫражений. В библиотеке Java API внедрены и другие, менее значительные средства! имеющие отношение к лямбда-выражениям.
Еще одно нововведение, навеянное лямбда-выражениями, касается интерфейсов. В версии JDK 8 Появилась возможность определять реализацию по умолчанию Метода, объявленного в интерфейсе. Если конкретная реализация такого метода отсутствует, то используется его реализация по умолчанию в интерфейсе.
Таким образом, обеспечивается постепенное развитие Интерфейсов, поскольку новый метод может бЫть введен в интерфейс, не нарушая существующий код. Это новшество позволяет также рационализировать реализацию интерфейса при наличии подходящих средств, доступных по умолчанию. К числу других средств, появившихся в JDK 8, относятся новый прикладной программный интерфейс API для обработки даты и времени, типовые аннотации и возможность использовать параллельную обработку при сортировке массива. Кроме того, в состав JDK 8 включена поддержка JavaFX 8 — последней версии нового каркаса (фреймворка) приложений Java с ГПИ. Предполагается, что каркас JavaFX станет неотъемлемой частью практически всех приложений Java и в конечном итоге заменит Swing для разработки большинства проектов на основе ГПИ.
Подводя краткий итог, можно сказать, что Java SE 8 является основной версией, значительно расширяющей вoзмoжнocти Java и изменяющей порядок написания кода на этом языке. Последствия выпуска этой версии еще долго будут оказывать влияние на все области применения Java. И это действительно очень важное обновление Java.
Культура нововведений Java
С самого начала язык Java оказался в центре культуры нововведений. Его первоначальная версия изменила подход к программированию для Интернета. Виртуальная машина Java (JVM) и байт-код совершенно изменили представление о безопасности и переносимости. Аплеты (а вслед за ними и сервлеты) вдохнули жизнь в веб. Процесс Java Community Process (JCP) изменил способ внедрения новых идей в язык.
Область применения Java никогда не оставалась без изменений в течение длительного периода времени. И Java SE 8 остается на момент самой востребованной версией в непрекращающемся динамичном развитии Java.
Источник: oracle-patches.com
Введение в Java 8
Сначала я хотел просто переводить официальный Tutorial по Java., но оказалось, что согласно лицензии переводить его запрещено. В этой главе будет рассмотрено создание простого приложения «Привет, Мир!» на Java 8.
- Текстовый редактор (подойдёт Notepad из Windows, Notepad++ или встроенный редактор из Far Manager).
- Java Development Kit 8 (статья писалась для 8 версии, но последующие версии тоже должны подойти).
Создайте текстовый редактором файл «Main.java». Имейте в виду, что очень важно правильно указывать расширение файла. Смотрите статью «Как включить отображение расширений файлов в Windows 7».
В файл вставьте следующее содержимое:
public class Main <
public static void main ( String [ ] args ) <
System . out . println ( «Hello, World!» ) ;
Это исходный код простой программы, которая выводит в консоль фразу “Hello, World! ”
Из этого кода нужно создать файл с платформонезависимым байт-кодом для виртуальной Java-машины. Для этого нужно выполнить команду в командной строке Windows («Пуск» -> «Все программы» -> «Стандартные» -> «Командная строка»):
javac Main.java
Здесь вы можете столкнуться с проблемой:
‘javac’ is not recognized as an internal or external command, operable program or batch file
Теперь рядом с «Main.java» появился файл «Main.class». Этот файл содержит байт-код для Java. Запустим его на выполнение (обратите внимание, что в этом случае расширения файла указывать НЕ нужно):
В результате в консоль выведется:
Hello, World!
Файл «Main.class» можно скопировать на другой компьютер с другой операционной системой (главное чтобы была установлена Java той же версии или выше) и он всё-равно будет работать. В этом и заключается платформонезависимость на уровне байт-кода.
Теперь давайте разберём сам исходный код программы, то есть файл «Main.java».
Первая строка объявляет публичный класс с именем Main :
public class Main <
Слово «публичный» означает, что к классу имеют доступ все другие классы. В Java каждый файл . java может иметь только один публичный класс (можно делать ещё вложенные классы, но это будет описано позже), и имя класса должно совпадать с именем файла.
public static void main ( String [ ] args )
Это начало описания публичного статического метода main . Метод main описан внутри фигурных скобок класса Main , что означает, что он относится к классу Main . В скобках описаны параметры метода — массив строк. Метод main с вот таким описанием в Java является начальной точкой выполнения программы. Параметры в методе main — это параметры переданные с командной строки:
Источник: urvanov.ru
Урок 2. Обзор Java: введение, преимущества и история создания языка программирования
Прежде, чем перейти к обучению, начнём с введения в java-программирование, разберёмся кратко, что это за такой язык программирования. Немного истории языка java. Язык Java разработан компанией Sun Microsystems, создателем которого был Джеймс Гослинг, и выпущен в 1995 году в качестве основных компонентов компании Sun Microsystems – Java платформ (Java 1.0 [J2SE]).
По состоянию на 2017 год последней версией Java Standard Edition является 8 (J2SE). С развитием Java, и её широкой популярностью, несколько конфигураций были построены для различных типов платформ. Например: J2EE – приложения для предприятий, J2ME – для мобильных приложений.
Sun Microsystems переименовала прежнюю версию J2 и ввела новые: Java SE, Java EE и Java ME. Введение в программирование Java различных версий подтверждало знаменитый слоган компании «Напиши один раз, запускай везде».
История создания языка Java
История создания языка Java начинается в июне 1991 года, когда Джеймс Гослинг создал проект для использования в одном из своих многочисленных сет-топ проектов. Язык, который рос вне офиса Гослинга, как дуб, Oak — первоначальное название Java до 1995 года, после в дальнейшем история Java продолжалась под именем Green, а позже был переименован как Java.
Но официальной датой создания языка Java считается 23 мая 1995 года, после выпуска компанией Sun первой реализации Java 1.0. Она гарантировала «Напиши один раз, запускай везде», обеспечивая недорогой стоимостью на популярных платформах.
13 ноября 2006 года, Sun выпустила большую часть как свободное и открытое программное обеспечение в соответствии с условиями GNU General Public License (GPL).
После 8 мая 2007 года судьба Java сложилась иначе. Компания завершила процесс, делая все чтобы исходный код был бесплатным и открытым, кроме небольшой части кода, на который компания не имела авторских прав.
Преимущества языка Java: краткий обзор
Объектно-ориентированный: в джава все является объектом. Дополнение может быть легко расширено, так как он основан на объектной модели.
Платформонезависимый: в отличие от многих других языков, включая C и C++, Java, когда был создан, он не компилировался в платформе конкретной машины, а в независимом от платформы байт-коде. Этот байт код распространяется через интернет и интерпретируется в Java Virtual Machine (JVM), на которой он в настоящее время работает.
Простой: процессы изучения и введение в язык программирования Java остаются простыми. Если Вы понимаете основные концепции объектно-ориентированного программирования, то он будет прост для Вас в освоении.
Безопасным: методы проверки подлинности основаны на шифровании с открытым ключом.
Архитектурно-нейтральным: компилятор генерирует архитектурно-нейтральные объекты формата файла, что делает скомпилированный код исполняемым на многих процессорах, с наличием системе Java Runtime.
Портативный: архитектурно-нейтральный и не имеющий зависимости от реализации аспектов спецификаций – все это делает Java портативным. Компилятор в Java написан на ANSI C с чистой переносимостью, который является подмножеством POSIX.
Прочный: прилагает усилия, чтобы устранить ошибки в различных ситуациях, делая упор в основном на время компиляции, проверку ошибок и проверку во время выполнения.
Многопоточный: функции многопоточности, можно писать программы, которые могут выполнять множество задач одновременно. Введение в язык Java этой конструктивной особенности позволяет разработчикам создавать отлаженные интерактивные приложения.
Интерпретированный: Java байт-код переводится на лету в машинные инструкции и нигде не сохраняется. Делая процесс более быстрым и аналитическим, поскольку связывание происходит как дополнительное с небольшим весом процесса.
Высокопроизводительный: введение Just-In-Time компилятора, позволило получить высокую производительность.
Распространенный: предназначен для распределенной среды интернета.
Динамический: программирование на Java считается более динамичным, чем на C или C++, так как он предназначен для адаптации к меняющимся условиям. Программы могут выполнять обширное количество во время обработки информации, которая может быть использована для проверки и разрешения доступа к объектам на время выполнения.
После небольшого введения, обзора преимуществ и истории Java, приступим к нашему обучению.
Инструменты, которые понадобятся
Для выполнения примеров, рассмотренных в этом учебнике, Вам нужен компьютер Pentium 200 МГц с минимальной оперативной памятью 64 Мб (рекомендуется оперативная память 128 Мб).
Вам также понадобится следующее программное обеспечение:
- Linux 7.1, Windows 95/98/2000/7/8 и выше или другая операционная система.
- JDK 5 и выше.
- Notepad или любой другой текстовый редактор.
Самоучитель обеспечит необходимыми навыками для создания GUI, сетевых и веб-приложений.
Ознакомившись с особенностями истории появления и преимуществами языка Java, Вы закончили урок введения в язык программирования. Следующий урок будет Вас вести к изучению языка и документации. Проинструктирует Вас о том, как установить и подготовить среду для разработки приложений.
Оглавление
- 1. Java – Самоучитель для начинающих
- 2. Java – Обзор языка
- 3. Java – Установка и настройка
- 4. Java – Синтаксис
- 5. Java – Классы и объекты
- 6. Java – Конструкторы
- 7. Java – Типы данных и литералы
- 8. Java – Типы переменных
- 9. Java – Модификаторы
- 10. Java – Операторы
- 11. Java – Циклы и операторы цикла
- 11.1. Java – Цикл while
- 11.2. Java – Цикл for
- 11.3. Java – Улучшенный цикл for
- 11.4. Java – Цикл do..while
- 11.5. Java – Оператор break
- 11.6. Java – Оператор continue
- 12. Java – Операторы принятия решений
- 12.1. Java – Оператор if
- 12.2. Java – Оператор if..else
- 12.3. Java – Вложенный оператор if
- 12.4. Java – Оператор switch..case
- 12.5. Java – Условный оператор (? 🙂
- 13. Java – Числа
- 13.1. Java – Методы byteValue(), shortValue(), intValue(), longValue(), floatValue(), doubleValue()
- 13.2. Java – Метод compareTo()
- 13.3. Java – Метод equals()
- 13.4. Java – Метод valueOf()
- 13.5. Java – Метод toString()
- 13.6. Java – Метод parseInt()
- 13.7. Java – Метод Math.abs()
- 13.8. Java – Метод Math.ceil()
- 13.9. Java – Метод Math.floor()
- 13.10. Java – Метод Math.rint()
- 13.11. Java – Метод Math.round()
- 13.12. Java – Метод Math.min()
- 13.13. Java – Метод Math.max()
- 13.14. Java – Метод Math.exp()
- 13.15. Java – Метод Math.log()
- 13.16. Java – Метод Math.pow()
- 13.17. Java – Метод Math.sqrt()
- 13.18. Java – Метод Math.sin()
- 13.19. Java – Метод Math.cos()
- 13.20. Java – Метод Math.tan()
- 13.21. Java – Метод Math.asin()
- 13.22. Java – Метод Math.acos()
- 13.23. Java – Метод Math.atan()
- 13.24. Java – Метод Math.atan2()
- 13.25. Java – Метод Math.toDegrees()
- 13.26. Java – Метод Math.toRadians()
- 13.27. Java – Метод Math.random()
- 14. Java – Символы
- 14.1. Java – Метод Character.isLetter()
- 14.2. Java – Метод Character.isDigit()
- 14.3. Java – Метод Character.isWhitespace()
- 14.4. Java – Метод Character.isUpperCase()
- 14.5. Java – Метод Character.isLowerCase()
- 14.6. Java – Метод Character.toUpperCase()
- 14.7. Java – Метод Character.toLowerCase()
- 14.8. Java – Метод Character.toString()
- 15. Java – Строки
- 15.1. Java – Метод charAt()
- 15.2. Java – Метод compareTo()
- 15.3. Java – Метод compareToIgnoreCase()
- 15.4. Java – Метод concat()
- 15.5. Java – Метод contentEquals()
- 15.6. Java – Метод copyValueOf()
- 15.7. Java – Метод endsWith()
- 15.8. Java – Метод equals()
- 15.9. Java – Метод equalsIgnoreCase()
- 15.10. Java – Метод getBytes()
- 15.11. Java – Метод getChars()
- 15.12. Java – Метод hashCode()
- 15.13. Java – Метод indexOf()
- 15.14. Java – Метод intern()
- 15.15. Java – Метод lastIndexOf()
- 15.16. Java – Метод length()
- 15.17. Java – Метод matches()
- 15.18. Java – Метод regionMatches()
- 15.19. Java – Метод replace()
- 15.20. Java – Метод replaceAll()
- 15.21. Java – Метод replaceFirst()
- 15.22. Java – Метод split()
- 15.23. Java – Метод startsWith()
- 15.24. Java – Метод subSequence()
- 15.25. Java – Метод substring()
- 15.26. Java – Метод toCharArray()
- 15.27. Java – Метод toLowerCase()
- 15.28. Java – Метод toString()
- 15.29. Java – Метод toUpperCase()
- 15.30. Java – Метод trim()
- 15.31. Java – Метод valueOf()
- 15.32. Java – Классы StringBuilder и StringBuffer
- 15.32.1. Java – Метод append()
- 15.32.2. Java – Метод reverse()
- 15.32.3. Java – Метод delete()
- 15.32.4. Java – Метод insert()
- 15.32.5. Java – Метод replace()
- 16. Java – Массивы
- 17. Java – Дата и время
- 18. Java – Регулярные выражения
- 19. Java – Методы
- 20. Java – Потоки ввода/вывода, файлы и каталоги
- 20.1. Java – Класс ByteArrayInputStream
- 20.2. Java – Класс DataInputStream
- 20.3. Java – Класс ByteArrayOutputStream
- 20.4. Java – Класс DataOutputStream
- 20.5. Java – Класс File
- 20.6. Java – Класс FileReader
- 20.7. Java – Класс FileWriter
- 21. Java – Исключения
- 21.1. Java – Встроенные исключения
- 22. Java – Вложенные и внутренние классы
- 23. Java – Наследование
- 24. Java – Переопределение
- 25. Java – Полиморфизм
- 26. Java – Абстракция
- 27. Java – Инкапсуляция
- 28. Java – Интерфейсы
- 29. Java – Пакеты
- 30. Java – Структуры данных
- 30.1. Java – Интерфейс Enumeration
- 30.2. Java – Класс BitSet
- 30.3. Java – Класс Vector
- 30.4. Java – Класс Stack
- 30.5. Java – Класс Dictionary
- 30.6. Java – Класс Hashtable
- 30.7. Java – Класс Properties
- 31. Java – Коллекции
- 31.1. Java – Интерфейс Collection
- 31.2. Java – Интерфейс List
- 31.3. Java – Интерфейс Set
- 31.4. Java – Интерфейс SortedSet
- 31.5. Java – Интерфейс Map
- 31.6. Java – Интерфейс Map.Entry
- 31.7. Java – Интерфейс SortedMap
- 31.8. Java – Класс LinkedList
- 31.9. Java – Класс ArrayList
- 31.10. Java – Класс HashSet
- 31.11. Java – Класс LinkedHashSet
- 31.12. Java – Класс TreeSet
- 31.13. Java – Класс HashMap
- 31.14. Java – Класс TreeMap
- 31.15. Java – Класс WeakHashMap
- 31.16. Java – Класс LinkedHashMap
- 31.17. Java – Класс IdentityHashMap
- 31.18. Java – Алгоритмы Collection
- 31.19. Java – Iterator и ListIterator
- 31.20. Java – Comparator
- 32. Java – Дженерики
- 33. Java – Сериализация
- 34. Java – Сеть
- 34.1. Java – Обработка URL
- 35. Java – Отправка Email
- 36. Java – Многопоточность
- 36.1. Java – Синхронизация потоков
- 36.2. Java – Межпоточная связь
- 36.3. Java – Взаимная блокировка потоков
- 36.4. Java – Управление потоками
- 37. Java – Основы работы с апплетами
- 38. Java – Javadoc
Источник: proglang.su