สรุปความแตกต่างระหว่างเวอร์ชัน Java? [ปิด]


14

อะไรคือความแตกต่างที่สำคัญระหว่างเวอร์ชัน Java ในแง่ของการพัฒนาซอฟต์แวร์? เราจะหาบทสรุปของการเปลี่ยนแปลงที่สำคัญที่สุดที่เกี่ยวข้องกับการเขียนโปรแกรมได้ที่ไหน?

บันทึกประจำรุ่นเช่นhttp://www.oracle.com/technetwork/java/javase/releasenotes-136954.htmlอาจอ่านยาก

ตัวอย่างเช่นมีโครงสร้างโค้ดใหม่ "สำหรับแต่ละ" ใน Java 1.5


1
ในเอกสารประกอบ Java ที่รวบรวมจากhttp://javadoc.allimant.orgคุณจะพบว่ามีอะไรใหม่ ในสารบัญ Java ประวัติรุ่นที่มีอยู่ในวิกิพีเดีย
Axel Kemper

คำตอบ:


94

นี่คือบทสรุปของบทความวิกิพีเดียที่ยอดเยี่ยมเกี่ยวกับประวัติศาสตร์ Java รุ่น มันมีการคัดเลือกสูง (และลำเอียงในสิ่งที่ฉันรู้และใช้) มิฉะนั้นมันก็จะกลายเป็นสำเนาของบทความ

ส่วนหนาเป็นสิ่งที่นำมาจริงๆภาษาไปข้างหน้าเป็นทั้ง อย่างที่คุณเห็นไม่ใช่ว่าทุกรุ่นมีส่วนที่เป็นตัวหนา

Java 11

JSR 384มีอะไรใหม่

การเปลี่ยนแปลงภาษา:

การเปลี่ยนแปลงห้องสมุด:

Java 10

JSR 383มีอะไรใหม่

การเปลี่ยนแปลงภาษา:

Java 9

JSR 379มีอะไรใหม่

การเปลี่ยนแปลงภาษา:

การเปลี่ยนแปลงห้องสมุด:

  • ระบบโมดูลแพลตฟอร์ม Java (จิ๊กซอว์)
    • การทำให้เป็นโมดูลของแพลตฟอร์มนั้นเอง
    • ทำให้โมดูลเป็นพลเมืองระดับเฟิร์สคลาสเพื่อแทนที่ classpath ที่ยุ่งเหยิงด้วยโมดูลด้วยข้อมูลการพึ่งพาที่แท้จริง

การเปลี่ยนแปลงอื่น ๆ :

  • คนดูเหมือนจะได้รับมากกว่า1.xการตั้งชื่อเกือบจะไม่มีใครเรียกสิ่งนี้ว่า "Java 1.9"

Java 8 (aka 1.8)

JSR 337มีอะไรใหม่

การเปลี่ยนแปลงภาษา:

  • การแสดงออกแลมบ์ดา ( JSR 335 , รวมถึงการจัดการวิธีการ)
  • ความต่อเนื่องของ Project Coin (การปรับปรุงภาษาเล็ก ๆ )
  • คำอธิบายประกอบบนประเภท Java

การเปลี่ยนแปลงห้องสมุด:

Java 7 (aka 1.7)

JSR 336 , ให้บริการและการปรับปรุง

การเปลี่ยนแปลงภาษา:

การเปลี่ยนแปลงห้องสมุด:

  • ใหม่ abstracted ระบบไฟล์ API (NIO.2) (พร้อมรองรับระบบไฟล์เสมือน)
  • ปรับปรุงการทำงานพร้อมกันของไลบรารี
  • การเข้ารหัสเส้นโค้งวงรี
  • การอัพเกรดที่เพิ่มมากขึ้น

การเปลี่ยนแปลงแพลตฟอร์ม:

Java 6 (aka 1.6)

JSR 270 คุณสมบัติและการปรับปรุง

ส่วนใหญ่ปรับปรุงเพิ่มขึ้นไปยังห้องสมุดที่มีอยู่ไม่มีภาษาใหม่ที่มีคุณสมบัติ (ยกเว้นsnafu )@Override

Java 5 (aka 1.5)

JSR 176 , ให้บริการและการปรับปรุง

การเปลี่ยนแปลงภาษา:

การเปลี่ยนแปลงห้องสมุด:

  • สาธารณูปโภคพร้อมกันใน java.util.concurrent

Java 1.4

JSR 59

การเปลี่ยนแปลงภาษา:

การเปลี่ยนแปลงห้องสมุด:

Java 1.3

การปรับปรุงเล็กน้อยส่วนใหญ่จริง ๆ

การเปลี่ยนแปลงแพลตฟอร์ม:

  • HotSpot JVM: ปรับปรุงมากกว่า JIT ดั้งเดิม

Java 1.2

การเปลี่ยนแปลงภาษา:

การเปลี่ยนแปลงห้องสมุด:

การเปลี่ยนแปลงของแพลตฟอร์ม

  • JIT ที่แท้จริงเพิ่มความเร็วอย่างมาก

Java 1.1

การเปลี่ยนแปลงภาษา:

  • ชั้นใน

การเปลี่ยนแปลงห้องสมุด:

  • การเปลี่ยนแปลงของเหตุการณ์ AWT
  • JDBC, RMI
  • การสะท้อนกลับ

Java 1.0

เริ่มต้นทุกอย่างใหม่ ;-)


2
คำอธิบายว่าทำไม Java 6 มีการเปลี่ยนแปลงเพียงเล็กน้อยดูเหมือนว่าจะอยู่ที่หน้า JSR 270 : ดูเหมือนย้อนกลับไปตอนนี้พวกเขากำลังทดลองกับแนวคิดเกี่ยวกับการเผยแพร่ตามเวลาแทนที่จะเป็นไปตามคุณสมบัติ : "เป้าหมายคือการจัดส่งคุณลักษณะตามปกติ รอบ 18-24 เดือน ... "
gnat

@gnat: มันฟังดูดี แต่คำตอบนั้นถูกยัดไว้มากพอฉันอยากจะเก็บข้อมูลเพิ่มเติมไว้ในรายการ
โจอาคิมซาวเออร์

@JoachimSauer yup คำตอบของคุณจะถูกต้องหากไม่มีรายละเอียดเหล่านี้ "ฝัง" แม้ว่า ... มันอาจจะไม่เจ็บถ้าคุณเพิ่มลิงก์ไปยังร่ม JSRs ที่เกี่ยวข้องสำหรับ 1.4 และรุ่นที่ใหม่กว่าซึ่งจะครอบคลุมโดยปริยายพร้อมกับรายละเอียดเพิ่มเติม
gnat

1
เฮ้แอ็กเซิลโปรดอย่ารู้สึกแย่เลย แน่นอนว่าเราจะตำหนิเว็บ! เหตุใดเราไม่สามารถเผยแพร่เนื้อหาจาก Wikipedia ที่นี่ใน PE ทำไมเราต้องหันไปคัดลอกและวาง ทำไมไม่มีกลไกในการแสดงเนื้อหาจาก Wikipedia ใน pE? IMO นี้ควรเป็นสิ่งพื้นฐาน ลองนึกภาพ java 1.9 มาจากสิ่งที่คุณคิด หน้าใดที่จะถูกเก็บไว้ uptodate คำตอบนี้เป็นเพียงการคัดลอกและวางโปรแกรมเมอร์ควรหลีกเลี่ยงไม่ใช่?
AndreasScheinert

1
@AndreasScheinert: จุดสนใจของ Wikipedia นั้นแตกต่างจาก SE บทความ Wikipedia ฉบับเต็มจะเป็นข้อมูลมากเกินไปสำหรับคำถามนี้ นอกจากนี้ฉันคิดว่าใบอนุญาตจะไม่อนุญาตให้คัดลอกและวางเนื้อหา
โจอาคิมซาวเออร์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.