SlideShare a Scribd company logo
1 of 95
Download to read offline
1

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java в движении
Алексей Фёдоров
Software Engineer, Oracle,
JCK, Java Platform Group
jug.msk, Москва
02.12.2013
«А ты кто такой?»
Software Engineer
– Cначала были военные,
– потом legacy systems на Java EE
– С 2011 года в Oracle: JCK Team
 Community driver: JUG.ru, CodeFreeze
 Conferences: Jpoint, Joker
 Peopleware advocate
 ФМЛ 239, СПбГУ, к.ф.-м.н.

@23derevo, http://about.me/alexey.fyodorov
3

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Agenda

Java Platform Updates
Java Platform Tradeoffs

4

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Часть 1.
Java Platform Updates

5

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
The following is intended to outline our
general product direction. It is intended for
information purposes only, and may not be
incorporated into any contract.
It is not a commitment to deliver any material,
code, or functionality, and should not be
relied upon in making purchasing decisions.
The development, release, and timing of any
features or functionality described for
Oracle’s products remains at the sole
discretion of Oracle.
6

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
С чем работает Java-приложение?

My Javaapplication

7

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
С чем работает Java-приложение?
JDK
My Javaapplication

8

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
С чем работает Java-приложение?
JDK

Frameworks

My Javaapplication

9

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
С чем работает Java-приложение?
JDK

Frameworks

My Javaapplication

OS
10

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
С чем работает Java-приложение?
JDK

Frameworks

My Javaapplication

Hardware
11

OS

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
С чем работает Java-приложение?
JDK

Frameworks

My Javaapplication

Hardware
12

OS

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Как исправлять баги

App
Frameworks

JDK
OS
Hardware
13

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Обновления
 Минимизируйте время на обновление

Вашего приложения
 Библиотеки
 ОС
Железо

14

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Обновления
 Минимизируйте время на обновление

Вашего приложения
 Библиотеки
 ОС
Железо

15

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Обновления Java
Типы обновлений:

–Release update :7u17 → 7u21
–Major update: Java 7 → Java 8

16

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Обновления Java
Типы обновлений:

–Release update :7u17 → 7u21
–Major update: Java 7 → Java 8

17

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java 7 Updates versioning
7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 …

18

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java 7 Updates versioning
7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 …
–7u8 ?
–7u9, 7u10, 7u11…

19

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java 7 Updates versioning
7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 …
–7u8 ?
–7u9, 7u10, 7u11…
–7u12?

20

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java 7 Updates versioning
7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 …
–7u8 ?
–7u9, 7u10, 7u11…
–7u12?
7u13, 7u15, 7u17 …

21

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java 7 Updates versioning
7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 …
–7u8 ?
–7u9, 7u10, 7u11…
–7u12?
7u13, 7u15, 7u17 …
–7u19 ?

22

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java 7 Updates versioning
7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 …
–7u8 ?
–7u9, 7u10, 7u11…
–7u12?
7u13, 7u15, 7u17 …
–7u19 ?

7u21, 7u25
23

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java 7 Updates versioning
7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 …
–7u8 ?
–7u9, 7u10, 7u11…
–7u12?
7u13, 7u15, 7u17 …
–7u19 ?

7u21, 7u25
–7u29?
24

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java 7 Updates versioning
7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 …
–7u8 ?
–7u9, 7u10, 7u11…
–7u12?
7u13, 7u15, 7u17 …
–7u19 ?

7u21, 7u25
–7u29?
25

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
26

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Номера обновлений в JDK 7
 Раз в два месяца

Чётные
– Исправление ошибок
– Новая функциональность
 Нечётные
– Исправление ошибок

– Обновления системы безопасности
 CPU = ?

27

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Номера обновлений в JDK 7
 Раз в два месяца

Чётные
– Исправление ошибок
– Новая функциональность
 Нечётные
– Исправление ошибок

– Обновления системы безопасности
 CPU = Critical Patch Update

28

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Номера обновлений в JDK 7
Функциональность
–7u40, 7u60, 7u80
–8, 8u20, 8u40

29

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Номера обновлений в JDK 7
Функциональность
–7u40, 7u60, 7u80
–8, 8u20, 8u40

Безопасность
–7u45, 7u51, 7u55, 7u61

30

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Номера обновлений в JDK 7
Функциональность
–7u40, 7u60, 7u80
–8, 8u20, 8u40

Безопасность
–7u45, 7u51, 7u55, 7u61

–Exploit?

31

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Номера обновлений в JDK 7
Функциональность
–7u40, 7u60, 7u80
–8, 8u20, 8u40

Безопасность
–7u45, 7u51, 7u55, 7u61

–Exploit?
Emergency Releases!

(7u47, 7u49, 7u53, 7u57 etc.)
32

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Нечётные обновления –
Security Baseline Updates
Любой патч, закрывающий какие-либо
уязвимости в JDK 7 должен быть
портирован в JDK 6 и все остальные
поддерживаемые версии

33

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Нечётные обновления –
Security Baseline Updates

34

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Чётные обновления: Feature Updates
JDK 7 Update 40 Highlights (пример)
 Olson Data 2013d
 Java Mission Control (JMC) 5.2
 JavaFX 2.2.40
 Serviceability Agent support for ARM
 Retina Display support on Mac OS X
 Deployment Rule Set
 Option to disable "JRE out of date" warning
35

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Чётные обновления: Feature Updates
JDK 7 Update 40 Highlights (продолж.)
 New Security Warnings for Unsigned and
Self-Signed Applications
JAXP Security Improvements
 Security Baselines не изменились!

36

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Другие технологии
Java SE:
 Standalone Technologies: JAXP, JAXB,
JNLP, JAX-WS (Везде своя нумерация!)
 IANA Time Zone Database (aka Olson Data)
 New platforms: Mac OS X, Windows 8.1 etc.
 New HotSpot VM: new GC, new –XX options
Not Java SE:

37

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Правило Joe Darcy

Не бывает стопроцентно
совместимых изменений!

38

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Протокол взаимодействия
API spec
(aka Javadoc)

JLS8

JSR 337

Standalone
documents
39

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

JVMS
8
Спецификация платформы
Спецификация платформы Java –

это протокол!
– Версия! (Java SE 6, 7, 8)
Протокол нельзя менять часто!

40

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Протокол SMTP
Тысячи серверов
Тысячи клиентов
тысячи + тысячи = тысячи

Timeline
1982 – RFC 821
2001 – RFC 2821
2008 – RFC 5321
41

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java
Миллионы Java-приложений
Тысячи реализаций Java

миллионы + тысячи = миллионы
Timeline

1996 – JDK 1.0

1997 – J2SE 1.1

2004 – J2SE 5.0

1998 – J2SE 1.2

2006 – Java SE 6

2000 – J2SE 1.3
42

2002 – J2SE 1.4

2011 – Java SE 7

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Как управлять изменениями в Java
OpenJDK / Oracle JDK
 JDK QA
Community
 Java-программисты по всему миру

43

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java от других вендоров
 Процедура сертифицикации
 Java Compatibility Kit (JCK)
 Сотни тысяч тестов
 Feedback от лицензиатов

44

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Как мы управляем изменениями?
 Специальные процессы и процедуры

Множественное ревью на предмет

Сompatibility, Security, Performance etc.
– Tracking, Accepting / Rejecting
– Проверяются изменения
 В спецификации
 В реализации
 JCP + OpenJDK
45

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Какие изменения допустимы?
Предлагаемое изменение
Добавить что-нибудь в Public API
(пакет / класс / метод / поле)
Удалить что-нибудь из Public API

Update Major
release
+

-

-*

Добавить что-нибудь в Private API

+

+

Удалить что-нибудь из Private API

+**

+

Изменить спецификацию чего-нибудь

-

+**

Исправить ошибку (несоответствие
+**,***
поведения требуемому в спецификации)

+

* - @Deprecated, @Override ** - проанализировать риски
*** - см. следующий слайд
46

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Adding null key to empty TreeMap
without Comparator should throw NPE
JDK-5045147

47

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

JDK-2188127
«Давайте разрешим
менять спецификацию чаще!»
 Кто начнёт сходить с ума?
– Пользователи
– Инженеры Java Platform
– Лицензиаты Java

Совместимость может нарушаться!
– см. следующий слайд

48

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Совместимость может нарушаться!
Compatibility:
– binary
– source
– Behavioral
 Bug-2-Bug

Incompatibilities
– between Java SE 7 and Java SE 6
– between JDK 7 and JDK 6
– Java SE 7 and JDK 7 Compatibility
49

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Наши инструменты (TCK Tools)
Проверяются изменения в сигнатурах
 SigTest - http://sigtest.java.net/
– JDK – Public API
 Жёсткие правила для Major Releases
 Очень жёсткие правила для Updates
– NetBeans – Plugin API: полегчало!
 Разметка спецификации и привязка тестов
– SpecTrac / SpecDiff
 http://jcp.org/en/resources/tdk
50

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Выход Java 8 передвинут на март
 http://mreinhold.org/blog/secure-the-train
– Люди не берутся из ниоткуда

– Добавляя людей в конце проекта, сроки

не уменьшить
– Какие рассматривались варианты?
 Выкинуть Lambda
 Выпустить в срок с сыроватыми Lambda
 Подвинуть на полгода
 http://openjdk.java.net/projects/jdk8/
51

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Что в итоге
 Обновление платформы, используемой

сотнями миллионов людей –
это очень сложный процесс!
 Разные политики обновления для
Major Releases (Java 7 → Java 8) и для
Updates (7uXX)
– Отслеживание/Управление изменениями
– Специальные процессы
– Review изменений разными командами
– Инструменты: SpecTrac, SigTest и другие
52

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Компромиссы в обновлении
платформы Java
Инженерное искусство – это искусство
компромисса!
A trade-off (or tradeoff) is a situation that
involves losing one quality or aspect of
something in return for gaining another
quality or aspect.

53

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java Platform Tradeoffs
 Cкорость выхода новых версий vs. Качество
 Cкорость vs. частота выпуска CPU

Совместимость vs. Развитие
 И так далее
– Подробности после перерыва!

54

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java Platform Updates

Q&A
55

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Часть 2.
Java Platform Tradeoffs

56

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Agenda
Частота выхода апдейтов
 Фикс багов ломает совместимость
 История про Substring
 Совместимость как груз тянущий вниз
 История о неизвестных отцах
 История о четырёх аккумуляторах
 GUI: Нативный или универсальный?
 История про Beep

Как быть хитрому лицензиату?
57

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Сюжет 1
Апдейты: часто или редко?

58

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Обновления Java и политика

59

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
60

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Сюжет 2
Исправление багов
или совместимость?

61

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Adding null key to empty TreeMap
without Comparator should throw NPE
JDK-5045147

62

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

JDK-2188127
Adding null key to empty TreeMap
without Comparator should throw NPE
JDK-5045147

63

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

JDK-2188127
Сюжет 3
String.substring()

64

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
65

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
66

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
67

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Since JDK
7u6
68

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Performance vs. Memory

69

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Сюжет 4
Совместимость или новые фичи?

70

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
71

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
72

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Сюжет 5
Неизвестные отцы

73

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
74

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
75

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
76

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
77

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Сюжет 6
История о четырёх аккумуляторах

78

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
79

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
80

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
81

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Утекающий Striped64
Варианты решения:
 Делегирование вместо наследования
 Дупликация кода
Кодогенерация в билде JDK

82

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Утекающий Striped64
Варианты решения:
 Делегирование вместо наследования
 Дупликация кода
Кодогенерация в билде JDK
 Serialization Proxy

83

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Сериализация
Implements Serializable
 Есть в любой JDK
Гибкая
– writeObject, readObject, readObjectNoData
– writeReplace, readResolve
– Externalizable
 Легко использовать
Много лет, мало багов
84

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Сюжет 7
GUI: Нативный или универсальный?

85

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
86

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Сюжет 7
Toolkit.beep()

87

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
88

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java 7

89

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java 7

Java 8

90

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Сюжет 8
История о хитром лицензиате

91

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
92

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Выводы
 Большинство tradeoff’ов связаны с

совместимостью
– в том или ином её смысле
 Имеющиеся риски трудно оценивать
 Разные риски в update releases
и в major updates
 Java двигается в Embedded
– Больше различий в поведении

93

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Q&A
94

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Мои контакты
@23derevo
alexey.x.fedorov@oracle.com
fyodorov.spbu@gmail.com
Skype: fyodorov.spbu

http://about.me/alexey.fyodorov

95

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

More Related Content

Viewers also liked

Viewers also liked (17)

Cuestionario cop
Cuestionario copCuestionario cop
Cuestionario cop
 
Los arribes del duero
Los arribes del dueroLos arribes del duero
Los arribes del duero
 
SSAC Exec Summary 2014 2015
SSAC Exec Summary 2014 2015SSAC Exec Summary 2014 2015
SSAC Exec Summary 2014 2015
 
Módulo 2 informática 2015
Módulo 2 informática 2015Módulo 2 informática 2015
Módulo 2 informática 2015
 
CHECK MARK FLYER FREE STUFF
CHECK MARK FLYER FREE STUFFCHECK MARK FLYER FREE STUFF
CHECK MARK FLYER FREE STUFF
 
Resume2015-V1
Resume2015-V1Resume2015-V1
Resume2015-V1
 
50 Anos do Código Florestal - Paulo Sérgio
50 Anos do Código Florestal  - Paulo Sérgio50 Anos do Código Florestal  - Paulo Sérgio
50 Anos do Código Florestal - Paulo Sérgio
 
Presentación11
Presentación11Presentación11
Presentación11
 
Tabela copinha ouro
Tabela copinha ouroTabela copinha ouro
Tabela copinha ouro
 
Beraldi luciana tcc
Beraldi luciana tccBeraldi luciana tcc
Beraldi luciana tcc
 
Anexo ii portaria-n°-0511
Anexo ii portaria-n°-0511Anexo ii portaria-n°-0511
Anexo ii portaria-n°-0511
 
Regulamento técnico de suíço
Regulamento técnico de suíçoRegulamento técnico de suíço
Regulamento técnico de suíço
 
Calendario 2012 2
Calendario 2012 2Calendario 2012 2
Calendario 2012 2
 
Orden bipolar (1)
Orden bipolar (1)Orden bipolar (1)
Orden bipolar (1)
 
Apresentação1
Apresentação1Apresentação1
Apresentação1
 
360_presentation
360_presentation360_presentation
360_presentation
 
REGULAMENTO GERAL - OURO-SC
REGULAMENTO GERAL - OURO-SCREGULAMENTO GERAL - OURO-SC
REGULAMENTO GERAL - OURO-SC
 

Similar to Java in Motion

Занимательные истории из жизни технической поддержки JVM
Занимательные истории из жизни технической поддержки JVMЗанимательные истории из жизни технической поддержки JVM
Занимательные истории из жизни технической поддержки JVMNikita Lipsky
 
Полезное покрытие кода
Полезное покрытие кодаПолезное покрытие кода
Полезное покрытие кодаSQALab
 
What to expect from Java 9
What to expect from Java 9What to expect from Java 9
What to expect from Java 9JavaDayUA
 
OEM 12c релиз 3 — новые возможности и перспективы
OEM 12c релиз 3 — новые возможности и перспективыOEM 12c релиз 3 — новые возможности и перспективы
OEM 12c релиз 3 — новые возможности и перспективыAndrey Akulov
 
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлокиДоклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлокиGonchik Tsymzhitov
 
Новые возможности платформы Oracle 12c для хранилищ данных
Новые возможности платформы Oracle 12c для хранилищ данныхНовые возможности платформы Oracle 12c для хранилищ данных
Новые возможности платформы Oracle 12c для хранилищ данныхAndrey Akulov
 
Oracle Application Management and Testing Suites for Siebel CRM
Oracle Application Management and Testing Suites for Siebel CRMOracle Application Management and Testing Suites for Siebel CRM
Oracle Application Management and Testing Suites for Siebel CRMАлексей Распопов
 
«Oracle Application Quality Management: Средства тестирования и управления те...
«Oracle Application Quality Management: Средства тестирования и управления те...«Oracle Application Quality Management: Средства тестирования и управления те...
«Oracle Application Quality Management: Средства тестирования и управления те...Andrey Akulov
 
Liferay Portal и приемы разработки
Liferay Portal и приемы разработкиLiferay Portal и приемы разработки
Liferay Portal и приемы разработкиdevclub
 
Java худеет. Спроси меня как. Уменьшение размера дистрибутива Java приложения...
Java худеет. Спроси меня как. Уменьшение размера дистрибутива Java приложения...Java худеет. Спроси меня как. Уменьшение размера дистрибутива Java приложения...
Java худеет. Спроси меня как. Уменьшение размера дистрибутива Java приложения...Nikita Lipsky
 
Java Enterprise without Java
Java Enterprise without JavaJava Enterprise without Java
Java Enterprise without JavaOlena Syrota
 
Проверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийПроверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийMedia Gorod
 
Сценарии перехода в облако. Сравнительный анализ
Сценарии перехода в облако. Сравнительный анализСценарии перехода в облако. Сравнительный анализ
Сценарии перехода в облако. Сравнительный анализpcweek_ua
 
Soa12c launch 2 features cr
Soa12c launch 2 features crSoa12c launch 2 features cr
Soa12c launch 2 features crVasily Demin
 
Новости и анонсы Oracle Open World 2014
Новости и анонсы Oracle Open World 2014Новости и анонсы Oracle Open World 2014
Новости и анонсы Oracle Open World 2014Andrey Akulov
 
CodeFest 2014. Шипилёв А. — Java Benchmarking: как два таймстампа записать!
CodeFest 2014. Шипилёв А. — Java Benchmarking: как два таймстампа записать!CodeFest 2014. Шипилёв А. — Java Benchmarking: как два таймстампа записать!
CodeFest 2014. Шипилёв А. — Java Benchmarking: как два таймстампа записать!CodeFest
 

Similar to Java in Motion (20)

Занимательные истории из жизни технической поддержки JVM
Занимательные истории из жизни технической поддержки JVMЗанимательные истории из жизни технической поддержки JVM
Занимательные истории из жизни технической поддержки JVM
 
Полезное покрытие кода
Полезное покрытие кодаПолезное покрытие кода
Полезное покрытие кода
 
What to expect from Java 9
What to expect from Java 9What to expect from Java 9
What to expect from Java 9
 
OEM 12c релиз 3 — новые возможности и перспективы
OEM 12c релиз 3 — новые возможности и перспективыOEM 12c релиз 3 — новые возможности и перспективы
OEM 12c релиз 3 — новые возможности и перспективы
 
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлокиДоклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
 
Новые возможности платформы Oracle 12c для хранилищ данных
Новые возможности платформы Oracle 12c для хранилищ данныхНовые возможности платформы Oracle 12c для хранилищ данных
Новые возможности платформы Oracle 12c для хранилищ данных
 
Oracle Application Management and Testing Suites for Siebel CRM
Oracle Application Management and Testing Suites for Siebel CRMOracle Application Management and Testing Suites for Siebel CRM
Oracle Application Management and Testing Suites for Siebel CRM
 
«Oracle Application Quality Management: Средства тестирования и управления те...
«Oracle Application Quality Management: Средства тестирования и управления те...«Oracle Application Quality Management: Средства тестирования и управления те...
«Oracle Application Quality Management: Средства тестирования и управления те...
 
JD Edwards Orchestrator and AIS server
JD Edwards Orchestrator and AIS serverJD Edwards Orchestrator and AIS server
JD Edwards Orchestrator and AIS server
 
0. hello java world
0. hello java world0. hello java world
0. hello java world
 
Liferay Portal и приемы разработки
Liferay Portal и приемы разработкиLiferay Portal и приемы разработки
Liferay Portal и приемы разработки
 
SAI
SAISAI
SAI
 
MySQL 8.0
MySQL 8.0MySQL 8.0
MySQL 8.0
 
Java худеет. Спроси меня как. Уменьшение размера дистрибутива Java приложения...
Java худеет. Спроси меня как. Уменьшение размера дистрибутива Java приложения...Java худеет. Спроси меня как. Уменьшение размера дистрибутива Java приложения...
Java худеет. Спроси меня как. Уменьшение размера дистрибутива Java приложения...
 
Java Enterprise without Java
Java Enterprise without JavaJava Enterprise without Java
Java Enterprise without Java
 
Проверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийПроверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложений
 
Сценарии перехода в облако. Сравнительный анализ
Сценарии перехода в облако. Сравнительный анализСценарии перехода в облако. Сравнительный анализ
Сценарии перехода в облако. Сравнительный анализ
 
Soa12c launch 2 features cr
Soa12c launch 2 features crSoa12c launch 2 features cr
Soa12c launch 2 features cr
 
Новости и анонсы Oracle Open World 2014
Новости и анонсы Oracle Open World 2014Новости и анонсы Oracle Open World 2014
Новости и анонсы Oracle Open World 2014
 
CodeFest 2014. Шипилёв А. — Java Benchmarking: как два таймстампа записать!
CodeFest 2014. Шипилёв А. — Java Benchmarking: как два таймстампа записать!CodeFest 2014. Шипилёв А. — Java Benchmarking: как два таймстампа записать!
CodeFest 2014. Шипилёв А. — Java Benchmarking: как два таймстампа записать!
 

More from Alexey Fyodorov

Non-blocking Michael-Scott queue algorithm
Non-blocking Michael-Scott queue algorithmNon-blocking Michael-Scott queue algorithm
Non-blocking Michael-Scott queue algorithmAlexey Fyodorov
 
How threads help each other
How threads help each otherHow threads help each other
How threads help each otherAlexey Fyodorov
 
Помоги ближнему, или Как потоки помогают друг другу
Помоги ближнему, или Как потоки помогают друг другуПомоги ближнему, или Как потоки помогают друг другу
Помоги ближнему, или Как потоки помогают друг другуAlexey Fyodorov
 
Counter Wars (JEEConf 2016)
Counter Wars (JEEConf 2016)Counter Wars (JEEConf 2016)
Counter Wars (JEEConf 2016)Alexey Fyodorov
 
Non-blocking synchronization — what is it and why we (don't?) need it
Non-blocking synchronization — what is it and why we (don't?) need itNon-blocking synchronization — what is it and why we (don't?) need it
Non-blocking synchronization — what is it and why we (don't?) need itAlexey Fyodorov
 
Синхронизация без блокировок и СМС
Синхронизация без блокировок и СМССинхронизация без блокировок и СМС
Синхронизация без блокировок и СМСAlexey Fyodorov
 
Unsafe: to be or to be removed?
Unsafe: to be or to be removed?Unsafe: to be or to be removed?
Unsafe: to be or to be removed?Alexey Fyodorov
 
Общество Мертвых Потоков
Общество Мертвых ПотоковОбщество Мертвых Потоков
Общество Мертвых ПотоковAlexey Fyodorov
 
JDK: CPU, PSU, LU, FR — WTF?!
JDK: CPU, PSU, LU, FR — WTF?!JDK: CPU, PSU, LU, FR — WTF?!
JDK: CPU, PSU, LU, FR — WTF?!Alexey Fyodorov
 
Atomics, CAS and Nonblocking algorithms
Atomics, CAS and Nonblocking algorithmsAtomics, CAS and Nonblocking algorithms
Atomics, CAS and Nonblocking algorithmsAlexey Fyodorov
 
Java Platform Tradeoffs (Riga 2013)
Java Platform Tradeoffs (Riga 2013)Java Platform Tradeoffs (Riga 2013)
Java Platform Tradeoffs (Riga 2013)Alexey Fyodorov
 
Java Platform Tradeoffs (CEE SECR 2013)
Java Platform Tradeoffs (CEE SECR 2013)Java Platform Tradeoffs (CEE SECR 2013)
Java Platform Tradeoffs (CEE SECR 2013)Alexey Fyodorov
 
Java: how to thrive in the changing world
Java: how to thrive in the changing worldJava: how to thrive in the changing world
Java: how to thrive in the changing worldAlexey Fyodorov
 

More from Alexey Fyodorov (14)

Non-blocking Michael-Scott queue algorithm
Non-blocking Michael-Scott queue algorithmNon-blocking Michael-Scott queue algorithm
Non-blocking Michael-Scott queue algorithm
 
How threads help each other
How threads help each otherHow threads help each other
How threads help each other
 
Помоги ближнему, или Как потоки помогают друг другу
Помоги ближнему, или Как потоки помогают друг другуПомоги ближнему, или Как потоки помогают друг другу
Помоги ближнему, или Как потоки помогают друг другу
 
Counter Wars (JEEConf 2016)
Counter Wars (JEEConf 2016)Counter Wars (JEEConf 2016)
Counter Wars (JEEConf 2016)
 
Non-blocking synchronization — what is it and why we (don't?) need it
Non-blocking synchronization — what is it and why we (don't?) need itNon-blocking synchronization — what is it and why we (don't?) need it
Non-blocking synchronization — what is it and why we (don't?) need it
 
Синхронизация без блокировок и СМС
Синхронизация без блокировок и СМССинхронизация без блокировок и СМС
Синхронизация без блокировок и СМС
 
Unsafe: to be or to be removed?
Unsafe: to be or to be removed?Unsafe: to be or to be removed?
Unsafe: to be or to be removed?
 
Общество Мертвых Потоков
Общество Мертвых ПотоковОбщество Мертвых Потоков
Общество Мертвых Потоков
 
JDK: CPU, PSU, LU, FR — WTF?!
JDK: CPU, PSU, LU, FR — WTF?!JDK: CPU, PSU, LU, FR — WTF?!
JDK: CPU, PSU, LU, FR — WTF?!
 
Atomics, CAS and Nonblocking algorithms
Atomics, CAS and Nonblocking algorithmsAtomics, CAS and Nonblocking algorithms
Atomics, CAS and Nonblocking algorithms
 
Philosophers
PhilosophersPhilosophers
Philosophers
 
Java Platform Tradeoffs (Riga 2013)
Java Platform Tradeoffs (Riga 2013)Java Platform Tradeoffs (Riga 2013)
Java Platform Tradeoffs (Riga 2013)
 
Java Platform Tradeoffs (CEE SECR 2013)
Java Platform Tradeoffs (CEE SECR 2013)Java Platform Tradeoffs (CEE SECR 2013)
Java Platform Tradeoffs (CEE SECR 2013)
 
Java: how to thrive in the changing world
Java: how to thrive in the changing worldJava: how to thrive in the changing world
Java: how to thrive in the changing world
 

Java in Motion

  • 1. 1 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 2. Java в движении Алексей Фёдоров Software Engineer, Oracle, JCK, Java Platform Group jug.msk, Москва 02.12.2013
  • 3. «А ты кто такой?» Software Engineer – Cначала были военные, – потом legacy systems на Java EE – С 2011 года в Oracle: JCK Team  Community driver: JUG.ru, CodeFreeze  Conferences: Jpoint, Joker  Peopleware advocate  ФМЛ 239, СПбГУ, к.ф.-м.н. @23derevo, http://about.me/alexey.fyodorov 3 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 4. Agenda Java Platform Updates Java Platform Tradeoffs 4 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 5. Часть 1. Java Platform Updates 5 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 6. The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. 6 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 7. С чем работает Java-приложение? My Javaapplication 7 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 8. С чем работает Java-приложение? JDK My Javaapplication 8 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 9. С чем работает Java-приложение? JDK Frameworks My Javaapplication 9 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 10. С чем работает Java-приложение? JDK Frameworks My Javaapplication OS 10 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 11. С чем работает Java-приложение? JDK Frameworks My Javaapplication Hardware 11 OS Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 12. С чем работает Java-приложение? JDK Frameworks My Javaapplication Hardware 12 OS Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 13. Как исправлять баги App Frameworks JDK OS Hardware 13 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 14. Обновления  Минимизируйте время на обновление Вашего приложения  Библиотеки  ОС Железо 14 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 15. Обновления  Минимизируйте время на обновление Вашего приложения  Библиотеки  ОС Железо 15 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 16. Обновления Java Типы обновлений: –Release update :7u17 → 7u21 –Major update: Java 7 → Java 8 16 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 17. Обновления Java Типы обновлений: –Release update :7u17 → 7u21 –Major update: Java 7 → Java 8 17 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 18. Java 7 Updates versioning 7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 … 18 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 19. Java 7 Updates versioning 7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 … –7u8 ? –7u9, 7u10, 7u11… 19 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 20. Java 7 Updates versioning 7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 … –7u8 ? –7u9, 7u10, 7u11… –7u12? 20 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 21. Java 7 Updates versioning 7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 … –7u8 ? –7u9, 7u10, 7u11… –7u12? 7u13, 7u15, 7u17 … 21 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 22. Java 7 Updates versioning 7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 … –7u8 ? –7u9, 7u10, 7u11… –7u12? 7u13, 7u15, 7u17 … –7u19 ? 22 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 23. Java 7 Updates versioning 7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 … –7u8 ? –7u9, 7u10, 7u11… –7u12? 7u13, 7u15, 7u17 … –7u19 ? 7u21, 7u25 23 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 24. Java 7 Updates versioning 7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 … –7u8 ? –7u9, 7u10, 7u11… –7u12? 7u13, 7u15, 7u17 … –7u19 ? 7u21, 7u25 –7u29? 24 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 25. Java 7 Updates versioning 7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 … –7u8 ? –7u9, 7u10, 7u11… –7u12? 7u13, 7u15, 7u17 … –7u19 ? 7u21, 7u25 –7u29? 25 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 26. 26 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 27. Номера обновлений в JDK 7  Раз в два месяца Чётные – Исправление ошибок – Новая функциональность  Нечётные – Исправление ошибок – Обновления системы безопасности  CPU = ? 27 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 28. Номера обновлений в JDK 7  Раз в два месяца Чётные – Исправление ошибок – Новая функциональность  Нечётные – Исправление ошибок – Обновления системы безопасности  CPU = Critical Patch Update 28 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 29. Номера обновлений в JDK 7 Функциональность –7u40, 7u60, 7u80 –8, 8u20, 8u40 29 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 30. Номера обновлений в JDK 7 Функциональность –7u40, 7u60, 7u80 –8, 8u20, 8u40 Безопасность –7u45, 7u51, 7u55, 7u61 30 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 31. Номера обновлений в JDK 7 Функциональность –7u40, 7u60, 7u80 –8, 8u20, 8u40 Безопасность –7u45, 7u51, 7u55, 7u61 –Exploit? 31 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 32. Номера обновлений в JDK 7 Функциональность –7u40, 7u60, 7u80 –8, 8u20, 8u40 Безопасность –7u45, 7u51, 7u55, 7u61 –Exploit? Emergency Releases! (7u47, 7u49, 7u53, 7u57 etc.) 32 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 33. Нечётные обновления – Security Baseline Updates Любой патч, закрывающий какие-либо уязвимости в JDK 7 должен быть портирован в JDK 6 и все остальные поддерживаемые версии 33 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 34. Нечётные обновления – Security Baseline Updates 34 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 35. Чётные обновления: Feature Updates JDK 7 Update 40 Highlights (пример)  Olson Data 2013d  Java Mission Control (JMC) 5.2  JavaFX 2.2.40  Serviceability Agent support for ARM  Retina Display support on Mac OS X  Deployment Rule Set  Option to disable "JRE out of date" warning 35 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 36. Чётные обновления: Feature Updates JDK 7 Update 40 Highlights (продолж.)  New Security Warnings for Unsigned and Self-Signed Applications JAXP Security Improvements  Security Baselines не изменились! 36 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 37. Другие технологии Java SE:  Standalone Technologies: JAXP, JAXB, JNLP, JAX-WS (Везде своя нумерация!)  IANA Time Zone Database (aka Olson Data)  New platforms: Mac OS X, Windows 8.1 etc.  New HotSpot VM: new GC, new –XX options Not Java SE: 37 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 38. Правило Joe Darcy Не бывает стопроцентно совместимых изменений! 38 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 39. Протокол взаимодействия API spec (aka Javadoc) JLS8 JSR 337 Standalone documents 39 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. JVMS 8
  • 40. Спецификация платформы Спецификация платформы Java – это протокол! – Версия! (Java SE 6, 7, 8) Протокол нельзя менять часто! 40 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 41. Протокол SMTP Тысячи серверов Тысячи клиентов тысячи + тысячи = тысячи Timeline 1982 – RFC 821 2001 – RFC 2821 2008 – RFC 5321 41 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 42. Java Миллионы Java-приложений Тысячи реализаций Java миллионы + тысячи = миллионы Timeline 1996 – JDK 1.0 1997 – J2SE 1.1 2004 – J2SE 5.0 1998 – J2SE 1.2 2006 – Java SE 6 2000 – J2SE 1.3 42 2002 – J2SE 1.4 2011 – Java SE 7 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 43. Как управлять изменениями в Java OpenJDK / Oracle JDK  JDK QA Community  Java-программисты по всему миру 43 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 44. Java от других вендоров  Процедура сертифицикации  Java Compatibility Kit (JCK)  Сотни тысяч тестов  Feedback от лицензиатов 44 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 45. Как мы управляем изменениями?  Специальные процессы и процедуры Множественное ревью на предмет Сompatibility, Security, Performance etc. – Tracking, Accepting / Rejecting – Проверяются изменения  В спецификации  В реализации  JCP + OpenJDK 45 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 46. Какие изменения допустимы? Предлагаемое изменение Добавить что-нибудь в Public API (пакет / класс / метод / поле) Удалить что-нибудь из Public API Update Major release + - -* Добавить что-нибудь в Private API + + Удалить что-нибудь из Private API +** + Изменить спецификацию чего-нибудь - +** Исправить ошибку (несоответствие +**,*** поведения требуемому в спецификации) + * - @Deprecated, @Override ** - проанализировать риски *** - см. следующий слайд 46 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 47. Adding null key to empty TreeMap without Comparator should throw NPE JDK-5045147 47 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. JDK-2188127
  • 48. «Давайте разрешим менять спецификацию чаще!»  Кто начнёт сходить с ума? – Пользователи – Инженеры Java Platform – Лицензиаты Java Совместимость может нарушаться! – см. следующий слайд 48 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 49. Совместимость может нарушаться! Compatibility: – binary – source – Behavioral  Bug-2-Bug Incompatibilities – between Java SE 7 and Java SE 6 – between JDK 7 and JDK 6 – Java SE 7 and JDK 7 Compatibility 49 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 50. Наши инструменты (TCK Tools) Проверяются изменения в сигнатурах  SigTest - http://sigtest.java.net/ – JDK – Public API  Жёсткие правила для Major Releases  Очень жёсткие правила для Updates – NetBeans – Plugin API: полегчало!  Разметка спецификации и привязка тестов – SpecTrac / SpecDiff  http://jcp.org/en/resources/tdk 50 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 51. Выход Java 8 передвинут на март  http://mreinhold.org/blog/secure-the-train – Люди не берутся из ниоткуда – Добавляя людей в конце проекта, сроки не уменьшить – Какие рассматривались варианты?  Выкинуть Lambda  Выпустить в срок с сыроватыми Lambda  Подвинуть на полгода  http://openjdk.java.net/projects/jdk8/ 51 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 52. Что в итоге  Обновление платформы, используемой сотнями миллионов людей – это очень сложный процесс!  Разные политики обновления для Major Releases (Java 7 → Java 8) и для Updates (7uXX) – Отслеживание/Управление изменениями – Специальные процессы – Review изменений разными командами – Инструменты: SpecTrac, SigTest и другие 52 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 53. Компромиссы в обновлении платформы Java Инженерное искусство – это искусство компромисса! A trade-off (or tradeoff) is a situation that involves losing one quality or aspect of something in return for gaining another quality or aspect. 53 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 54. Java Platform Tradeoffs  Cкорость выхода новых версий vs. Качество  Cкорость vs. частота выпуска CPU Совместимость vs. Развитие  И так далее – Подробности после перерыва! 54 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 55. Java Platform Updates Q&A 55 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 56. Часть 2. Java Platform Tradeoffs 56 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 57. Agenda Частота выхода апдейтов  Фикс багов ломает совместимость  История про Substring  Совместимость как груз тянущий вниз  История о неизвестных отцах  История о четырёх аккумуляторах  GUI: Нативный или универсальный?  История про Beep Как быть хитрому лицензиату? 57 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 58. Сюжет 1 Апдейты: часто или редко? 58 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 59. Обновления Java и политика 59 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 60. 60 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 61. Сюжет 2 Исправление багов или совместимость? 61 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 62. Adding null key to empty TreeMap without Comparator should throw NPE JDK-5045147 62 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. JDK-2188127
  • 63. Adding null key to empty TreeMap without Comparator should throw NPE JDK-5045147 63 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. JDK-2188127
  • 64. Сюжет 3 String.substring() 64 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 65. 65 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 66. 66 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 67. 67 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 68. Since JDK 7u6 68 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 69. Performance vs. Memory 69 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 70. Сюжет 4 Совместимость или новые фичи? 70 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 71. 71 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 72. 72 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 73. Сюжет 5 Неизвестные отцы 73 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 74. 74 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 75. 75 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 76. 76 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 77. 77 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 78. Сюжет 6 История о четырёх аккумуляторах 78 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 79. 79 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 80. 80 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 81. 81 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 82. Утекающий Striped64 Варианты решения:  Делегирование вместо наследования  Дупликация кода Кодогенерация в билде JDK 82 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 83. Утекающий Striped64 Варианты решения:  Делегирование вместо наследования  Дупликация кода Кодогенерация в билде JDK  Serialization Proxy 83 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 84. Сериализация Implements Serializable  Есть в любой JDK Гибкая – writeObject, readObject, readObjectNoData – writeReplace, readResolve – Externalizable  Легко использовать Много лет, мало багов 84 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 85. Сюжет 7 GUI: Нативный или универсальный? 85 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 86. 86 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 87. Сюжет 7 Toolkit.beep() 87 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 88. 88 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 89. Java 7 89 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 90. Java 7 Java 8 90 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 91. Сюжет 8 История о хитром лицензиате 91 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 92. 92 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 93. Выводы  Большинство tradeoff’ов связаны с совместимостью – в том или ином её смысле  Имеющиеся риски трудно оценивать  Разные риски в update releases и в major updates  Java двигается в Embedded – Больше различий в поведении 93 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 94. Q&A 94 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.