Java8 seminar

58

Transcript of Java8 seminar

Java 8

[email protected]

λ

λ

Функциональное программирование

• Функции высшего порядка• Замыкания• Отсутствие состояния

λ

java7

λ

String, String => int

java7

λ

java7

String, String => int

λ

java7

λ

java7

λ

java7

λ

java7

λ

java7

λ

λ

java8

λ

() -> {}

λ

λ

String, String => int

λ

λ

λ

FUNCTIONAL INTERFACES

FUNCTIONAL INTERFACES

FUNCTIONAL INTERFACES

FUNCTIONAL INTERFACES

Аналог @Override

FUNCTIONAL INTERFACES

DEFAULT METHODS

DEFAULT METHODS

• нет состояния• переопределение возможно

• используются вместе с лямбдами• обратная совместимость• множественное наследование*

DEFAULT METHODS

METHOD REFERENCE

METHOD REFERENCE

METHOD REFERENCE

дефолтный конструктор

любой is, has метод

любой метод без параметров

любой метод сравнения

любой метод с одним аргументом

любой метод с 2мя аргументами

METHOD REFERENCE

METHOD REFERENCE

сигнатура метода

METHOD REFERENCE

сигнатура метода

METHOD REFERENCE

static methodкакой-то статический метод

METHOD REFERENCE

static method

METHOD REFERENCE

static method

METHOD REFERENCE

object methodкакой-то метод объекта

METHOD REFERENCE

object method

METHOD REFERENCE

object method

METHOD REFERENCE

constructorкакой-то конструктор

METHOD REFERENCE

constructor

METHOD REFERENCE

constructor

METHOD REFERENCE

->

::

STREAM

STREAM

STREAM

• параллельность• lazy

@ANNOTATIONS

@ANNOTATIONS

• @Repeateable• TYPE_PARAMETER• TYPE_USE• Checker Framework

NEW DATE API

БЫЛО

СТАЛО

NASHORN

JSR-223

PermGen MetaSpace

Bonus

vs