Разработка программ. Мои заметки.
May 5, 2018 at 17:20
Немного про новые версии Java. Что там в планах на будущее. Состояние на Май 2018 года.
Про Java 9. Вспомним былое.
В феврале прошлого (2017) года казалось что дата выхода девятки уже в который раз но всё-таки устаканилась и это событие всенепременно должно было случиться 27 июля 2017 года. Однако ребята нашли достойный повод попридержать коней (модульность) и финальный релиз девятки вышел только 21 сентября 2017 года.February 15, 2017 at 23:58
Интерфейсы в Java 8 и Java 9. И немного об абстрактных классах.
Недавно в интернете попался программистский анекдот. Совсем незамысловатый, но суть проблемы оттеняющий. Звучит вот так:
Собеседуют Java разработчика. Задают традиционный вопрос:
– В чём состоит отличие абстрактного класса от интерфейса?
– бла-бла… наличие реализации… бла-бла-бла….
– Хорошо, а в Java 8?
Вроде ничего особенного, но вопрос действительно слегка усложнился. Решил чуть детальнее осветить сей аспект.
February 15, 2017 at 23:55
Эволюция интерфейсов в Java. Нововведения в Java 9.
Как менялись возможности интерфейсов в Java. Текущие итоги.
Тут я не буду вдаваться в ООП теорию для чего нужны интерфейсы, я лишь постараюсь максимально полно перечислить синтаксические правила их использования и новые возможности, добавленные в процессе эволюции Java-платформы. Также остановлюсь на несложных моментах, которые порой не упоминаются в учебниках.
До Java 8, Java интерфейс — это конструкция, похожая на класс в котором отсутствуют реализации методов:
public interface MyStrongInterface
{
public int howManyTimes = 15;
public void doIt();
}
Начнём с требований к интерфейсу, которые были заложены в Java, в момент создания языка. С большего они верны и сейчас. Хотя позже появились и расширения. Мы их также рассмотрим.
February 9, 2017 at 20:18
Дата выхода Java 9 — 27 июля 2017 года.
Решил уточнить, не изменились ли снова сроки выхода JDK 9. Нет, не изменились. Java 9 is coming! Countdown to Java 9 Release Date. До официального релиза осталось 167 дней.
Напомню, что изначально дата выхода Java 9 планировалась на сентябрь прошлого (2016) года. Затем была отложена на март 2017 года. А затем, в сентябре, главный архитектор проекта Mark Reinhold предложил ещё раз отложить дату выхода на июль 2017. Новый план был официально утверждён во второй половине октября 2016 года. Выглядит он так:
- 2016/05/26 Feature Complete
- 2016/12/22 Feature Extension Complete
- 2017/01/05 Rampdown Start
- 2017/02/09 All Tests Run
- 2017/02/16 Zero Bug Bounce
- 2017/03/16 Rampdown Phase 2
- 2017/07/06 Final Release Candidate
- 2017/07/27 General Availability
По такому случаю хотелось бы ещё раз подытожить, что же нового определённо добавится в девятке. Список этот тайной не является, но есть мнение что в процессе работ он всё-таки корректировался. Формально, он приведён вот тут — JDK 9. Данные актуальны на 19 января 2017 года. Я посчитал количество позиций в списке. Их там 89 (ну если не ошибся, по любому — близко). 89 нововведений. Причём, там перечислены логически очерченные места. Это не просто формальный список новых методов или классов. Для простоты ориентации, была сделана попытка систематизировать все нововведения, разбив их на категории. О ней можно прочитать в блоге Oracle.
Было предложено использовать 6 категорий. Некоторые из них слегка туманно сформулированы (пересекаются с другими). И даже присутствует некоторая путаница в пояснениях. Автор не очень внимательно отнеслась к своей заметке. Два раза перечислила категорию New standards и забыла про категорию Gone. Но, тем не менее, попробуем придерживаться этой классификации. Итак.
February 8, 2017 at 23:10
NullPointerException в Java. Сlass Optional в Java 9.
8. Что нового появится в классе Optional в Java 9.
У класса Optional появится три новых заметных метода:
public void ifPresentOrElse( Consumer<? super T> action, Runnable emptyAction )
public Optional<T> or( Supplier<? extends Optional<? extends T>> supplier );
public Stream<T> stream();
Рассмотрим их детальнее.