Java: คำทั่วไปสำหรับภาษาการเขียนโปรแกรม Java และแพลตฟอร์ม Java ที่เปิดตัวโดย Sun Microsystems ในเดือนพฤษภาคม 2538 Java เป็นภาษาการเขียนโปรแกรมเชิงวัตถุที่สามารถเขียนซอฟต์แวร์แอปพลิเคชันข้ามแพลตฟอร์มได้ มันได้รับการพัฒนาในช่วงต้นทศวรรษ 1990 โดย James Gosling ซึ่งทำงานใน Sun Microsystems ในเวลานั้น เดิมชื่อ Oak ด้วยการพัฒนาอินเทอร์เน็ตอย่างรวดเร็ว Java ได้ค่อยๆกลายเป็นภาษาการเขียนโปรแกรมเครือข่ายที่สำคัญ
เป็นเวลาสิบเก้าปีนับตั้งแต่ Java รุ่นแรกเกิด เวลาผ่านไปและมันก็ผ่านไปในแฟลช 19 ปีผ่านไปในพริบตา ในไทม์ไลน์ที่แสดงในรูปด้านล่างเราจะเห็นว่า JDK ได้พัฒนาเป็นเวอร์ชัน 1.8 ในช่วง 19 ปีที่ผ่านมามีการเกิดผลิตภัณฑ์เทคโนโลยีและมาตรฐานที่เกี่ยวข้องกับชวานับไม่ถ้วน ตอนนี้ให้เข้าสู่ Time Tunnel และเริ่มต้นจากยุคที่ภาษา Java ได้รับการหล่อเลี้ยงและทบทวนวิถีการพัฒนาและการเปลี่ยนแปลงทางประวัติศาสตร์ของ Java
ในเดือนเมษายน 2534 โครงการสีเขียวนำโดยดร. เจมส์กอสลิ่งเปิดตัวโดยมีวัตถุประสงค์เพื่อพัฒนาสถาปัตยกรรมโปรแกรมที่สามารถทำงานกับผลิตภัณฑ์อิเล็กทรอนิกส์สำหรับผู้บริโภคที่หลากหลายเช่นกล่องรับสัญญาณ, ตู้เย็น, วิทยุและอื่น ๆ โอ๊คไม่ประสบความสำเร็จในตลาดสินค้าอุปโภคบริโภคในเวลานั้น แต่ด้วยการเพิ่มขึ้นของแนวโน้มอินเทอร์เน็ตในปี 2538 โอ๊คพบตำแหน่งทางการตลาดที่เหมาะสมกับการพัฒนาและเปลี่ยนเป็นภาษาชวา
เมื่อวันที่ 23 พฤษภาคม 2538 ภาษาโอ๊คได้เปลี่ยนชื่อ Java และเวอร์ชั่น Java 1.0 ได้รับการปล่อยตัวอย่างเป็นทางการในการประชุม Sunworld ภาษา Java หยิบยกสโลแกน "เขียนครั้งเดียวรันได้ทุกที่"
เมื่อวันที่ 23 มกราคม 2539 JDK 1.0 ได้รับการปล่อยตัวและภาษา Java มีสภาพแวดล้อมการวิ่งรุ่นแรกอย่างเป็นทางการ JDK 1.0 ให้การใช้งานการใช้งานเครื่องเสมือน Java ที่ตีความอย่างหมดจด (Sun Classic VM) เทคโนโลยีตัวแทนของ JDK เวอร์ชัน 1.0 รวมถึง: Java Virtual Machines, Awt ฯลฯ
ในเดือนเมษายน 2539 ซัพพลายเออร์ระบบปฏิบัติการที่สำคัญที่สุด 10 รายประกาศว่าพวกเขาจะฝังเทคโนโลยี Java ในผลิตภัณฑ์ของพวกเขา ในเดือนกันยายนของปีเดียวกันมีการผลิตเว็บเพจประมาณ 83,000 หน้าโดยใช้เทคโนโลยี Java เมื่อปลายเดือนพฤษภาคม 2539 ซันจัดการประชุม Javaone ครั้งแรกในซานฟรานซิสโกสหรัฐอเมริกา ตั้งแต่นั้นมา Javaone ได้กลายเป็นกิจกรรมทางเทคนิคประจำปีสำหรับนักพัฒนาภาษา Java หลายล้านคนทั่วโลก
เมื่อวันที่ 19 กุมภาพันธ์ 1997 ซันเปิดตัว JDK 1.1 จุดสนับสนุนพื้นฐานที่สุดของเทคโนโลยี Java (เช่น JDBC ฯลฯ ) ได้รับการปล่อยตัวในเวอร์ชัน JDK 1.1 ตัวแทนทางเทคนิคของเวอร์ชัน JDK 1.1 รวมถึง: รูปแบบไฟล์ JAR, JDBC, Javabeans และ RMI Java Syntax ได้พัฒนาขึ้นในระดับหนึ่งเช่นชั้นในและการสะท้อนกลับที่ปรากฏในเวลานี้
จนถึงวันที่ 8 เมษายน 1999, JDK 1.1 เปิดตัวทั้งหมดเก้าเวอร์ชัน: 1.1.0 ถึง 1.1.8 ตั้งแต่ 1.1.4 รุ่น JDK แต่ละรุ่นมีชื่อของตัวเอง (รหัสโครงการ) คือ: JDK 1.1.4 - Sparkler (อัญมณี), JDK 1.1.5 - ฟักทอง (ฟักทอง), JDK 1.1.6 - อาบิเกล
เมื่อวันที่ 4 ธันวาคม 2541 JDK นำไปสู่ JDK 1.2 รุ่นสำคัญพร้อมสนามเด็กเล่นชื่อรหัสโครงการ ในรุ่นนี้ Sun แยกระบบเทคโนโลยี Java ออกเป็นสามทิศทาง ได้แก่ J2SE (Java 2 Platform, Standard Edition), J2EE (Java 2 Platform, Enterprise Edition) สำหรับการพัฒนาระดับองค์กรและ J2ME (Java 2 Platform, Micro Edition) มีเทคโนโลยีตัวแทนมากมายที่ปรากฏในเวอร์ชันนี้เช่น EJB, ปลั๊กอิน Java, Java IDL, Swing ฯลฯ ในรุ่นนี้เครื่องเสมือน Java มีคอมไพเลอร์ในตัว (ทันเวลา) คอมไพเลอร์เป็นครั้งแรก คอมไพเลอร์ JIT ในตัวและ VM คลาสสิกที่นำมาในเวอร์ชันก่อนหน้าสามารถใช้คอมไพเลอร์ JIT ในรูปแบบของปลั๊กอิน) ในระดับภาษาและ API Java เพิ่มคำหลักที่เข้มงวดและชุดของคลาสคอลเลกชันคอลเลกชันที่ใช้กันทั่วไปในการเข้ารหัส Java
ในเดือนมีนาคมและกรกฎาคม 1999 มีสองรุ่นเล็ก JDK 1.2.1 และ JDK 1.2.2 ได้รับการปล่อยตัวตามลำดับ
เมื่อวันที่ 27 เมษายน 2542 เครื่องเสมือนฮอตสปอตได้รับการปล่อยตัว Hotspot ได้รับการพัฒนาโดย บริษัท ขนาดเล็กที่เรียกว่า "Longview Technologies" เนื่องจากประสิทธิภาพที่โดดเด่นของฮอตสปอต บริษัท ได้รับจากซันในปี 1997 เครื่องเสมือนฮอตสปอตได้รับการปล่อยตัวเป็นโปรแกรมเพิ่มเติมสำหรับ JDK 1.2 และต่อมามันก็กลายเป็นเครื่องเสมือนเริ่มต้นสำหรับ JDK 1.3 และ Sun JDK ทุกรุ่น
เมื่อวันที่ 8 พฤษภาคม 2000, JDK 1.3 ซึ่งมีรหัสโครงการเป็น Kestrel ได้รับการปล่อยตัว การปรับปรุง JDK 1.3 เมื่อเทียบกับ JDK 1.2 ส่วนใหญ่สะท้อนให้เห็นในไลบรารีคลาสบางแห่ง (เช่นการดำเนินการทางคณิตศาสตร์และ API ตัวจับเวลาใหม่ ฯลฯ ) บริการ JNDI ได้รับการจัดเตรียมเป็นบริการระดับแพลตฟอร์มตั้งแต่ JDK 1.3 (JNDI เป็นเพียงส่วนขยายมาก่อน) โดยใช้ Corba IIOP เพื่อใช้โปรโตคอลการสื่อสาร RMI ฯลฯ รุ่นนี้ยังทำให้การปรับปรุง Java 2D จำนวนมาก JDK 1.3 มี JDK 1.3.1 เวอร์ชันที่แก้ไขแล้วพร้อมชื่อรหัสโครงการ Ladybird และได้รับการปล่อยตัวเมื่อวันที่ 17 พฤษภาคม 2544
ตั้งแต่ JDK 1.3, Sun ยังคงมีนิสัยชอบปล่อย JDK รุ่นใหญ่เกี่ยวกับทุก ๆ สองปีที่ตั้งชื่อตามสัตว์และการแก้ไขต่าง ๆ ที่ปล่อยออกมาในช่วงเวลานั้นมีการตั้งชื่อโดยแมลง
เมื่อวันที่ 13 กุมภาพันธ์ 2545 JDK 1.4 ได้รับการปล่อยตัวด้วยชื่อรหัสโครงการเมอร์ลิน (สีเทาแบ็คฟอลคอน) JDK 1.4 เป็นรุ่นของ Java ที่ครบกำหนดอย่างแท้จริง บริษัท ที่มีชื่อเสียงเช่น Compaq, Fujitsu, SAS, Symbian และ IBM ได้เข้าร่วมและตระหนักถึง JDK 1.4 อิสระของตนเอง ยิ่งกว่าสิบปีต่อมายังมีแอพพลิเคชั่นหลักจำนวนมาก (ฤดูใบไม้ผลิ, ไฮเบอร์เนต, struts ฯลฯ ) ที่สามารถทำงานโดยตรงบน JDK 1.4 หรือยังคงเปิดตัวรุ่นที่สามารถทำงานบน JDK 1.4 JDK 1.4 ยังเปิดตัวคุณสมบัติทางเทคนิคใหม่ ๆ มากมายเช่นนิพจน์ทั่วไป, โซ่ยกเว้น, NIO, คลาสบันทึก, ตัวแยกวิเคราะห์และตัวแปลง XSLT
JDK 1.4 มีการแก้ไขสองครั้งในภายหลัง:
JDK 1.4.1, ชื่อรหัสรหัสของโครงการได้เปิดตัวเมื่อวันที่ 16 กันยายน 2545
โครงการรหัส Mantis JDK 1.4.2 เปิดตัวเมื่อวันที่ 26 มิถุนายน 2546
ประมาณปี 2545 เหตุการณ์ที่ไม่มีความสัมพันธ์โดยตรงกับ Java แต่ในความเป็นจริงมีผลกระทบอย่างมากต่อการพัฒนา Java ได้รับการปล่อยตัวจากงาน. NET ของ Microsoft แพลตฟอร์มเทคโนโลยีนี้ซึ่งคล้ายกับ Java ทั้งในการใช้งานด้านเทคนิคและผู้ใช้เป้าหมายได้นำการอภิปรายการเปรียบเทียบและการแข่งขันกับ Java เป็นจำนวนมาก การถกเถียงกันอย่างมากระหว่างแพลตฟอร์ม. NET และแพลตฟอร์ม Java ยังคงดำเนินต่อไป
เมื่อวันที่ 30 กันยายน 2547 JDK 1.5 ได้รับการปล่อยตัวด้วยชื่อรหัสโครงการเสือ ตั้งแต่ JDK 1.2 การเปลี่ยนแปลงของ Java ในระดับไวยากรณ์มีขนาดเล็กมากและ JDK 1.5 ได้ทำการปรับปรุงอย่างมากในการใช้ไวยากรณ์ Java ตัวอย่างเช่นคุณสมบัติไวยากรณ์เช่นการชกมวยอัตโนมัติ, ทั่วไป, คำอธิบายประกอบแบบไดนามิก, การแจกแจง, พารามิเตอร์ความยาวตัวแปรและลูปข้าม (ลูป foreach) ทั้งหมดจะถูกเพิ่มเข้ามาใน JDK 1.5 ที่ระดับเครื่องเสมือนและระดับ API รุ่นนี้ปรับปรุงโมเดลหน่วยความจำของ Java (JMM) ให้ Java.util.Concurrent Package ฯลฯ นอกจากนี้ JDK 1.5 เป็นรุ่น JDK สุดท้ายที่ประกาศอย่างเป็นทางการว่าสามารถรองรับแพลตฟอร์ม Windows 9X
เมื่อวันที่ 11 ธันวาคม 2549 JDK 1.6 ได้รับการปล่อยตัวโดยมีชื่อรหัสโครงการมัสแตง (มัสแตง) ในรุ่นนี้ซันสิ้นสุดวิธีการตั้งชื่อของ J2EE, J2SE และ J2ME ที่มีมานาน 8 ปีแล้วตั้งแต่ JDK 1.2 และเปิดใช้งานวิธีการตั้งชื่อของ Java SE 6, Java EE 6 และ Java Me 6. การปรับปรุง JDK 1.6 API ฯลฯ ในเวลาเดียวกันเวอร์ชันนี้ได้ทำการปรับปรุงเครื่องเสมือน Java มากมายรวมถึงการล็อคและการซิงโครไนซ์การรวบรวมขยะการโหลดคลาสและอัลกอริทึมอื่น ๆ
ในการประชุม Javaone เมื่อวันที่ 13 พฤศจิกายน 2549 ซันประกาศว่าในที่สุดมันจะโอเพ่นซอร์ส Java และในปีต่อไปส่วนต่าง ๆ ของ JDK ได้รับการเปิดเผยอย่างต่อเนื่องภายใต้โปรโตคอล GPL V2 (GNU ทั่วไปใบอนุญาต V2) และจัดตั้งองค์กร OpenJDK เพื่อจัดการรหัสแหล่งที่มาเหล่านี้ นอกเหนือจากรหัสสิทธิ์ในทรัพย์สินจำนวนน้อยมาก (รหัสที่มีการเสริมซึ่งส่วนใหญ่ Sun เองไม่ได้รับอนุญาตให้ประมวลผลโอเพ่นซอร์ส) OpenJDK มีรหัสเกือบทั้งหมดของ Sun JDK ผู้จัดการคุณภาพของ OpenJDK เคยกล่าวไว้ว่าใน JDK 1.7 รหัสของ Sun JDK และ OpenJDK นั้นเหมือนกันยกเว้นคำอธิบายประกอบลิขสิทธิ์ของส่วนหัวไฟล์รหัสดังนั้น OpenJDK 7 และ Sun JDK 1.7 เป็นผลิตภัณฑ์ที่พัฒนาโดยฐานรหัสชุดเดียวกัน
หลังจากการเปิดตัว JDK 1.6 เนื่องจากการเพิ่มขึ้นของความซับซ้อนของรหัสโอเพ่นซอร์ส JDK การพัฒนา Javafx วิกฤตเศรษฐกิจและการได้มาซึ่งแสงแดดซันใช้ทรัพยากรจำนวนมากในสิ่งอื่นนอกเหนือจากการพัฒนา JDK และการปรับปรุง JDK ไม่ได้รักษาความเร็วในการพัฒนาของการปล่อยเวอร์ชั่นสำคัญอีกสองปี JDK 1.6 ได้เปิดตัวเวอร์ชันอัปเดตทั้งหมด 37 เวอร์ชันแล้ว เวอร์ชันล่าสุดคือ Java SE 6 Update 37 ซึ่งวางจำหน่ายเมื่อวันที่ 16 ตุลาคม 2012
เมื่อวันที่ 19 กุมภาพันธ์ 2552, JDK 1.7, Dolphin ชื่อรหัสเสร็จสิ้นรุ่นสำคัญครั้งแรก ตามการวางแผนการทำงานของ JDK 1.7 มีการตั้งค่าเหตุการณ์สำคัญทั้งหมด 10 ครั้ง รุ่นสุดท้ายของ Milestone นั้นมีกำหนดจะสิ้นสุดในวันที่ 9 กันยายน 2010 แต่ JDK 1.7 ในที่สุดก็ไม่สามารถดำเนินการได้ตามที่วางแผนไว้ด้วยเหตุผลหลายประการ
การตัดสินจากการวางแผนการทำงานเบื้องต้นของ JDK 1.7 ควรเป็นรุ่น JDK ที่มีการปรับปรุงที่สำคัญมากมาย โครงการย่อยเช่นโครงการแลมบ์ดา (นิพจน์แลมบ์ดา, การเขียนโปรแกรมที่ใช้งานได้), โครงการจิ๊กซอว์ (การสนับสนุนแบบแยกส่วนของเครื่องเสมือน), การสนับสนุนภาษาแบบไดนามิก, GarbageFirst Collector และโครงการเหรียญ (รายละเอียดภาษาวิวัฒนาการ) จะส่งผลกระทบอย่างลึกซึ้งต่ออุตสาหกรรม Java ในระหว่างการพัฒนาของ JDK 1.7 บริษัท ซุนอยู่ในบึงทั้งในการแข่งขันทางเทคโนโลยีและเชิงพาณิชย์และมูลค่าตลาดหุ้นลดลงเหลือเพียง 3% ของช่วงเวลาสูงสุดและไม่สามารถส่งเสริมการพัฒนา JDK 1.7 ตามปกติได้อีกต่อไป เพื่อยุติ "หยุด" ระยะยาวของ JDK 1.7 โดยเร็วที่สุด Oracle ประกาศหลังจากได้รับดวงอาทิตย์มันจะใช้ "แผน B" และตัดเป้าหมายที่กำหนดไว้ล่วงหน้าของ JDK 1.7 อย่างมีนัยสำคัญเพื่อให้แน่ใจว่า JDK 1.7 รุ่นอย่างเป็นทางการไม่สามารถเปิดตัวได้ในเวลาที่ 28 กรกฎาคม 2011 ในที่สุดการปรับปรุงหลักของ JDK 1.7 รวมถึง: การจัดหานักสะสม G1 ใหม่ (G1 ยังคงอยู่ในสถานะทดลองเมื่อได้รับการปล่อยตัวและมันก็ไม่ได้เป็นอย่างเป็นทางการ
จนถึงตอนนี้ JDK 1.7 ได้เปิดตัว 9 เวอร์ชันอัปเดตและการอัปเดต Java SE 7 ล่าสุดได้เปิดตัวเมื่อวันที่ 16 ตุลาคม 2012 เริ่มต้นจากการอัปเดต Java SE 7 4 Oracle ได้เริ่มรองรับระบบปฏิบัติการ Mac OS X และถึงการสนับสนุนอย่างเต็มที่ในการอัปเดต 6 ในเวลาเดียวกัน แพลตฟอร์มและรองรับ ARM, x86, x64 และประเภทสถาปัตยกรรมชุดคำสั่งชุด
เมื่อวันที่ 20 เมษายน 2552 ออราเคิลประกาศว่าได้ซื้อ Sun อย่างเป็นทางการมาแล้วที่ 7.4 พันล้านเหรียญสหรัฐและเครื่องหมายการค้า Java เป็นเจ้าของอย่างเป็นทางการโดย Oracle (ภาษา Java นั้นไม่ได้เป็นของ บริษัท ใด ๆ เนื่องจากก่อนหน้านี้ Oracle ได้ซื้อ บริษัท มิดเดิลแวร์ขนาดใหญ่อีกแห่งหนึ่งหลังจากเสร็จสิ้นการเข้าซื้อกิจการของ Sun Oracle ได้รับเครื่องเสมือนจริงเชิงพาณิชย์ที่สำคัญสองแห่งในปัจจุบันจาก Bea และ Sun, Jrockit และ Hotspot ออราเคิลประกาศว่าในอีก 1 ถึง 2 ปีข้างหน้ามันจะเรียนรู้จากจุดแข็งและจุดอ่อนของกันและกันและในที่สุดก็รวมเข้าด้วยกัน อาจคาดการณ์ได้ว่าในอนาคตอันใกล้เทคโนโลยีเครื่องเสมือน Java จะได้รับการเปลี่ยนแปลงอย่างมาก
เมื่อวันที่ 28 กรกฎาคม 2011 Oracle เปิดตัว Java SE 1.7
เมื่อวันที่ 18 มีนาคม 2014 Oracle เปิดตัว Java SE 1.8
ภาษา Java มีคุณสมบัติดังต่อไปนี้: ความเรียบง่าย, มุ่งเน้นวัตถุ, กระจาย, ตีความ, ตีความ, แข็งแกร่ง, ปลอดภัย, สถาปัตยกรรมเป็นกลาง, พกพา, ประสิทธิภาพสูง, มีประสิทธิภาพสูง, มัลติเธรดและไดนามิก