Разработка программ. Мои заметки.

Блог

February 23, 2017 at 23:59

NullPointerException в Java. Закончился цикл. От Истоков до Итогов.

Цикл про NullPointerException в Java — закончился. Вот ссылки на все статьи. Я планирую, что тексты не будут оставаться статичными, а будут меняться в процессе развития языка и упоминаемых инструментов.

1. NullPointerException в Java. Истоки.
2. NullPointerException в Java. The Billion Dollar Mistake.
3. NullPointerException в Java. Элегантное противостояние.
4. NullPointerException в Java. Аннотации как щит. FindBugs.
5. NullPointerException в Java. Checker Framework и Lombok.
6. NullPointerException в Java. Optional - что он такое есть?
7. NullPointerException в Java. Как использовать class Optional.
8. NullPointerException в Java. Сlass Optional в Java 9.
9. NullPointerException в Java. Итоги.

Под кат можно не ходить. Там тот же текст.


February 15, 2017 at 23:58

Интерфейсы в Java 8 и Java 9. И немного об абстрактных классах.

Interface Недавно в интернете попался программистский анекдот. Совсем незамысловатый, но суть проблемы оттеняющий. Звучит вот так:
Собеседуют Java разработчика. Задают традиционный вопрос:
– В чём состоит отличие абстрактного класса от интерфейса?
– бла-бла… наличие реализации… бла-бла-бла….
– Хорошо, а в Java 8?

Вроде ничего особенного, но вопрос действительно слегка усложнился. Решил чуть детальнее осветить сей аспект.

Эволюция интерфейсов в Java. Нововведения в Java 9.


February 9, 2017 at 20:18

Дата выхода Java 9 — 27 июля 2017 года.

Java 9 Решил уточнить, не изменились ли снова сроки выхода 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 6, 2017 at 22:01

Немного юмора.

Продолжил пополнять раздел “Разное”.


February 6, 2017 at 02:12

Следующая заметка об Optional.

Вчера написал следующую заметку о классе Optional. Описал как лучше с ним работать. Также обновил сайт в других местах. О себе, о разном. В планах есть ещё путевые заметки об Optional и его перспективах. Они будут чередоваться с другими статьями.

7. NullPointerException в Java. Как использовать class Optional.


January 31, 2017 at 23:58

Мы на финишной прямой!

Вот мы и добрались до сердца повествования. Быстро пришли. Начинаю вещать про class Optional. Рассчитываю уложиться в две заметки. Коротенько так, но зато всё по делу.

6. NullPointerException в Java. Optional - что он такое есть?


January 21, 2017 at 00:58

Движемся вперёд. Последовательно и методично.

Ещё два быстрых и изящных прыжка для запугивания NullPointerException.

4. NullPointerException в Java. Аннотации как щит. FindBugs.

5. NullPointerException в Java. Checker Framework и Lombok.


January 17, 2017 at 00:55

Элегантное противостояние.

Продолжаю вкрадчиво подступаться к несложному классу - Optional.

3. NullPointerException в Java. Элегантное противостояние.


January 12, 2017 at 23:02

Понравилась аналогия.

В процессе чтения некоторых тем, на глаза попался вопрос на stackoverflow - В чём разница между JPA и Hibernate? Понравился один из ответов: JPA is the dance, Hibernate is the dancer (JPA - это танец, Hibernate - танцор).


January 11, 2017 at 21:27

Начало.

В Java 8 появился новый класс - Optional. Совершенно несложный, присутствующий в стандартной библиотеке, и призванный улучшить наш код, в том числе немного обезопасив его от NullPoiunterException.

Решил разобраться, как с ним грамотнее обращаться то. Как, когда и кого он обезопасит. И действительно, обезопасит ли? Пока разбирался кто кого и как, пришлось зачерпнуть немного стороннего материала. Что-то даже пролилось через край, но в итоге родился небольшой цикл из нескольких заметок. Начал, как водится, с Большого Взрыва. С Букваря, другими словами.

Пояснение любой вещи всегда удобно начинать с Большого Взрыва, ибо пока дойдёшь до сути вопроса, имеешь небольшой задел по времени. Вроде как и пишешь что-то по делу, но суть пока не оттенил. Я то, с большего, человек исключительно волевой, сильно за хвост тянуть не буду, но всё равно немного мыслью по древу таки растёкся…

Уже есть целых две заметки. Букварь. Но скоро, разумеется, начну “молотить” по крупному. То есть писать про то, про что хотел написать изначально. Про Optional!

1. NullPointerException в Java. Истоки.

2. NullPointerException в Java. The Billion Dollar Mistake.