يحتوي على كل ما تحتاج إلى معرفته عن الإصدارات والميزات المختلفة لـ Java.

Java 8 ، Java 11 ، Java 13 ، Java 14 - ما الفرق؟
يمكنك استخدام هذا الدليل للحصول على معلومات عملية حول كيفية العثور على أحدث إصدار من Java وتثبيته ، لفهم الاختلافات بين توزيعات Java (اعتماد ، OpenJDK ، OpenJDK ، OracleJDK ، وما إلى ذلك) ، وكذلك للحصول على نظرة عامة على ميزات Java بما في ذلك إصدارات Java 8-14.
17 Java
Julegg
java-14 . ?
09 2020 .
-, , Java .
TL;DR . ?
AdoptOpenJDK, Java, . , , , - Java.
TL;DR (. too long; didn't read — , )
Java?
2020 Java 14 Java.
Java ?
Java 6 . , Java 15 2020 , Java 16 2021 . Java , 3-5 . :

:
- Java 8 (. « Java 8?» ). , Java 8.
- Java 1.5 ( 2004 .) 1.6 ( 2006 .) — , !
- , IDE, , Java 11 (LTS) Java 14.
- Android, Java Java 7, Java 8. Kotlin.
Java 8?
, Java 8. :
- (Maven, Gradle ..) Java > 8 . , , Java 9+, «reflective access» Java, « », .
- Java 8 JDK- Oracle, . 2019 Oracle , , , , «Java », — . , « Java» .
- , LTS, , .
, ( , , ) .
Java 1.X?
Java 9 . , Java 8 1.8, Java 5 1.5 .. java -version , :
c:\Program Files\Java\jdk1.8.0_191\bin>java -version
java version "1.8.0_191" (1)
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
Java 8. Java 9 , Java 1.x. :
c:\Program Files\Java\jdk11\bin>java -version
openjdk version "11" 2018-09-25 (1)
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
Java?
?
, , , Python 2–3, , Java.
Java , . , Java 5 8 Java 8-14 — , .
, , , Java 14, Java 8 JVM.
:
- «» Java, Java 12.
- , Java 8.
- , , Java 9-14, , .
Java?
« Java 8-14» .
, : , (3-5 , Java 8) .
, Java 9-14.
JRE JDK?
Java. «Java»?
-, JRE (Java Runtime Environment) JDK (Java Development Kit).
, JRE, Java. JRE , , Java (JVM) «java».
Java JDK. JDK , JRE, javac , javadoc ( Java) jdb ( Java).
, ?
Java 8 - Oracle JRE JDK , JDK JRE . Java 9 , JDK. JDK , JRE.
, (. « Java») - JRE, , JDK. , Java JDK .
Java JDK?
Java-Docker, MSI . , Java — .zip; .
, , Java , — jdk-{5-14}.zip. .
Java :
Directory C:\dev\jdk-11
12.11.2019 19:24 <DIR> .
12.11.2019 19:24 <DIR> ..
12.11.2019 19:23 <DIR> bin
12.11.2019 19:23 <DIR> conf
12.11.2019 19:24 <DIR> include
12.11.2019 19:24 <DIR> jmods
22.08.2018 19:18 <DIR> legal
12.11.2019 19:24 <DIR> lib
12.11.2019 19:23 1.238 release
/bin, Windows :
Directory C:\dev\jdk-11\bin
...
12.11.2019 19:23 272.736 java.exe
...
12.11.2019 19:23 20.832 javac.exe
...
, , /bin PATH, java .
, , , Oracle AdoptOpenJDK, PATH .
, Java, java -version. , , !
openjdk version "11" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
: .zip Java? .
Java
, Java (: JDK), , « ». .
OpenJDK
Java (: JRE / JDK) — OpenJDK.
, (: .zip java ). , , , MarcoJDK, . , Java SE.
, , (. TCK) .
, , String Java, (ay!) (, CLI), . Java.
OpenJDK ( Oracle) OracleJDK
, Java , — Oracle. Java, .
- OpenJDK Oracle (!). , Oracle , , Java 14, Java 15.
- OracleJDK — , 2019 . , , Oracle, . , , , JVM .
( Java 8) OpenJDK OracleJDK, , OracleJDK «». , .
, ( ) Java.
AdoptOpenJDK
2017 , Java User Group (Amazon, Microsoft, Pivotal, Red Hat ) AdoptOpenJDK.
OpenJDK / Java: HotSpot OpenJ9.
, Java.
Azul Zulu, Amazon Corretto, SAPMachine
OpenJDK OpenJDK Wikipedia. Azul Zulu, Amazon Corretto, SapMachine . , , / .
, .
OpenJDK
(Rafael Winterhalter) OpenJDK, : , , , .
: https://rafael.codes/openjdk/.
, 2019 , , jdk.zip (.tar.gz/.msi/.pkg) https://adoptopenjdk.net , .
Java 8-14
: ( ) Java 8 Java 14. Java .
, , Java 8 Java, (Java 9-14) .
, :
— Java 8 -
Java 8 , - Oracle. :
: ..
Java 8 , , , Runnable, , , :
Runnable runnable = new Runnable(){
@Override
public void run(){
System.out.println("Hello world !");
}
};
:
Runnable runnable = () -> System.out.println("Hello world two!");
, , .
Java 8 , Stream API. :
List<String> list = Arrays.asList("franz", "ferdinand", "fiel", "vom", "pferd");
Java 8, for, - .
API Streams :
list.stream()
.filter(name -> name.startsWith("f"))
.map(String::toUpperCase)
.sorted()
.forEach(System.out::println);
Java 8
, Stream, Lambda Optional Java 8. , — — Java 8.
— Java 9 -
Java 9 , :
, .
List<String> list = List.of("one", "two", "three");
Set<String> set = Set.of("one", "two", "three");
Map<String, String> map = Map.of("foo", "one", "bar", "two");
Streams
, takeWhile, dropWhile iterate.
Stream<String> stream = Stream.iterate("", s -> s + "s")
.takeWhile(s -> s.length() < 10);
Optionals
Optionals ifPresentOrElse, .
user.ifPresentOrElse(this::displayAccount, this::displayLogin);
private :
public interface MyInterface {
private static void myPrivateMethod(){
System.out.println("Yay, I am private!");
}
}
, try-with-resources diamond .
JShell
, Java , .
% jshell
| Welcome to JShell -- Version 9
| For an introduction type: /help intro
jshell> int x = 10
x ==> 10
HTTPClient
Java 9 HttpClient. Http Java , , Apache HttpClient OkHttp (, ).
Java 9 Java — , , Java.
Jigsaw: Java Jar
Java 9 Jigsaw Module System, - OSGI. Jigsaw — , .
Multi-Release .jar .jar, JVM. , - / , Java 8 Java 10, .
— Java 10 -
Java 10 , .. , , , , , — var, .
: var
String myName = "Marco";
var myName = "Marco"
Javascript-, ? Java var (, dpash, , ).
— Java 11 -
Java 11 .
( ):
"Marco".isBlank();
"Mar\nco".lines();
"Marco ".strip();
Path path = Files.writeString(Files.createTempFile("helloworld", ".txt"), "Hi, my name is!");
String s = Files.readString(path);
Java 10, Java . .
ubuntu@DESKTOP-168M0IF:~$ java MyScript.java
(var) -
:
(var firstName, var lastName) -> firstName + lastName
HttpClient
HttpClient Java 9, , .
Flight Recorder ( ), No-Op, Nashorn-Javascript-Engine deprecated () ..
— Java 12 -
Java 12 , Unicode 11 switch, .
— Java 13 -
, , , Unicode 12.1, ( ):
Switch (Preview — )
Switch . - , :
switch :
switch(status) {
case SUBSCRIBER:
break;
case FREE_TRIAL:
break;
default:
}
Java 13 switch :
boolean result = switch (status) {
case SUBSCRIBER -> true;
case FREE_TRIAL -> false;
default -> throw new IllegalArgumentException("something is murky!");
};
()
- Java:
String htmlBeforeJava13 = "<html>\n" +
" <body>\n" +
" <p>Hello, world</p>\n" +
" </body>\n" +
"</html>\n";
String htmlWithJava13 = """
<html>
<body>
<p>Hello, world</p>
</body>
</html>
""";
Java 14
Switch ()
Switch , 12 13, .
int numLetters = switch (day) {
case MONDAY, FRIDAY, SUNDAY -> 6;
case TUESDAY -> 7;
default -> {
String s = day.toString();
int result = s.length();
yield result;
}
};
Records ()
Records (), Java. Java 14, , () / , equals / hashcode, toString.
final class Point {
public final int x;
public final int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
}
:
record Point(int x, int y) { }
, .
NullPointerException
, NullPointerExceptions , null.
author.age = 35;
---
Exception in thread "main" java.lang.NullPointerException:
Cannot assign field "age" because "author" is null
InstanceOf ()
(cast) instanceof, :
if (obj instanceof String) {
String s = (String) obj;
}
, , cast.
if (obj instanceof String s) {
System.out.println(s.contains("hello"));
}
()
jpackage (), Java- , .
- Linux: deb rpm
- macOS: pkg dmg
- Windows: MSI EXE
Concurrent Mark Sweep (CMS) , Z.
Java 15
, . !
:
- كيفية تثبيت Java ، أي إصدار يمكن الحصول عليه وأين يمكن الحصول عليه (تلميح: المتبني ).
- ما هو توزيع جافا وما هو موجود وما هي الاختلافات.
- ما هي الاختلافات بين إصدارات محددة من جافا.
نرحب دائمًا بالتعليقات والتصحيحات وإدخالاتك! فقط أترك تعليقا في الأسفل.
شكرا للقراءة!
شكر وتقدير
كتب ستيفن كوليبورن مقالًا رائعًا حول توزيعات Java المختلفة المتاحة. شكرا ستيفن!