|
1 |
| -# Java 8 New Features |
| 1 | +# Java 8 |
2 | 2 |
|
3 |
| -A project to explore more about the new features of Java... |
| 3 | +## Features |
4 | 4 |
|
5 |
| -- new methods from APIs |
6 |
| -- lambda expression to create anonymous method |
7 |
| -- lambda access scope (enclosing scope) |
8 |
| -- lambda expression to call constructors through method reference |
9 |
| -- Streams |
| 5 | +### Languages |
10 | 6 |
|
| 7 | +* new methods from APIs |
| 8 | +* Stream API |
| 9 | +* Project Lambda: |
| 10 | + * lambda expression to create anonymous method |
| 11 | + * lambda access scope (enclosing scope) |
| 12 | + * lambda expression to call constructors through method reference |
| 13 | +* Annotation improvements: |
| 14 | + * Annotations on Java Types |
| 15 | + * Repeating annotations |
| 16 | +* Method parameter reflection |
11 | 17 |
|
12 |
| -Lambda expression consiste of: |
13 | 18 |
|
14 |
| -- A comma-separated list of formal parameters enclosed in parentheses: (paramX, paramY) or singleParam or () |
15 |
| -- An [weird] arrow token: -> |
16 |
| -- A body, which consists of a single expression or a statement block: {} or a single expression without ; |
| 19 | +Lambda expression consiste of: |
17 | 20 |
|
18 |
| -E.g.: |
| 21 | +* A comma-separated list of formal parameters enclosed in parentheses: (paramX, paramY) or singleParam or () |
| 22 | +* An [weird] arrow token: -> |
| 23 | +* A body, which consists of a single expression or a statement block: {} or a single expression without ; |
19 | 24 |
|
20 |
| -- (x, y) -> return x + y |
21 |
| -- (x, y) -> { System.out.println(x); System.out.println(y); } |
22 |
| -- name -> System.out.println(name) |
| 25 | +E.g.: |
23 | 26 |
|
| 27 | +* (x, y) -> return x + y |
| 28 | +* (x, y) -> { System.out.println(x); System.out.println(y); } |
| 29 | +* name -> System.out.println(name) |
24 | 30 |
|
25 | 31 | For further information read the Java Tutorial at section about [Lambda Expressions] (http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html).
|
26 | 32 |
|
| 33 | +## JEPs |
| 34 | + |
| 35 | + |
| 36 | +* [126](https://openjdk.java.net/jeps/126) - Lambda Expressions & Virtual Extension Methods |
| 37 | +* [138](https://openjdk.java.net/jeps/138) - Autoconf-Based Build System |
| 38 | +* [160](https://openjdk.java.net/jeps/160) - Lambda-Form Representation for Method Handles |
| 39 | +* [161](https://openjdk.java.net/jeps/161) - Compact Profiles |
| 40 | +* [162](https://openjdk.java.net/jeps/162) - Prepare for Modularization |
| 41 | +* [164](https://openjdk.java.net/jeps/164) - Leverage CPU Instructions for AES Cryptography |
| 42 | +* [174](https://openjdk.java.net/jeps/174) - Nashorn JavaScript Engine |
| 43 | +* [176](https://openjdk.java.net/jeps/176) - Mechanical Checking of Caller-Sensitive Methods |
| 44 | +* [179](https://openjdk.java.net/jeps/179) - Document JDK API Support and Stability |
| 45 | +* [142](https://openjdk.java.net/jeps/142) - Reduce Cache Contention on Specified Fields |
| 46 | +* [122](https://openjdk.java.net/jeps/122) - Remove the Permanent Generation |
| 47 | +* [173](https://openjdk.java.net/jeps/173) - Retire Some Rarely-Used GC Combinations |
| 48 | +* [136](https://openjdk.java.net/jeps/136) - Enhanced Verification Errors |
| 49 | +* [147](https://openjdk.java.net/jeps/147) - Reduce Class Metadata Footprint |
| 50 | +* [148](https://openjdk.java.net/jeps/148) - Small VM |
| 51 | +* [171](https://openjdk.java.net/jeps/171) - Fence Intrinsics |
| 52 | +* [153](https://openjdk.java.net/jeps/153) - Launch JavaFX Applications |
| 53 | +* [101](https://openjdk.java.net/jeps/101) - Generalized Target-Type Inference |
| 54 | +* [104](https://openjdk.java.net/jeps/104) - Annotations on Java Types |
| 55 | +* [105](https://openjdk.java.net/jeps/105) - DocTree API |
| 56 | +* [106](https://openjdk.java.net/jeps/106) - Add Javadoc to javax.tools |
| 57 | +* [117](https://openjdk.java.net/jeps/117) - Remove the Annotation-Processing Tool (apt) |
| 58 | +* [118](https://openjdk.java.net/jeps/118) - Access to Parameter Names at Runtime |
| 59 | +* [120](https://openjdk.java.net/jeps/120) - Repeating Annotations |
| 60 | +* [139](https://openjdk.java.net/jeps/139) - Enhance javac to Improve Build Speed |
| 61 | +* [172](https://openjdk.java.net/jeps/172) - DocLint |
| 62 | +* [103](https://openjdk.java.net/jeps/103) - Parallel Array Sorting |
| 63 | +* [107](https://openjdk.java.net/jeps/107) - Bulk Data Operations for Collections |
| 64 | +* [109](https://openjdk.java.net/jeps/109) - Enhance Core Libraries with Lambda |
| 65 | +* [112](https://openjdk.java.net/jeps/112) - Charset Implementation Improvements |
| 66 | +* [119](https://openjdk.java.net/jeps/119) - javax.lang.model Implementation Backed by Core Reflection |
| 67 | +* [135](https://openjdk.java.net/jeps/135) - Base64 Encoding & Decoding |
| 68 | +* [149](https://openjdk.java.net/jeps/149) - Reduce Core-Library Memory Usage |
| 69 | +* [150](https://openjdk.java.net/jeps/150) - Date & Time API |
| 70 | +* [155](https://openjdk.java.net/jeps/155) - Concurrency Updates |
| 71 | +* [170](https://openjdk.java.net/jeps/170) - JDBC 4.2 |
| 72 | +* [177](https://openjdk.java.net/jeps/177) - Optimize java.text.DecimalFormat.format |
| 73 | +* [178](https://openjdk.java.net/jeps/178) - Statically-Linked JNI Libraries |
| 74 | +* [180](https://openjdk.java.net/jeps/180) - Handle Frequent HashMap Collisions with Balanced Trees |
| 75 | +* [127](https://openjdk.java.net/jeps/127) - Improve Locale Data Packaging and Adopt Unicode CLDR Data |
| 76 | +* [128](https://openjdk.java.net/jeps/128) - BCP 47 Locale Matching |
| 77 | +* [133](https://openjdk.java.net/jeps/133) - Unicode 6.2 |
| 78 | +* [184](https://openjdk.java.net/jeps/184) - HTTP URL Permissions |
| 79 | +* [113](https://openjdk.java.net/jeps/113) - MS-SFU Kerberos 5 Extensions |
| 80 | +* [114](https://openjdk.java.net/jeps/114) - TLS Server Name Indication (SNI) Extension |
| 81 | +* [115](https://openjdk.java.net/jeps/115) - AEAD CipherSuites |
| 82 | +* [121](https://openjdk.java.net/jeps/121) - Stronger Algorithms for Password-Based Encryption |
| 83 | +* [123](https://openjdk.java.net/jeps/123) - Configurable Secure Random-Number Generation |
| 84 | +* [124](https://openjdk.java.net/jeps/124) - Enhance the Certificate Revocation-Checking API |
| 85 | +* [129](https://openjdk.java.net/jeps/129) - NSA Suite B Cryptographic Algorithms |
| 86 | +* [130](https://openjdk.java.net/jeps/130) - SHA-224 Message Digests |
| 87 | +* [131](https://openjdk.java.net/jeps/131) - PKCS#11 Crypto Provider for 64-bit Windows |
| 88 | +* [140](https://openjdk.java.net/jeps/140) - Limited doPrivileged |
| 89 | +* [166](https://openjdk.java.net/jeps/166) - Overhaul JKS-JCEKS-PKCS12 Keystores |
| 90 | +* [185](https://openjdk.java.net/jeps/185) - Restrict Fetching of External XML Resources |
| 91 | + |
| 92 | + |
27 | 93 | ## Links
|
28 | 94 |
|
29 |
| -* [JDK 8 Documentation](https://docs.oracle.com/javase/8/) |
| 95 | +* [JDK 8 Documentation](https://docs.oracle.com/javase/8/) |
| 96 | +* [JDK 8](https://openjdk.java.net/projects/jdk8/) |
| 97 | +* [Java Programming Language Enhancements](https://docs.oracle.com/javase/8/docs/technotes/guides/language/enhancements.html#javase8) |
0 commit comments