SlideShare a Scribd company logo
1 of 53
Download to read offline
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.	
  	
  |	
  
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.	
  
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	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Oracle	
  and	
  Java	
  
Java	
  SE	
  8	
  Overview	
  
Roadmap	
  
1	
  
2	
  
3	
  
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	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Oracle	
  and	
  Java	
  
Java	
  SE	
  8	
  Overview	
  
Roadmap	
  
1	
  
2	
  
3	
  
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	
  
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	
  
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)	
  
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	
  
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”	
  
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());
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());
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));
}
}
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	
  
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(); }
}
}
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());
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	
  
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	
  
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	
  
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;
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	
  
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	
   ✔	
  
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	
  
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	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Java	
  Mission	
  Control	
  and	
  Flight	
  Recorder	
  
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	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Oracle	
  and	
  Java	
  
Java	
  SE	
  8	
  Overview	
  
Roadmap	
  
1	
  
2	
  
3	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Breaking	
  news!	
  
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	
  
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	
  
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	
  
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	
  
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	
  
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.	
  
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.	
  
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	
  
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	
  
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	
  
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	
  
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	
  	
  
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	
  
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	
  
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!	
  
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 =
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	
  
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	
  
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	
  
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	
  
✔	
  
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	
  
Java SE 8 Update and Roadmap Summary

More Related Content

What's hot

Java 8 in Anger (JavaOne)
Java 8 in Anger (JavaOne)Java 8 in Anger (JavaOne)
Java 8 in Anger (JavaOne)Trisha Gee
 
Real World Java 9
Real World Java 9Real World Java 9
Real World Java 9Trisha Gee
 
Project Jigsaw in JDK 9: Modularity Comes To Java
Project Jigsaw in JDK 9: Modularity Comes To JavaProject Jigsaw in JDK 9: Modularity Comes To Java
Project Jigsaw in JDK 9: Modularity Comes To JavaC4Media
 
Java 8 and 9 in Anger
Java 8 and 9 in AngerJava 8 and 9 in Anger
Java 8 and 9 in AngerTrisha Gee
 
7 New Tools Java Developers Should Know
7 New Tools Java Developers Should Know7 New Tools Java Developers Should Know
7 New Tools Java Developers Should KnowTakipi
 
How You Convince Your Manager To Adopt Scala.js in Production
How You Convince Your Manager To Adopt Scala.js in ProductionHow You Convince Your Manager To Adopt Scala.js in Production
How You Convince Your Manager To Adopt Scala.js in ProductionBoldRadius Solutions
 
Real World Java 9 (QCon London)
Real World Java 9 (QCon London)Real World Java 9 (QCon London)
Real World Java 9 (QCon London)Trisha Gee
 
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...Codemotion
 
Why scala - executive overview
Why scala - executive overviewWhy scala - executive overview
Why scala - executive overviewRazvan Cojocaru
 
Advanced Production Debugging
Advanced Production DebuggingAdvanced Production Debugging
Advanced Production DebuggingTakipi
 
Faster java ee builds with gradle [con4921]
Faster java ee builds with gradle [con4921]Faster java ee builds with gradle [con4921]
Faster java ee builds with gradle [con4921]Ryan Cuprak
 
Top 10 reasons to migrate to Gradle
Top 10 reasons to migrate to GradleTop 10 reasons to migrate to Gradle
Top 10 reasons to migrate to GradleStrannik_2013
 
Java APIs- The missing manual (concurrency)
Java APIs- The missing manual (concurrency)Java APIs- The missing manual (concurrency)
Java APIs- The missing manual (concurrency)Hendrik Ebbers
 
What's Coming in Java EE 8
What's Coming in Java EE 8What's Coming in Java EE 8
What's Coming in Java EE 8PT.JUG
 

What's hot (20)

Java 8 in Anger (JavaOne)
Java 8 in Anger (JavaOne)Java 8 in Anger (JavaOne)
Java 8 in Anger (JavaOne)
 
Real World Java 9
Real World Java 9Real World Java 9
Real World Java 9
 
Javantura v4 - JVM++ The GraalVM - Martin Toshev
Javantura v4 - JVM++ The GraalVM - Martin ToshevJavantura v4 - JVM++ The GraalVM - Martin Toshev
Javantura v4 - JVM++ The GraalVM - Martin Toshev
 
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip KovačekJavantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
 
Project Jigsaw in JDK 9: Modularity Comes To Java
Project Jigsaw in JDK 9: Modularity Comes To JavaProject Jigsaw in JDK 9: Modularity Comes To Java
Project Jigsaw in JDK 9: Modularity Comes To Java
 
Javantura v3 - ES6 – Future Is Now – Nenad Pečanac
Javantura v3 - ES6 – Future Is Now – Nenad PečanacJavantura v3 - ES6 – Future Is Now – Nenad Pečanac
Javantura v3 - ES6 – Future Is Now – Nenad Pečanac
 
Java 8 and 9 in Anger
Java 8 and 9 in AngerJava 8 and 9 in Anger
Java 8 and 9 in Anger
 
Javantura v4 - Security architecture of the Java platform - Martin Toshev
Javantura v4 - Security architecture of the Java platform - Martin ToshevJavantura v4 - Security architecture of the Java platform - Martin Toshev
Javantura v4 - Security architecture of the Java platform - Martin Toshev
 
7 New Tools Java Developers Should Know
7 New Tools Java Developers Should Know7 New Tools Java Developers Should Know
7 New Tools Java Developers Should Know
 
Real World Java 9
Real World Java 9Real World Java 9
Real World Java 9
 
How You Convince Your Manager To Adopt Scala.js in Production
How You Convince Your Manager To Adopt Scala.js in ProductionHow You Convince Your Manager To Adopt Scala.js in Production
How You Convince Your Manager To Adopt Scala.js in Production
 
Real World Java 9 (QCon London)
Real World Java 9 (QCon London)Real World Java 9 (QCon London)
Real World Java 9 (QCon London)
 
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...
 
Why scala - executive overview
Why scala - executive overviewWhy scala - executive overview
Why scala - executive overview
 
JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...
JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...
JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...
 
Advanced Production Debugging
Advanced Production DebuggingAdvanced Production Debugging
Advanced Production Debugging
 
Faster java ee builds with gradle [con4921]
Faster java ee builds with gradle [con4921]Faster java ee builds with gradle [con4921]
Faster java ee builds with gradle [con4921]
 
Top 10 reasons to migrate to Gradle
Top 10 reasons to migrate to GradleTop 10 reasons to migrate to Gradle
Top 10 reasons to migrate to Gradle
 
Java APIs- The missing manual (concurrency)
Java APIs- The missing manual (concurrency)Java APIs- The missing manual (concurrency)
Java APIs- The missing manual (concurrency)
 
What's Coming in Java EE 8
What's Coming in Java EE 8What's Coming in Java EE 8
What's Coming in Java EE 8
 

Viewers also liked

Becoming fully buzzword compliant
Becoming fully buzzword compliantBecoming fully buzzword compliant
Becoming fully buzzword compliantTrisha Gee
 
Live Demo from JavaOne
Live Demo from JavaOneLive Demo from JavaOne
Live Demo from JavaOneTrisha Gee
 
Career Advice for Programmers
Career Advice for Programmers Career Advice for Programmers
Career Advice for Programmers Trisha Gee
 
Migrating to IntelliJ IDEA from Eclipse
Migrating to IntelliJ IDEA from EclipseMigrating to IntelliJ IDEA from Eclipse
Migrating to IntelliJ IDEA from EclipseTrisha Gee
 
Lock? We don't need no stinkin' locks!
Lock? We don't need no stinkin' locks!Lock? We don't need no stinkin' locks!
Lock? We don't need no stinkin' locks!Michael Barker
 
Staying Ahead of the Curve
Staying Ahead of the CurveStaying Ahead of the Curve
Staying Ahead of the CurveTrisha Gee
 
Staying Ahead of the Curve
Staying Ahead of the CurveStaying Ahead of the Curve
Staying Ahead of the CurveTrisha Gee
 
Real World Java 9
Real World Java 9Real World Java 9
Real World Java 9Trisha Gee
 

Viewers also liked (8)

Becoming fully buzzword compliant
Becoming fully buzzword compliantBecoming fully buzzword compliant
Becoming fully buzzword compliant
 
Live Demo from JavaOne
Live Demo from JavaOneLive Demo from JavaOne
Live Demo from JavaOne
 
Career Advice for Programmers
Career Advice for Programmers Career Advice for Programmers
Career Advice for Programmers
 
Migrating to IntelliJ IDEA from Eclipse
Migrating to IntelliJ IDEA from EclipseMigrating to IntelliJ IDEA from Eclipse
Migrating to IntelliJ IDEA from Eclipse
 
Lock? We don't need no stinkin' locks!
Lock? We don't need no stinkin' locks!Lock? We don't need no stinkin' locks!
Lock? We don't need no stinkin' locks!
 
Staying Ahead of the Curve
Staying Ahead of the CurveStaying Ahead of the Curve
Staying Ahead of the Curve
 
Staying Ahead of the Curve
Staying Ahead of the CurveStaying Ahead of the Curve
Staying Ahead of the Curve
 
Real World Java 9
Real World Java 9Real World Java 9
Real World Java 9
 

Similar to Java SE 8 Update and Roadmap Summary

Interactive Java Support to your tool -- The JShell API and Architecture
Interactive Java Support to your tool -- The JShell API and ArchitectureInteractive Java Support to your tool -- The JShell API and Architecture
Interactive Java Support to your tool -- The JShell API and ArchitectureJavaDayUA
 
Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)
Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)
Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)jeckels
 
20160123 java one2015_feedback @ Osaka
20160123 java one2015_feedback @ Osaka20160123 java one2015_feedback @ Osaka
20160123 java one2015_feedback @ OsakaTakashi Ito
 
Java: Create The Future Keynote
Java: Create The Future KeynoteJava: Create The Future Keynote
Java: Create The Future KeynoteSimon Ritter
 
JavaOne 2014 Java EE 8 Booth Slides
JavaOne 2014 Java EE 8 Booth SlidesJavaOne 2014 Java EE 8 Booth Slides
JavaOne 2014 Java EE 8 Booth SlidesEdward Burns
 
JavaOne2015フィードバック @ 富山合同勉強会
JavaOne2015フィードバック @ 富山合同勉強会JavaOne2015フィードバック @ 富山合同勉強会
JavaOne2015フィードバック @ 富山合同勉強会Takashi Ito
 
Pushing JavaEE outside of the enterprise: Home Automation & IoT - David Delab...
Pushing JavaEE outside of the enterprise: Home Automation & IoT - David Delab...Pushing JavaEE outside of the enterprise: Home Automation & IoT - David Delab...
Pushing JavaEE outside of the enterprise: Home Automation & IoT - David Delab...Codemotion Tel Aviv
 
Server Side JavaScript on the Java Platform - David Delabassee
Server Side JavaScript on the Java Platform - David DelabasseeServer Side JavaScript on the Java Platform - David Delabassee
Server Side JavaScript on the Java Platform - David DelabasseeJAXLondon2014
 
The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011Arun Gupta
 
Configuration for Java EE and the Cloud
Configuration for Java EE and the CloudConfiguration for Java EE and the Cloud
Configuration for Java EE and the CloudDmitry Kornilov
 
Coherence RoadMap 2018
Coherence RoadMap 2018Coherence RoadMap 2018
Coherence RoadMap 2018harvraja
 
Project Helidon Overview (Japanese)
Project Helidon Overview (Japanese)Project Helidon Overview (Japanese)
Project Helidon Overview (Japanese)Logico
 
Java @ Cloud - Setor Público SP
Java @ Cloud - Setor Público SPJava @ Cloud - Setor Público SP
Java @ Cloud - Setor Público SPIlan Salviano
 
Oracle Developer Cloud - 소개 (신기능 포함)
Oracle Developer Cloud - 소개 (신기능 포함)Oracle Developer Cloud - 소개 (신기능 포함)
Oracle Developer Cloud - 소개 (신기능 포함)Mee Nam Lee
 
MySQL-Performance Schema- What's new in MySQL-5.7 DMRs
MySQL-Performance Schema- What's new in MySQL-5.7 DMRsMySQL-Performance Schema- What's new in MySQL-5.7 DMRs
MySQL-Performance Schema- What's new in MySQL-5.7 DMRsMayank Prasad
 
WebSockets in Enterprise Applications
WebSockets in Enterprise ApplicationsWebSockets in Enterprise Applications
WebSockets in Enterprise ApplicationsPavel Bucek
 
Servlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute InfodeckServlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute InfodeckEdward Burns
 

Similar to Java SE 8 Update and Roadmap Summary (20)

Interactive Java Support to your tool -- The JShell API and Architecture
Interactive Java Support to your tool -- The JShell API and ArchitectureInteractive Java Support to your tool -- The JShell API and Architecture
Interactive Java Support to your tool -- The JShell API and Architecture
 
Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)
Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)
Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)
 
20160123 java one2015_feedback @ Osaka
20160123 java one2015_feedback @ Osaka20160123 java one2015_feedback @ Osaka
20160123 java one2015_feedback @ Osaka
 
Java: Create The Future Keynote
Java: Create The Future KeynoteJava: Create The Future Keynote
Java: Create The Future Keynote
 
JDK 10 Java Module System
JDK 10 Java Module SystemJDK 10 Java Module System
JDK 10 Java Module System
 
JavaOne 2014 Java EE 8 Booth Slides
JavaOne 2014 Java EE 8 Booth SlidesJavaOne 2014 Java EE 8 Booth Slides
JavaOne 2014 Java EE 8 Booth Slides
 
JavaOne2015フィードバック @ 富山合同勉強会
JavaOne2015フィードバック @ 富山合同勉強会JavaOne2015フィードバック @ 富山合同勉強会
JavaOne2015フィードバック @ 富山合同勉強会
 
Java Cloud and Container Ready
Java Cloud and Container ReadyJava Cloud and Container Ready
Java Cloud and Container Ready
 
Pushing JavaEE outside of the enterprise: Home Automation & IoT - David Delab...
Pushing JavaEE outside of the enterprise: Home Automation & IoT - David Delab...Pushing JavaEE outside of the enterprise: Home Automation & IoT - David Delab...
Pushing JavaEE outside of the enterprise: Home Automation & IoT - David Delab...
 
AMIS Oracle OpenWorld 2013 Review Part 3 - Fusion Middleware
AMIS Oracle OpenWorld 2013 Review Part 3 - Fusion MiddlewareAMIS Oracle OpenWorld 2013 Review Part 3 - Fusion Middleware
AMIS Oracle OpenWorld 2013 Review Part 3 - Fusion Middleware
 
Server Side JavaScript on the Java Platform - David Delabassee
Server Side JavaScript on the Java Platform - David DelabasseeServer Side JavaScript on the Java Platform - David Delabassee
Server Side JavaScript on the Java Platform - David Delabassee
 
The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011
 
Configuration for Java EE and the Cloud
Configuration for Java EE and the CloudConfiguration for Java EE and the Cloud
Configuration for Java EE and the Cloud
 
Coherence RoadMap 2018
Coherence RoadMap 2018Coherence RoadMap 2018
Coherence RoadMap 2018
 
Project Helidon Overview (Japanese)
Project Helidon Overview (Japanese)Project Helidon Overview (Japanese)
Project Helidon Overview (Japanese)
 
Java @ Cloud - Setor Público SP
Java @ Cloud - Setor Público SPJava @ Cloud - Setor Público SP
Java @ Cloud - Setor Público SP
 
Oracle Developer Cloud - 소개 (신기능 포함)
Oracle Developer Cloud - 소개 (신기능 포함)Oracle Developer Cloud - 소개 (신기능 포함)
Oracle Developer Cloud - 소개 (신기능 포함)
 
MySQL-Performance Schema- What's new in MySQL-5.7 DMRs
MySQL-Performance Schema- What's new in MySQL-5.7 DMRsMySQL-Performance Schema- What's new in MySQL-5.7 DMRs
MySQL-Performance Schema- What's new in MySQL-5.7 DMRs
 
WebSockets in Enterprise Applications
WebSockets in Enterprise ApplicationsWebSockets in Enterprise Applications
WebSockets in Enterprise Applications
 
Servlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute InfodeckServlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute Infodeck
 

More from Trisha Gee

Career Advice for Architects
Career Advice for Architects Career Advice for Architects
Career Advice for Architects Trisha Gee
 
Is boilerplate code really so bad?
Is boilerplate code really so bad?Is boilerplate code really so bad?
Is boilerplate code really so bad?Trisha Gee
 
Code Review Best Practices
Code Review Best PracticesCode Review Best Practices
Code Review Best PracticesTrisha Gee
 
Career Advice for Programmers - ProgNET London
Career Advice for Programmers - ProgNET LondonCareer Advice for Programmers - ProgNET London
Career Advice for Programmers - ProgNET LondonTrisha Gee
 
Is Boilerplate Code Really So Bad?
Is Boilerplate Code Really So Bad?Is Boilerplate Code Really So Bad?
Is Boilerplate Code Really So Bad?Trisha Gee
 
Real World Java 9 - JetBrains Webinar
Real World Java 9 - JetBrains WebinarReal World Java 9 - JetBrains Webinar
Real World Java 9 - JetBrains WebinarTrisha Gee
 
Real World Java 9
Real World Java 9Real World Java 9
Real World Java 9Trisha Gee
 
Refactoring to Java 8 (Devoxx BE)
Refactoring to Java 8 (Devoxx BE)Refactoring to Java 8 (Devoxx BE)
Refactoring to Java 8 (Devoxx BE)Trisha Gee
 
Code Review Matters and Manners
Code Review Matters and MannersCode Review Matters and Manners
Code Review Matters and MannersTrisha Gee
 
Level Up Your Automated Tests
Level Up Your Automated TestsLevel Up Your Automated Tests
Level Up Your Automated TestsTrisha Gee
 
Staying Ahead of the Curve
Staying Ahead of the CurveStaying Ahead of the Curve
Staying Ahead of the CurveTrisha Gee
 
Level Up Your Automated Tests
Level Up Your Automated TestsLevel Up Your Automated Tests
Level Up Your Automated TestsTrisha Gee
 
Is Groovy better for testing than Java?
Is Groovy better for testing than Java?Is Groovy better for testing than Java?
Is Groovy better for testing than Java?Trisha Gee
 
Speaker Clinic (Novice Speakers)
Speaker Clinic (Novice Speakers)Speaker Clinic (Novice Speakers)
Speaker Clinic (Novice Speakers)Trisha Gee
 
Java 8 in Anger (QCon London)
Java 8 in Anger (QCon London)Java 8 in Anger (QCon London)
Java 8 in Anger (QCon London)Trisha Gee
 
Working in Open Source
Working in Open SourceWorking in Open Source
Working in Open SourceTrisha Gee
 
Building a web application with MongoDB & Java
Building a web application with MongoDB & JavaBuilding a web application with MongoDB & Java
Building a web application with MongoDB & JavaTrisha Gee
 

More from Trisha Gee (17)

Career Advice for Architects
Career Advice for Architects Career Advice for Architects
Career Advice for Architects
 
Is boilerplate code really so bad?
Is boilerplate code really so bad?Is boilerplate code really so bad?
Is boilerplate code really so bad?
 
Code Review Best Practices
Code Review Best PracticesCode Review Best Practices
Code Review Best Practices
 
Career Advice for Programmers - ProgNET London
Career Advice for Programmers - ProgNET LondonCareer Advice for Programmers - ProgNET London
Career Advice for Programmers - ProgNET London
 
Is Boilerplate Code Really So Bad?
Is Boilerplate Code Really So Bad?Is Boilerplate Code Really So Bad?
Is Boilerplate Code Really So Bad?
 
Real World Java 9 - JetBrains Webinar
Real World Java 9 - JetBrains WebinarReal World Java 9 - JetBrains Webinar
Real World Java 9 - JetBrains Webinar
 
Real World Java 9
Real World Java 9Real World Java 9
Real World Java 9
 
Refactoring to Java 8 (Devoxx BE)
Refactoring to Java 8 (Devoxx BE)Refactoring to Java 8 (Devoxx BE)
Refactoring to Java 8 (Devoxx BE)
 
Code Review Matters and Manners
Code Review Matters and MannersCode Review Matters and Manners
Code Review Matters and Manners
 
Level Up Your Automated Tests
Level Up Your Automated TestsLevel Up Your Automated Tests
Level Up Your Automated Tests
 
Staying Ahead of the Curve
Staying Ahead of the CurveStaying Ahead of the Curve
Staying Ahead of the Curve
 
Level Up Your Automated Tests
Level Up Your Automated TestsLevel Up Your Automated Tests
Level Up Your Automated Tests
 
Is Groovy better for testing than Java?
Is Groovy better for testing than Java?Is Groovy better for testing than Java?
Is Groovy better for testing than Java?
 
Speaker Clinic (Novice Speakers)
Speaker Clinic (Novice Speakers)Speaker Clinic (Novice Speakers)
Speaker Clinic (Novice Speakers)
 
Java 8 in Anger (QCon London)
Java 8 in Anger (QCon London)Java 8 in Anger (QCon London)
Java 8 in Anger (QCon London)
 
Working in Open Source
Working in Open SourceWorking in Open Source
Working in Open Source
 
Building a web application with MongoDB & Java
Building a web application with MongoDB & JavaBuilding a web application with MongoDB & Java
Building a web application with MongoDB & Java
 

Recently uploaded

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 

Recently uploaded (20)

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 

Java SE 8 Update and Roadmap Summary

  • 1.
  • 2. 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  
  • 49.
  • 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