More Related Content Similar to 2015 Java update and roadmap, JUG sevilla (20) More from Trisha Gee (17) 2015 Java update and roadmap, JUG sevilla2. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Java
Update
and
Roadmap
Jan
2015
Georges
Saab
Vice
President
SoFware
Development
Aurelio
Garcia-‐Ribeyro
Principal
Group
Product
Manager
Java
SE
Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
3. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Safe
Harbor
Statement
The
following
is
intended
to
outline
our
general
product
direcQon.
It
is
intended
for
informaQon
purposes
only,
and
may
not
be
incorporated
into
any
contract.
It
is
not
a
commitment
to
deliver
any
material,
code,
or
funcQonality,
and
should
not
be
relied
upon
in
making
purchasing
decisions.
The
development,
release,
and
Qming
of
any
features
or
funcQonality
described
for
Oracle’s
products
remains
at
the
sole
discreQon
of
Oracle.
4. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Agenda
Oracle
and
Java
Java
SE
8
Overview
Java
SE
9
and
Beyond
1
2
3
5. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Oracle
and
Java
Java
SE
8
Overview
Roadmap
1
2
3
6. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Oracle
and
Java
• Oracle
has
used
Java
since
the
beginning
of
Qme
(eg
1990s)
• Acquired
JAVA
(Sun
Microsystems)
in
2010,
including
Java
IP,
trademarks
• Embraced
OpenJDK,
open
community,
open
JCP
– Welcomed
IBM,
Apple,
SAP,
ARM,
AMD,
Intel,
Twi]er,
Goldman
Sachs,
MicrosoF
and
many
others
– Made
OpenJDK
official
Java
SE
reference
implementaQon
– Ongoing
move
towards
open
development,
governance,
transparency
• JDK
development:
Oracle
and
community
– Oracle
focus
on
modernizaQon,
security,
big
Qcket
R&D
and
commercial
value
to
Oracle
– Community
contributes
based
on
interest
and
ability,
examples:
• Doug
Lea
(concurrency,
memory
model),
Stephen
Colebourne
(date/Qme),
Michael
Ernst
(type
annotaQons)
• IBM
and
SAP
(PPC
port),
CPU
manufacturers
(opQmizaQons),
OS
vendors
(ports,
integraQon
and
opQmizaQons)
• JUGs:
adopt-‐OpenJDK,
adopt-‐a-‐JSR
7. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Oracle
and
Java
Java
SE
8
Overview
Roadmap
1
2
3
8. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Java
8
“One
of
the
biggest
updates
ever
to
a
major
language”
Andrew
Binstock,
Editor
in
Chief,
Dr.Dobbs
9. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Java
8
Features
Innova.on
• Lambda
aka
Closures
• Language
Interop
• Nashorn
Core
Libraries
• Parallel
operaQons
for
core
collecQons
APIs
• Improvements
in
funcQonality
• Improved
type
inference
General
Goodness
• JVM
enhancements
• No
PermGen
limitaQons
• Performance
improvements
Java
for
Everyone
• Profiles
for
constrained
devices
• JSR
310-‐Date
&
Time
APIs
• Non-‐Gregorian
calendars
• Unicode
6.2
• ResourceBundle
• BCP47
locale
matching
• GlobalizaQon
&
Accessibility
Tools
• JSR
308-‐AnnotaQons
on
Java
Type
• RepeaQng
AnnotaQons
• Java
Dependency
Analysis
Tool
• App
Store
packaging
tool
(8u20)
Client
• Deployment
enhancements
• JavaFX
8
• Public
UI
Control
API
• Java
SE
Embedded
support
• Enhanced
HTML5
support
• 3D
shapes
and
a]ributes
• PrinQng
Security
• Limited
doPrivilege
• NSA
Suite
B
algorithm
support
• SNI
Server
Side
support
• DSA
updated
to
FIPS186-‐3
• AEAD
JSSE
CipherSuites
Enterprise
• Mission
Control
5.3
• Flight
Recorder
• Usage
Tracker
• Advanced
Mgmt
Console
(8u20)
• MSI
JRE
Installer
(8u20)
9
10. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Lambda
Expressions
• A
lambda
expression
(closure)
is
an
anonymous
method
– Has
an
argument
list,
a
return
type,
and
a
body
(Object o) -> o.toString()
– Can
refer
to
values
from
the
enclosing
lexical
scope
(Person p) -> p.getName().equals(name)
• A
method
reference
is
a
reference
to
an
exisQng
method
Object::toString
• Allow
you
to
treat
code
as
data
– Behavior
can
be
stored
in
variables
and
passed
to
methods
(Anonymous
inner
classes
done
right)
11. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Streams
• A
sequence
of
elements
supporQng
sequenQal
and
parallel
aggregate
operaQons.
• Concerned
with
declaraQvely
describing
a. their
source,
and
b. The
operaQons
which
will
be
performed
on
that
source
• To
perform
a
computaQon,
stream
operaQons
are
composed
into
a
stream
pipeline
• …which
may
execute
either
sequenQally
or
in
parallel
java.uQl.stream
12. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Example:
Lambda
FuncQons
and
Streams
Set<Seller> sellers = new HashSet<>();
for (Txn t : txns) {
if (t.getBuyer().getAge() >= 65)
sellers.add(t.getSeller());
}
List<Seller> sorted = new ArrayList<>(sellers);
Collections.sort(sorted, new Comparator<Group>() {
public int compare(Seller a, Seller b) {
return a.getName().compareTo(b.getName());
}
});
for (Seller s : sorted)
System.out.println(s.getName());
“Print
the
name
of
every
unique
person
selling
to
someone
who
is
at
least
65
years
old”
13. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Example:
Lambda
FuncQons
and
Streams
txns.stream()
.filter(t -> t.getBuyer().getAge() >= 65)
.map(Txn::getSeller)
.distinct()
.sort(comparing(Seller::getName))
.forEach(s -> System.out.println(s.getName());
14. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Example:
Lambda
FuncQons
and
Streams
txns.stream()
.parallel()
.filter(t -> t.getBuyer().getAge() >= 65)
.map(Txn::getSeller)
.distinct()
.sort(comparing(Seller::getName))
.forEach(s -> System.out.println(s.getName());
15. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Example:
StaQc
and
Default
Methods
in
Interfaces
public interface TimeClient {
void setTime(int hour, int minute, int second);
void setDate(int day, int month, int year);
void setDateAndTime(int day, int month, int year,
int hour, int minute, int second);
LocalDateTime getLocalDateTime();
static ZoneId getZoneId (String zoneString) {
try {
return ZoneId.of(zoneString);
} catch (DateTimeException e) {
System.err.println("Invalid time zone: " + zoneString +
"; using default time zone instead.");
return ZoneId.systemDefault();
}
}
default ZonedDateTime getZonedDateTime (String zoneString) {
return ZonedDateTime.of(getLocalDateTime(), getZoneId(zoneString));
}
}
16. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Nashorn
JavaScript
Engine
• “Pure
Java”
Java
Script
Engine,
replaces
Rhino
• ECMAScript
5.1
compliant
• OpQmized
for
and
with
Invokedynamic
(JSR-‐292)
• Invoke
from
Java
code
or
command
line
(jjs)
• Simple
access
to
Java
classes
and
objects
from
JS
code
• Integrates
with
JavaFX
8
17. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Example:
Invoking
JS
from
Java
public class EvalScript {
public static void main(String[] args) throws Exception {
// create a script engine manager
ScriptEngineManager factory = new ScriptEngineManager();
// create a Nashorn script engine
ScriptEngine engine = factory.getEngineByName("nashorn");
// evaluate JavaScript statement
try {
engine.eval("print('Hello, World!');");
} catch (final ScriptException se) { se.printStackTrace(); }
}
}
18. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Example:
Accessing
Java
from
JS
var Run = Java.type("java.lang.Runnable");
var MyRun = Java.extend(Run, {
run: function() {
print("Run in separate thread");
}
});
var Thread = Java.type("java.lang.Thread");
var th = new Thread(new MyRun());
19. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Java
Date/Time
Features
–
JSR
310
• Fluent,
Immutable,
Thread
Safe,
Easy
to
use
• Strong
typing
with
fit
for
purpose
types
• Easy
to
use
formaqng
and
parsing
• Interoperable
with
java.uQl.Calendar/Date
• Extensible
Units,
Fields,
and
Chronologies
• Supports
Regional
Calendars
• DatePicker
support
in
JavaFX
• Supported
by
JDBC,
java.sql.Date/Time/Timestamp
• The
essenQal
ISO
Calendar
for
global
business
20. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Other
InternaQonalizaQon
Enhancements
Feature
Benefit
Unicode
6.2
Improved
support
for
languages/scripts
used
in
Asia,
Africa
and
the
Middle
East
Custom
resource
bundles
Enables
easy
extension
with
custom/specialized
locales
Common
Locale
Data
Repository
(CLDR)
support
Enables
use
of
CLDR
locale
service
providers
BCP
47
locale
matching
Enables
matching
of
applicaQon
locale
to
user
preferences
21. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
JavaFX
8
• New
Modern
Theme:
Modena
• Enhancements
to
CollecQons,
Bindings,
Tasks
and
Services
• Full
screen
improvements,
new
unified
stage
style,
rich
text
and
prinQng
• Embed
Swing
in
JavaFX
applicaQons
• DatePicker
and
TreeTableViews
• Public
API
for
CSS
structure
• WebView
enhancements
(Web
Sockets,
Web
Workers,
Web
Fonts)
• JavaFX
3D
• MulQ-‐touch
(introduced
in
7,
relevant
in
8)
• Hi-‐DPI
(ReQna)
display
support
22. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
AnnotaQons
&
Developer
Tools
• AnnotaQons
on
Java
Types
(JSR-‐308)
– Enabled
through
type
checking
frameworks
such
as
hFp://types.cs.washington.edu/checker-‐framework/
• RepeaQng
AnnotaQons
• Java
Dependency
Analysis
Tool
(jdeps)
@Schedule(dayOfMonth="last")
@Schedule(dayOfWeek="Fri", hour="23")
public void doPeriodicCleanup() { ... }
@NonNull String str;
23. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
JVM
and
Performance
Improvements
• Concurrency
JSR
166
– Improved
performance
of
exisQng
APIs
and
addiQon
of
new
APIs
• Reduced
false
sharing
– Move
frequently
updated
memory
words
to
separate
cache
lines
• Tiered
CompilaQon
enabled
by
default
• Faster
JSR-‐292
implementaQon
• Faster
crypto
performance
on
modern
hardware
• Permgen
removal
• ConQnued
G1
GC
improvements
10-‐30%
improvement
common
on
mulQ-‐core
HW
24. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Java
SE
Product
DifferenQators
24
Features
Free
Java
SE
Java
SE
Support
Java
SE
Advanced
Desktop
(*)
Java
SE
Advanced
Java
SE
Suite
Access
to
My
Oracle
Support
✔
✔
✔
✔
24x7,
27
language
support
✔
✔
✔
✔
Fast
fix
turnarounds
✔
✔
✔
✔
Access
to
updates
on
older,
EOL’d
versions
✔
✔
✔
✔
Usage
tracking
feature
✔
✔
✔
DiagnosQcs,
tooling
and
monitoring
(desktop
only)
✔
✔
✔
DiagnosQcs,
tooling
and
monitoring
(server/desktop)
✔
✔
DeterminisQc
GC
✔
25. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Java
in
the
enterprise
25
Java
SE
Advanced
Mission
Control
" Diagnose
complex
issues
" Low
overhead
Flight
Recorder
" Back-‐in-‐Qme
analysis
" Plugins
for
many
systems
Advanced
Management
Console
" Track
and
manage
clients
at
scale
" Usage
tracking
and
Deployment
Rule
Sets
Support
&
Updates
" Support
of
complex
issues
&
changes
" Updates
to
old
versions
like
JDK
6
26. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Java
Mission
Control
and
Flight
Recorder
• In-‐depth
profiling
and
analysis
in
producQon
and
development
• Always
on
– Virtually
no
performance
overhead
• JDK
and
applicaQon
data
– InformaQon
logged
in
all
layers
• Analyze
root
cause
– Detailed
data
collected
leading
up
to
the
event
(Qme
machine)
From
JRockit
27. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Java
Mission
Control
and
Flight
Recorder
28. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Advanced
Management
Console
• Track
and
manage
clients
at
scale
• Usage
tracking
analysis,
Client
security
configuraQon
management
Introduced
in
8u20
29. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Oracle
and
Java
Java
SE
8
Overview
Roadmap
1
2
3
30. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Breaking
news!
31. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
JDK 7 End of Public Updates
April 2015
• Java.com
switched
to
JDK
8
on
Oct
2014
• AU
from
JRE
7
to
JRE
8
Jan
2015
• JDK
7
updates
only
on
MOS
starQng
with
Jul
2015
CPU
• For
details/public
noQce:
– Search
“Java
EOL”
– Click
on:
Oracle
Java
SE
Support
Roadmap
32. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Chrome
(lack
of)
support
• Chrome
drops
NPAPI,
JRE
Plugin
requires
NPAPI
• Oracle
plans
to
support
Chrome
as
long
as
Chrome
allows
NPAPI
– Applets
will
not
work
on
Chrome
aFer
it
drops
NPAPI
– Webstart
applicaQons
will
conQnue
to
work
from
Chrome
• Official
statement
The
Java
Plugin
for
web
browsers
relies
on
NPAPI,
which
is
currently
supported
by
all
major
browsers.
Google
has
recently
(May
2014)
removed
Chrome
NPAPI
support
on
Linux
only.
However,
that
has
never
been
a
supported
or
cerOfied
configuraOon
for
Java
in
the
browser,
so
impact
should
be
minimal.
Given
Google's
lack
of
specificity
for
fully
removing
NPAPI
support
in
Chrome
on
Windows,
and
a
history
of
terminaOng
services
with
limited
prior
warning,
and
it's
stated
phasing
out
of
NPAPI
based
plugins
from
it's
Web
Store
we
recommend
users
consider
alternaOves
to
Chrome.
Instead,
we
recommend
Firefox,
Internet
Explorer
and
Safari
as
long-‐term
opOons.
©
2014
Oracle
CorporaQon
–
Proprietary
and
ConfidenQal
33. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
JDK
Roadmap
JDK
8
• Lambda
• JSR
310:
New
Date
and
Time
API
• Nashorn:
JavaScript
Interoperability
• JavaFX
Enhancements
8u40
• Performance
Improvements
• Density
and
Resource
Management
• MulQ-‐Language
Support
Improvements
• Accessibility
Enhancements
• ConQnued
Java
SE
Advanced
Features
• Improved
app
store
packaging
tool
JDK
9
• Modularity
–
Jigsaw
• Performance
• Web,
security
and
I18N
updates
• Cloud
opQmized
JVM
• Ahead
of
Time
CompilaQon
8u20
• G1
Performance
Improvement
• JVM
Performance
Improvements
• Java
Mission
Control
5.4
• Advanced
Management
Console
1.0
• MSI
Enterprise
JRE
Installer
• App
store
packaging
tool
8u60
• Bug
Fixes
• ConQnued
Java
SE
Advanced
Features
20162014 2015 2017
33
34. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
JDK
8u40
Release
Content
• Performance
– Memory
footprint
opQmizaQons
– Reduce
need
for
full
GCs
in
G1
– Crypto
improvements
on
SPARC
• Small
feature
enhancements
(highlights)
– Nashorn:
Improved
integraQon
with
Java
security
model,
ECMAScript
6
preparaQons,
performance
– JavaFX:
Modernize
media
stack
on
OS
X,
Accessibility
– Install/config:
Improved
packaging
tool
for
app
stores,
etc
(javapackager)
– JavaDB
and
Mission
Control
updates
35. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Java
SE
Advanced
Upcoming
Features
• Advanced
Management
Console
2.0
–
Desktop
JRE
management
– Improved
usage
tracking/analyQcs
– AudiQng
of
installed
versions,
configuraQon
– Centralized
configuraQon
management
– Tool
support
for
building
customized
JRE
installers
– Improved
scalability
(100,000s
of
JREs)
• Resource
Management
APIs
– Define
resource
contexts,
tracking
of
CPU/memory/IO
usage
per
context
– OOTB
WebLogic
Server
integraQon,
open
API
for
3rd
party
integraQon
• Other
Future
AddiQons
– CooperaQve
Lifecycle
support
for
virtualized/cloud
environments
– Low-‐latency
GC
(vastly
enhanced
variant
of
JRockit
DeterminisQc
GC)
Desktop
Management,
MulQ-‐Tenancy
OpQmizaQons
36. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
JDK
9
Release
Content
(1/2)
• Jigsaw
– Modularized
JDK,
Java
module
system
• Performance
– JIT,
locking,
memory
footprint
enhancements
– Crypto
acceleraQon
enhancements
• Web,
Security,
InternaQonalizaQon
updates
– HTTP
2.0,
JAXP
update
– JCE
updates,
TLS
updates,
DTLS
support,
Keystore
enhancements
– Unicode
7,
UTF-‐8
properQes
support
• Serviceability
– Improved
JVM
logging
– More
diagnosQcs
commands
Under
review
for
inclusion
in
9*
*
As
of
October
31,
2014.
For
up
to
date
informaQon,
see
openjdk.java.net.
37. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
JDK
9
Release
Content
(2/2)
• Other
features
– Ahead
of
Time
compilaQon
(improved
startup
Qme)
– Read
Eval
Print
Loop
(REPL)
support
in
JDK
– Enhanced
volaQles
– OS
Process
control
API
• Cleanup
– Remove
old
GC
combinaQons
(deprecated
in
JDK
8)
– Remove
old/less
frequently
used
tools
from
JDK
– Revisit
version
numbering
scheme
– Block
access
to
JDK
internal
APIs
by
default
• Tooling
– javac
enhancements
– JIT,
locking,
memory
footprint
enhancements
Under
review
for
inclusion
in
9*
*
As
of
October
31,
2014.
For
up
to
date
informaQon,
see
openjdk.java.net.
38. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Avoid
private
(internal,
non-‐spec)
APIs
Private
APIs
are
(finally)
going
away
Oracle
ConfidenQal
–
Internal
39. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Some
APIs
were
never
supposed
to
be
used…
Oracle
ConfidenQal
–
Internal
Warnings
posted
from
Feb
1998
to
today
h]p://java.sun.com/products/jdk/faq/faq-‐sun-‐packages.html
(no
longer
valid,
but
available
on
some
archive
sites)
h]p://www.oracle.com/technetwork/java/faq-‐sun-‐
packages-‐142232.html
1998
Coolest
phone
Nokia
5110
39
40. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Exec
summary
of
previous
page
• Private
packages
like
sun.*
are
“JDK
internal
workings”
– Not
part
of
the
specificaQon
– Are
not
supported
– Any
one
might
change/disappear
in
any
release
without
advanced
warning
• Smart
and
informed
developers
do
not
use
private
JDK
packages
• Smart
and
informed
developers
do
not
let
friends
use
private
JDK
packages
Oracle
ConfidenQal
–
Internal
40
41. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Exec
summary
of
previous
page
(Updated)
• Private
packages
like
sun.*
are
“JDK
internal
workings”
– Not
part
of
the
specificaQon
– Are
not
supported
– All
of
them
will
“disappear”
in
JDK
9
with
plenty
of
advanced
warning
• Smart
and
informed
developers
do
not
use
private
JDK
packages
• Smart
and
informed
developers
do
not
let
friends
use
private
JDK
packages
Oracle
ConfidenQal
–
Internal
41
42. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
What
to
do
if
you
think
you
are
using
internal
APIs
• For
your
own
code
– Use
JDeps,
available
on
JDK
8,
to
scan
your
programs/libraries
for
problems
• When
possible
JDeps
will
propose
alternaQve
APIs
• For
Third
Party
Programs
and
Libraries
– You
can
run
JDeps
on
the
bytecode
so
you
don’t
need
the
source
code
– Point
the
vendor
to
the
many
arQcles
warning
of
the
need
to
remove
dependencies
on
this;
ask
your
vendor
to
confirm
if
they
are
ready
for
JDK
9
– Search
for
alternaQve
programs
/
libraries
• If
unable
to
move
off
private
APIs
– Plan
to
keep
JDK/JRE
8
for
those
programs
unQl
you
can
find
a
replacement
Oracle
ConfidenQal
–
Internal
42
For
JDeps
introducQon
and
explanaQon
search
for:
Closing
the
closed
APIs
43. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Future
DirecQon
• Known
“Weaknesses”
– Startup
&
Warmup
Qme
– Memory
overhead
– OpQmizaQons
for
more
specialized
hardware
(vector
instrucQons,
GPUs,
zero-‐copy
I/O,
transacQonal
synchronizaQon/memory)
– Unpredictable
latency
due
to
GC
– Code
verbosity
• “New”
OpportuniQes
– Big
Data
(eg,
the
Hadoop
ecosystem)
– Cloud
&
large
mulQ-‐tenant
deployments
– (More)
JVM
improvements
for
non-‐Java
languages
Addressing
Big
Problems
and
InteresQng
Areas
44. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
The
Next
Big
Challenge:
Data
layout
• Java
is
very
good
at
opQmizing
code,
less
so
at
opQmizing
data
– Memory
overhead,
less
than
opQmal
performance,
difficult
to
uQlize
modern
hardware
• Java’s
type
system
gives
us
primiQves,
objects,
and
arrays
– Very
flexible!
Can
model
almost
anything.
• But
flexibility
is
not
exactly
where
we
need
it
– PrimiQves
are
very
rigid
– Objects
are
more
flexible
than
we
always
need
• The
big
problem:
object
idenQty
– Needed
for
polymorphism,
mutability
– Not
all
objects
need
it,
but
all
objects
pay
for
it
45. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Data
layout
What
we
have
today
final class Point {
final int x;
final int y;
}
header
Point[] pts =
header
x
y
header
x
y
header
x
y
header
x
y
header
x
y
Layout
of
these
in
memory
is
effecQvely
random!
46. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
header
Data
layout
What
we’d
prefer
header
x
y
x
y
x
y
x
y
Point[] pts =
47. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
R&D
Projects
to
address
Data
Layout
Challenge
• Common
theme:
more
flexible
access
to
data
– Value
types
–
opQmized
layout
of
Java
objects
– Panama
–
metadata-‐driven
access
to
naQve
code
and
data
(JNI
replacement)
– Generic
specializaQon
–
bring
the
benefits
of
value
types
to
generics
– VarHandle
–
more
flexible,
high-‐performance
access
to
variables
– Arrays
2.0
–
flexible
data
layout
• Benefits:
Improved
developer
producQvity,
reduced
memory
overhead,
enable
efficient
execuQon
on
modern
CPUs
&
GPUs,
improved
overall
performance
• “Natural
conQnuaQon”
aFer
JDK
8
Lambda
FuncQons
&
Streams
Not
yet
in
release
roadmap,
but
expect
someQme
aFer
JDK
9
48. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
More
InformaQon,
AcQons
• Join
a
user
group
– h]ps://www.java.net/jugs/java-‐user-‐groups
• Prepare
for
change
– h]ps://wiki.openjdk.java.net/display/JDK8/Java+Dependency+Analysis+Tool
– Move
to
64-‐bit
– Sign
your
applets
• Follow
JDK
development,
help
with
early
access
tesQng
– h]p://openjdk.java.net/projects/jdk8u/
– h]p://openjdk.java.net/projects/jdk9/
– h]p://wiki.openjdk.java.net/
• Contribute!
– h]p://openjdk.java.net/contribute/
– h]ps://java.net/projects/adoptajsr/pages/Home
– h]ps://java.net/projects/adoptopenjdk
50. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Public
Availability
vs.
Long
Term
Support
• Updates
to
older
releases
become
private
when
all
3
condiQons
are
met
– Three
years
aFer
general
availability
of
the
release
going
private
– One
year
aFer
being
superseded
by
a
new
major
release
– Six
months
aFer
the
new
major
release
is
made
the
default
on
java.com
• Oracle
sells
support
for
each
major
release
up
to
11
years
– Eight
years
of
premier
support
• Plugin
included
on
the
JRE
only
the
first
5
years
– Three
years
of
extended
support
(addiQonal
cost)
Updates
to
current
major
release
always
publicly
available
50
51. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Oracle
SoFware
LifeQme
Support
Policies
Key
Feature
Premier
Extended
Sustaining
Major
Product
and
Technology
Releases
✔
✔
✔
Technical
Support
✔
✔
✔
Access
to
Knowledge
Base
✔
✔
✔
Updates
and
Fixes
✔
✔
Pre-‐ExisQng
Security
Alerts
✔
✔
Pre-‐ExisQng
CriQcal
Patch
Updates
✔
✔
Pre-‐ExisQng
Tax,
Legal,
and
Regulatory
Updates
✔
✔
Pre-‐ExisQng
Upgrade
Tools/Scripts
✔
✔
Pre-‐ExisQng
Access
to
PlaQnum
Services
✔
CerQficaQon
with
most
exisQng
Oracle
products
✔
✔
CerQficaQon
with
most
exisQng
third-‐party
products/versions
✔
✔
CerQficaQon
with
most
new
third-‐party
products/versions
✔
CerQficaQon
with
most
new
Oracle
products
✔
52. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
52
Oracle
Standard
vs
Java
Support
Policies
5 Years Premier 3 Years Extended
8 Years Premier 3 Years Extended
5 Years Deployment Support
Most
Oracle
Products
Oracle
JDK/JRE