Upload
dataart
View
72
Download
5
Embed Size (px)
Citation preview
20 лет JavaЗрелая экосистема и постоянные инновации
Что такое Java
• Язык• Объектный
• Строго типизированный
• Платформонезависимый
• Многопоточность
• Много чего «из коробки»
Что такое Java
• JVM• Оптимизирована под OS
• JIT компилятор
• GC
• Открытая спецификация
Все, что вокруг
• Фреймворки• Тысячи их
• Библиотеки• apache-*
• Утилиты• Сборка
• Анализ кода
• CI
20 лет развития
• 1
• 1.2 – (1998) Swing, JIT
• 1.3 – (2000) HotSpot, JNDI
• 1.4 – (2002) RegExp, NIO, Logging, XML
• 5 – (2004) Generics, Autoboxing, Enums
• 6 – (2006) Annotations
• 7 – (2011) Project Coin, InvokeDynamic,
• 8 – (2014) Лямбды, Project Nashorn
Что сейчас?
• JSE
• JEE
• Java Embedded• JSE Embedded
• JME Embedded
• JavaCard
Функциональное программирование
• Java 8• Map
• Reduce
• Parallel Execution
• Functional Interfaces
• Collectors
Генерация CSV
StringBuilder sb = new StringBuilder();
for (int i = 0; i < strings.size() - 1; i++) {
sb.append(strings.get(i)).append(separator);
}
result = sb.append(strings.get(strings.size() - 1))
.toString();
System.out.println(result);
Генерация CSV
result = strings.stream()
.reduce((s1, s2) -> s1 + separator + s2)
.get();
System.out.println(result);
Генерация CSV
result =
strings.stream().collect(Collectors.joining(separator));
System.out.println(result);
Основной фокус
• Web• JEE
• Spring
• REST+JS
• IoT• DeviceHive
Web
• Упрощение разработки
• Серверы приложений
Фреймворки
• Web – разработка• Запрос-ответ
• Компонентные
Фреймворки
• Struts
• Spring MVC
• Grails
Фреймворки
• JSF (JSR 314)
• Wicket
• Tapestry
• Vaadin
IoT
JVM
Что дальше?
• Java 9• Jigsaw
Спасибо за внимание