รู้เบื้องต้นเกี่ยวกับ Java
⚡ สรุปอย่างชาญฉลาด
รู้เบื้องต้นเกี่ยวกับ Java บทความนี้อธิบายถึงภาษาการเขียนโปรแกรมเชิงวัตถุแบบคลาสที่ใช้งานได้ทั่วไป ซึ่งทำหน้าที่เป็นแพลตฟอร์มการคำนวณได้ด้วย บทช่วยสอนนี้ครอบคลุม... Javaประวัติ เวอร์ชัน คุณสมบัติ ส่วนประกอบหลัก (JDK, JVM, JRE) รุ่นแพลตฟอร์ม และกลไกไบต์โค้ดที่ใช้ในการสร้าง JDK Java ภาษาที่เขียนครั้งเดียวใช้งานได้ทุกที่อย่างแท้จริง

ความหมายของ Java?
Java เป็นภาษาโปรแกรมเชิงวัตถุแบบคลาสที่ใช้งานได้ทั่วไป ออกแบบมาเพื่อลดการพึ่งพาการใช้งานให้น้อยที่สุด นอกจากนี้ยังเป็นแพลตฟอร์มการคำนวณสำหรับการพัฒนาแอปพลิเคชันอีกด้วย Java ภาษาโปรแกรมนี้รวดเร็ว ปลอดภัย และเชื่อถือได้ จึงเป็นภาษาที่ใช้ขับเคลื่อนซอฟต์แวร์บนแล็ปท็อป ศูนย์ข้อมูล เครื่องเล่นเกม ซูเปอร์คอมพิวเตอร์ทางวิทยาศาสตร์ โทรศัพท์มือถือ และอุปกรณ์ฝังตัว เนื่องจากเป็นภาษาที่ใช้งานได้หลายแพลตฟอร์มและเน้นเครือข่ายเป็นหลัก Java ยังคงเป็นหนึ่งในภาษาโปรแกรมที่ได้รับการยอมรับอย่างกว้างขวางที่สุดในอุตสาหกรรม และเป็นที่นิยมขององค์กรส่วนใหญ่สำหรับการสร้างโครงการที่มีความสำคัญต่อภารกิจหลัก
เป็นสิ่งที่ Java แพลตฟอร์ม?
การขอ Java แพลตฟอร์ม เป็นชุดโปรแกรมที่ช่วยให้นักพัฒนาสร้างและใช้งานได้ Java ช่วยให้ใช้งานแอปพลิเคชันได้อย่างมีประสิทธิภาพ มันรวมเอาเอ็นจิ้นการประมวลผล คอมไพเลอร์ และชุดไลบรารีเข้าไว้ด้วยกัน พร้อมกับข้อกำหนดที่กำหนดวิธีการทำงานร่วมกันของส่วนประกอบเหล่านั้น เจมส์ กอสลิง เป็นผู้พัฒนา Java แพลตฟอร์มที่ Sun Microsystems และ Oracle บริษัทได้เข้าซื้อกิจการดังกล่าวผ่านการเข้าซื้อ Sun ในปี 2009
วิดีโอนี้แนะนำ Java เวที และอธิบายว่าทำไม Java เป็นทั้งแพลตฟอร์มและภาษาโปรแกรม:
คลิก Good Farm Animal Welfare Awards หากไม่สามารถเข้าถึงวิดีโอได้
ความหมายของ Java ใช้สำหรับ?
ต่อไปนี้คือตัวอย่างการประยุกต์ใช้งานจริงที่สำคัญที่สุดบางส่วนของ Java:
- เดเวโลping Android ปพลิเคชัน
- พัฒนาซอฟต์แวร์ระดับองค์กรสำหรับองค์กรขนาดใหญ่
- ขับเคลื่อนอุปกรณ์พกพาหลากหลายประเภท Java การใช้งาน
- ใช้งานโปรแกรมคำนวณทางวิทยาศาสตร์
- ขับเคลื่อนกระบวนการวิเคราะห์ข้อมูลขนาดใหญ่
- การเขียนโปรแกรมสำหรับอุปกรณ์ฮาร์ดแวร์ฝังตัว
- เทคโนโลยีฝั่งเซิร์ฟเวอร์ เช่น Apache, JBoss, GlassFish และ Tomcat
ประวัติความเป็นมาของ Java ภาษาโปรแกรม
ต่อไปนี้คือเหตุการณ์สำคัญทางประวัติศาสตร์ของ... Java ภาษา:
- การขอ Java ภาษาเดิมเรียกว่า OAK
- เดิมทีมันถูกพัฒนาขึ้นเพื่อใช้กับอุปกรณ์พกพาและกล่องรับสัญญาณ ซึ่ง OAK นั้นล้มเหลวในเชิงพาณิชย์
- ในปี 1995 ซุนได้เปลี่ยนชื่อภาษาเป็น “Javaและปรับเปลี่ยนกลยุทธ์ใหม่เพื่อใช้ประโยชน์จากเครือข่ายอินเทอร์เน็ตทั่วโลกที่เติบโตอย่างรวดเร็ว
- ใน 2009, Oracle Corporation เข้าซื้อ Sun Microsystems และเป็นเจ้าของสินทรัพย์ซอฟต์แวร์หลักของ Sun สามรายการ: Java, MySQLและ Solaris.
Java รุ่น
ต่อไปนี้เป็นประวัติโดยย่อของ Java เวอร์ชันและวันที่วางจำหน่าย อัปเดตจนถึงเวอร์ชันสนับสนุนระยะยาวล่าสุด:
| Java เวอร์ชั่น | วันที่ออกข่าว |
|---|---|
| JDK อัลฟ่าและเบต้า | 1995 |
| JDK1.0 | 23 ม.ค. 1996 |
| JDK1.1 | 19th กุมภาพันธ์ 1997 |
| J2SE 1.2 | 8th Dec 1998 |
| J2SE 1.3 | 8 2000th พฤษภาคม |
| J2SE 1.4 | 6th กุมภาพันธ์ 2002 |
| J2SE 5.0 | 30th กันยายน 2004 |
| Java SE 6 | 11th Dec 2006 |
| Java SE 7 | 28th กรกฎาคม 2011 |
| Java SE 8 (LTS) | 18th Mar 2014 |
| Java SE 9 | 21st Sep 2017 |
| Java SE 10 | 20th Mar 2018 |
| Java SE 11 (LTS) | 25th กันยายน 2018 |
| Java SE 12 | 19th Mar 2019 |
| Java SE 13 | 17th กันยายน 2019 |
| Java SE 14 | 17th Mar 2020 |
| Java SE 15 | 15th กันยายน 2020 |
| Java SE 16 | 16th Mar 2021 |
| Java SE 17 (LTS) | 14th กันยายน 2021 |
| Java SE 18 | 22 มี.ค. 2022 |
| Java SE 19 | 20th กันยายน 2022 |
| Java SE 20 | 21st Mar 2023 |
| Java SE 21 (LTS) | 19th กันยายน 2023 |
| Java SE 22 | 19th Mar 2024 |
| Java SE 23 | 17th กันยายน 2024 |
| Java SE 24 | 18th Mar 2025 |
| Java SE 25 (LTS) | 16th กันยายน 2025 |
Java คุณสมบัติ
นี่คือบางส่วนที่สำคัญที่สุด Java คุณสมบัติที่ทำให้มันยังคงได้รับความนิยมมาเกือบสามทศวรรษ:
- เป็นหนึ่งในภาษาการเขียนโปรแกรมเชิงวัตถุที่เรียนรู้ได้ง่ายที่สุด
- “เขียนครั้งเดียว รันได้ทุกที่” — โค้ดที่คอมไพล์บนเครื่องหนึ่ง สามารถทำงานได้บนแพลตฟอร์มคอมพิวเตอร์เกือบทุกชนิด
- Java เป็นอิสระจากแพลตฟอร์มเนื่องจากใช้โมเดลการประมวลผลแบบไบต์โค้ด
- ได้รับการออกแบบตั้งแต่เริ่มต้นเพื่อรองรับแอปพลิเคชันเชิงวัตถุโดยเฉพาะ
- เป็นภาษาโปรแกรมแบบมัลติเธรดที่มีการจัดการหน่วยความจำอัตโนมัติ (การเก็บขยะ)
- มันถูกสร้างขึ้นสำหรับสภาพแวดล้อมแบบกระจายศูนย์ของอินเทอร์เน็ต
- มันช่วยอำนวยความสะดวกในการประมวลผลแบบกระจายเนื่องจากการออกแบบที่เน้นเครือข่ายเป็นหลัก
ส่วนประกอบของ Java ภาษาโปรแกรม
A Java โปรแกรมเมอร์เขียนโค้ดในภาษาที่มนุษย์อ่านได้ เรียกว่า ภาษาโปรแกรม รหัสแหล่งที่มาซีพียูไม่เข้าใจซอร์สโค้ดโดยตรง — ซีพียูประมวลผลเฉพาะโค้ดเครื่องเท่านั้น และโค้ดเครื่องนั้นแตกต่างกันไปตามตระกูลซีพียู เพื่อเชื่อมช่องว่างนี้... Java แพลตฟอร์มจะแปลงซอร์สโค้ดให้เป็นรูปแบบตัวกลางที่พกพาได้ กระบวนการทั้งหมดนี้เกิดขึ้นภายในส่วนประกอบหลักสามส่วน ได้แก่ JDK, JVM และ JRE
Java ชุดพัฒนา (JDK)
JDK คือสภาพแวดล้อมการพัฒนาซอฟต์แวร์ที่ใช้ในการสร้างแอปเพล็ตและ Java การใช้งาน JDK แบบเต็มคือ Java ชุดพัฒนา. Java นักพัฒนาสามารถใช้งานได้ Windows, macOS, Solarisและลินุกซ์ JDK ช่วยให้พวกเขาสามารถเขียนโค้ดและรันโปรแกรมได้ Java โปรแกรม สามารถติดตั้ง JDK มากกว่าหนึ่งเวอร์ชันบนคอมพิวเตอร์เครื่องเดียวกันได้
ทำไมต้องใช้ JDK?
- JDK ประกอบด้วยเครื่องมือที่จำเป็นสำหรับการเขียนโปรแกรม Java โปรแกรมและ JRE สำหรับเรียกใช้โปรแกรมเหล่านั้น
- ประกอบด้วยคอมไพเลอร์ (
javac) Java โปรแกรมเรียกใช้งานแอปพลิเคชัน, โปรแกรมดูแอปเพล็ต และยูทิลิตี้ที่คล้ายกัน - คอมไพเลอร์จะแปลงโค้ดที่เขียนด้วยภาษาต่างๆ Java แปลงเป็นไบต์โค้ด
- การขอ Java ตัวเรียกใช้งานแอปพลิเคชันจะเปิด JRE โหลดคลาสที่จำเป็น และดำเนินการตามวิธีการหลัก
Java เครื่องเสมือน (JVM)
การขอ Java เครื่องเสมือน (JVM) เป็นกลไกที่ให้สภาพแวดล้อมการทำงานเพื่อขับเคลื่อน Java โค้ดหรือแอปพลิเคชัน มันแปลง Java แปลงไบต์โค้ดเป็นภาษาเครื่อง JVM เป็นส่วนหนึ่งของกระบวนการนี้ Java สภาพแวดล้อมการทำงาน (Runtime Environment หรือ JRE) ในภาษาโปรแกรมอื่นๆ คอมไพเลอร์จะสร้างรหัสเครื่องสำหรับระบบใดระบบหนึ่ง แต่ในภาษาโปรแกรมอื่นๆ นั้น... Java คอมไพเลอร์สร้างโค้ดสำหรับเครื่องเสมือนที่เรียกว่า Java เครื่องเสมือน
ทำไมต้องเจวีเอ็ม?
- JVM จัดเตรียมวิธีดำเนินการที่ไม่ขึ้นกับแพลตฟอร์ม Java รหัสแหล่งที่มา.
- มีไลบรารี เครื่องมือ และเฟรมเวิร์กมากมายให้ใช้งานได้ทันที
- เมื่อคุณคอมไพล์เสร็จแล้ว Java โปรแกรมนี้สามารถใช้งานได้บนทุกแพลตฟอร์ม ซึ่งช่วยประหยัดเวลาได้อย่างมาก
- JVM มาพร้อมกับคอมไพเลอร์ JIT (Just-In-Time) ที่แปลงไบต์โค้ดเป็นภาษาเครื่องระดับต่ำในระหว่างการทำงาน ซึ่งมักทำให้ทำงานได้เร็วกว่าแอปพลิเคชันที่ใช้การตีความ
Java สภาพแวดล้อมรันไทม์ (JRE)
JRE คือซอฟต์แวร์ที่ออกแบบมาเพื่อใช้งานกับซอฟต์แวร์อื่นๆ ประกอบด้วยไลบรารีคลาส คลาสโหลดเดอร์ และ JVM พูดง่ายๆ ก็คือ ถ้าคุณต้องการแค่ใช้งานไลบรารีคลาส ก็แค่เรียกใช้ JVM เท่านั้น Java คุณต้องการ JRE สำหรับการเขียนโปรแกรม (ไม่ใช่การพัฒนาโปรแกรมเอง) แทนที่จะใช้ JDK เวอร์ชันเต็ม
เหตุใดจึงต้องใช้ JRE?
- JRE ประกอบด้วยไลบรารีคลาส, JVM และไฟล์สนับสนุนอื่นๆ แต่ไม่ได้รวมเครื่องมือสำหรับนักพัฒนา เช่น ดีบักเกอร์หรือคอมไพเลอร์ไว้ด้วย
- มันใช้คลาสแพ็กเกจที่สำคัญหลายอย่าง รวมถึง
math,swing,util,lang,awtและไลบรารีรันไทม์ - หากต้องวิ่ง. Java ไม่ว่าจะเป็นแอปเพล็ตหรือแอปพลิเคชัน ก็ต้องติดตั้ง JRE ไว้ในระบบของคุณก่อน
ประเภทต่างๆของ Java แพลตฟอร์ม
มีสี่ประเภทที่แตกต่างกัน Java แพลตฟอร์มภาษาโปรแกรมแต่ละแพลตฟอร์มได้รับการปรับแต่งให้เหมาะสมกับกลุ่มเป้าหมายการใช้งานที่แตกต่างกัน:
1. Java แพลตฟอร์ม รุ่นมาตรฐาน (Java เส): Java API ของ SE นำเสนอ Java ฟังก์ชันหลักของภาษาโปรแกรม มันกำหนดทุกอย่างตั้งแต่ชนิดข้อมูลพื้นฐานและอ็อบเจ็กต์ ไปจนถึงคลาสระดับสูงที่ใช้สำหรับการเชื่อมต่อเครือข่าย ความปลอดภัย การเข้าถึงฐานข้อมูล การพัฒนาส่วนติดต่อผู้ใช้แบบกราฟิก (GUI) และการแยกวิเคราะห์ XML
2. Java แพลตฟอร์ม รุ่นองค์กร (จาการ์ตา EE หรือชื่อเดิม) Java อีอี): แพลตฟอร์ม Jakarta EE นำเสนอ API และสภาพแวดล้อมรันไทม์สำหรับนักพัฒนาping และใช้งานแอปพลิเคชันเครือข่ายที่มีความสามารถในการปรับขนาดสูง ขนาดใหญ่ หลายระดับ มีความน่าเชื่อถือ และปลอดภัย Oracle โอนย้ายแพลตฟอร์มไปยัง Eclipse Foundation ในปี 2017 ซึ่งได้เปลี่ยนชื่อเป็น Jakarta EE
3. Java แพลตฟอร์ม รุ่นไมโคร (Java ฉัน): การขอ Java แพลตฟอร์ม ME นำเสนอ API และเครื่องเสมือนขนาดเล็กสำหรับการใช้งาน Java นำไปประยุกต์ใช้กับอุปกรณ์ขนาดเล็ก เช่น โทรศัพท์มือถือแบบธรรมดา และตัวควบคุมแบบฝังตัว
4. Javaฟอเร็กซ์: JavaFX เป็นแพลตฟอร์มสำหรับการพัฒนาping แอปพลิเคชันอินเทอร์เน็ตที่มีประสิทธิภาพสูง ใช้ API ส่วนติดต่อผู้ใช้ที่มีน้ำหนักเบา โดยใช้กราฟิกและเอนจิ้นสื่อที่เร่งความเร็วด้วยฮาร์ดแวร์เพื่อช่วย Java ใช้ประโยชน์จากไคลเอ็นต์ที่มีประสิทธิภาพสูงกว่า รูปลักษณ์ที่ทันสมัย และ API ระดับสูงสำหรับการเชื่อมต่อกับแหล่งข้อมูลเครือข่าย
เพื่อให้เข้าใจ Java ในการเขียนโปรแกรม เราจำเป็นต้องทบทวนแนวคิดพื้นฐานบางประการเกี่ยวกับวิธีการที่โปรแกรมคอมพิวเตอร์ประมวลผลคำสั่งและดำเนินการต่างๆ
พีซีคืออะไร?
คอมพิวเตอร์เป็นอุปกรณ์อิเล็กทรอนิกส์ที่สามารถทำการคำนวณได้ ประกอบด้วยจอภาพ แป้นพิมพ์ เมาส์ และหน่วยความจำสำหรับจัดเก็บข้อมูล อย่างไรก็ตาม ส่วนประกอบที่สำคัญที่สุดคือ โปรเซสเซอร์ โปรเซสเซอร์ทำหน้าที่คิดวิเคราะห์ทั้งหมดของคอมพิวเตอร์ — แต่โปรเซสเซอร์คิดวิเคราะห์ได้อย่างไร? มันเข้าใจข้อความ รูปภาพ และวิดีโอได้อย่างไร?

ความหมายของ Assembly ภาษา?
คอมพิวเตอร์เป็นอุปกรณ์อิเล็กทรอนิกส์ ดังนั้นจึงเข้าใจเฉพาะสัญญาณอิเล็กทรอนิกส์ ซึ่งก็คือสัญญาณไบนารี สัญญาณอิเล็กทรอนิกส์ 5 โวลต์อาจแทนเลขไบนารี 1 ในขณะที่ 0 โวลต์อาจแทนเลขไบนารี 0 คอมพิวเตอร์ของคุณได้รับสัญญาณเหล่านี้อย่างต่อเนื่อง
สัญญาณทั้งแปดบิตนี้จะถูกจัดกลุ่มเข้าด้วยกันเพื่อตีความข้อความ ตัวเลข และสัญลักษณ์
ตัวอย่างเช่น สัญลักษณ์ # จะถูกระบุโดยคอมพิวเตอร์เป็น 10101010 ในทำนองเดียวกัน รูปแบบของฟังก์ชัน "บวก" จะถูกแทนด้วย 10000011
นี่เรียกว่าการประมวลผลแบบ 8 บิต โปรเซสเซอร์สมัยใหม่สามารถถอดรหัสคำสั่ง 64 บิตพร้อมกันได้ แล้วแนวคิดนี้เกี่ยวข้องกับอะไร Javaเรามาลองยกตัวอย่างกันดู
สมมติว่าคุณต้องการสั่งให้คอมพิวเตอร์บวกเลขสองจำนวน (1 + 2) ซึ่งแทนด้วยเลขฐานสอง (10000011) คุณจะสื่อสารคำสั่งนั้นกับคอมพิวเตอร์ได้อย่างไร? คุณใช้ภาษาแอสเซมบลีในการสั่งให้คอมพิวเตอร์ทำงาน
"Assembly ภาษาเป็นรูปแบบพื้นฐานที่สุดของภาษาการพัฒนาซอฟต์แวร์”
คุณออกคำสั่งในรูปแบบต่อไปนี้ โค้ดสำหรับการบวกเลขสองจำนวนในภาษาแอสเซมบลีจะมีลักษณะดังนี้:
- เก็บหมายเลข 1 ไว้ที่ตำแหน่งหน่วยความจำ A
- เก็บหมายเลข 2 ไว้ที่ตำแหน่งหน่วยความจำ B
- รวมเนื้อหาจากสถานที่ A และ B เข้าด้วยกัน
- เก็บผล.
ย้อนกลับไปในยุคปี 1950 เมื่อคอมพิวเตอร์มีขนาดใหญ่และกินพลังงานมาก คุณจะแปลงโค้ดแอสเซมบลีเป็นโค้ดเครื่องที่สอดคล้องกัน (1 และ 0) โดยใช้คำสั่ง mapping แผ่นกระดาษ จากนั้นรหัสจะถูกเจาะลงในการ์ดเครื่องและป้อนเข้าสู่คอมพิวเตอร์ คอมพิวเตอร์จะอ่านรหัสเหล่านี้และดำเนินการตามโปรแกรม นี่เป็นกระบวนการที่ยาวนาน จนกระทั่งเครื่องประกอบชิ้นส่วนเข้ามาเพื่อทำให้การแปลงเป็นไปโดยอัตโนมัติ
แอสเซมเบลอร์และคอมไพเลอร์คืออะไร?
ด้วยความก้าวหน้าทางเทคโนโลยี อุปกรณ์ I/O จึงถูกประดิษฐ์ขึ้น คุณสามารถพิมพ์โปรแกรมของคุณลงในพีซีโดยตรงโดยใช้ภาษาแอสเซมบลี ซึ่งจะแปลงโปรแกรมนั้นเป็นรหัสเครื่องที่สอดคล้องกัน (110001…) และส่งไปยังโปรเซสเซอร์ของคุณ กลับมาที่ตัวอย่าง 1 + 2 ของเรา ภาษาแอสเซมบลีจะแปลงรหัสแอสเซมบลีเป็นรหัสเครื่องเป็นเอาต์พุต
นอกเหนือจากการเขียนโค้ดภาษาแอสเซมบลีแล้ว คุณยังต้องเรียกใช้ฟังก์ชันที่ระบบปฏิบัติการจัดเตรียมไว้เพื่อแสดงผลลัพธ์ด้วย
ตัวประกอบโค้ดเพียงอย่างเดียวไม่เพียงพอ มันยังต้องการตัวคอมไพเลอร์เพื่อบีบอัดโค้ดต้นฉบับที่ยาวให้เป็นส่วนย่อยๆ ที่มีประสิทธิภาพมากขึ้น ด้วยภาษาการพัฒนาซอฟต์แวร์ระดับสูง โค้ดแอสเซมบลีทั้งหมดข้างต้นจะถูกย่อเหลือเพียงบรรทัดเดียว เช่น printf(“%d”, 1+2)คอมไพเลอร์จะแปลงของคุณ ภาษาซี แปลงโค้ดเป็นโค้ดแอสเซมบลี จากนั้นตัวประกอบแอสเซมบลีจะแปลงโค้ดแอสเซมบลีนั้นกลับเป็นโค้ดเครื่อง transmitเชื่อมโยงกับโปรเซสเซอร์ โปรเซสเซอร์ที่ใช้กันมากที่สุดในพีซีคือโปรเซสเซอร์ Intel
คอมไพเลอร์สมัยใหม่มักจะรวมแอสเซมเบลอร์ไว้ด้วย เพื่อให้สามารถแปลงโค้ดภาษาโปรแกรมระดับสูงไปเป็นโค้ดเครื่องได้โดยตรง
ทีนี้ สมมติว่า Windows ทำงานบนโปรเซสเซอร์ Intel — การรวมกันของระบบปฏิบัติการและโปรเซสเซอร์เรียกว่าแพลตฟอร์ม แพลตฟอร์มที่พบได้บ่อยที่สุดคือ Windows บน Intel หรือที่รู้จักกันในชื่อแพลตฟอร์ม Wintel แพลตฟอร์มยอดนิยมอื่นๆ ได้แก่ AMD ลินุกซ์พาวเวอร์พีซี และ macOS.
เมื่อมีการเปลี่ยนแปลงในโปรเซสเซอร์ คำสั่งประกอบก็จะเปลี่ยนไปด้วย ตัวอย่างเช่น:
- คำสั่ง "add" บน Intel อาจเรียกว่า ADDITION บน AMD
- หรือ “Math ADD” บน PowerPC
และเมื่อมีการเปลี่ยนแปลงระบบปฏิบัติการ ระดับและลักษณะของการเรียกใช้งานระดับระบบปฏิบัติการก็จะเปลี่ยนแปลงไปด้วย
ในฐานะนักพัฒนาซอฟต์แวร์ คุณต้องการให้ซอฟต์แวร์ของคุณทำงานได้บนทุกแพลตฟอร์มเพื่อเพิ่มการเข้าถึงให้มากที่สุด นั่นหมายความว่าคุณจะต้องซื้อคอมไพเลอร์แยกต่างหากเพื่อแปลงไฟล์ของคุณ printf แปลงคำสั่งเป็นโค้ดเครื่องดั้งเดิมสำหรับทุกเป้าหมาย
คอมไพเลอร์มีราคาแพง และมีความเสี่ยงที่จะเกิดปัญหาความเข้ากันได้กับระบบปฏิบัติการต่างๆ อยู่เสมอ การซื้อและติดตั้งคอมไพเลอร์แยกต่างหากสำหรับระบบปฏิบัติการและโปรเซสเซอร์แต่ละแบบนั้นไม่สามารถทำได้จริง แล้วทางเลือกอื่นคืออะไร? คำตอบคือ... Java ภาษา.
อย่างไร Java ใช้งานเครื่องเสมือนได้หรือไม่?
โดยใช้ Java เครื่องเสมือนปัญหานี้สามารถแก้ไขได้ แต่จะทำงานอย่างไรกับโปรเซสเซอร์และระบบปฏิบัติการที่แตกต่างกัน? เรามาดูกันทีละขั้นตอน
ขั้นตอน 1) โค้ดสำหรับแสดงผลการบวกของตัวเลขสองจำนวน — System.out.println(1+2) — ถูกบันทึกไว้เป็น .java ไฟล์
ขั้นตอน 2) การใช้ Java คอมไพเลอร์ (javac) รหัสจะถูกแปลงเป็นรหัสตัวกลางที่เรียกว่า รหัสไบต์ผลลัพธ์คือ .ระดับ ไฟล์
ขั้นตอน 3) ไบต์โค้ดนี้ไม่เป็นที่เข้าใจของแพลตฟอร์มทางกายภาพใดๆ มีเพียงแพลตฟอร์มเสมือนที่เรียกว่า... เท่านั้นที่เข้าใจไบต์โค้ดนี้ได้ Java เครื่องเสมือน.
ขั้นตอน 4) JVM ทำงานอยู่ในหน่วยความจำ RAM ของระบบปฏิบัติการ เมื่อ JVM ได้รับไบต์โค้ด มันจะระบุแพลตฟอร์มที่กำลังทำงานอยู่ และแปลงไบต์โค้ดนั้นให้เป็นโค้ดเครื่องจักรแบบเนทีฟแบบเรียลไทม์
ขณะที่คุณกำลังใช้งานคอมพิวเตอร์หรือท่องเว็บ เมื่อใดก็ตามที่คุณเห็น Java-ไอคอนที่เกี่ยวข้อง คุณมั่นใจได้ว่า JVM โหลดเข้าสู่ RAM ของคุณแล้ว อะไรทำให้ Java attracข้อดีคือโค้ดที่คอมไพล์แล้วสามารถทำงานได้ไม่เฉพาะบนแพลตฟอร์มพีซีทุกแพลตฟอร์มเท่านั้น แต่ยังสามารถทำงานได้บนโทรศัพท์มือถือและอุปกรณ์อิเล็กทรอนิกส์อื่นๆ ที่รองรับอีกด้วย Java.
"Java เป็นทั้งภาษาโปรแกรมและแพลตฟอร์ม”
อย่างไร Java แพลตฟอร์มอิสระ?
แตกต่างจากคอมไพเลอร์ภาษาซี Java คอมไพเลอร์ไม่ได้สร้างโค้ดปฏิบัติการดั้งเดิมสำหรับเครื่องใดเครื่องหนึ่ง แทน, Java สร้างรูปแบบตัวกลางเฉพาะที่เรียกว่า รหัสไบต์ไบต์โค้ดจะทำงานตามกฎที่กำหนดไว้ในข้อกำหนดของ JVM ซึ่งเป็นเหตุผลว่าทำไม Java เป็นภาษาที่ไม่ขึ้นกับแพลตฟอร์ม
ไบต์โค้ดสามารถเข้าใจได้โดย JVM ทุกตัวที่ติดตั้งอยู่บนระบบปฏิบัติการใดๆ ก็ตาม กล่าวโดยสรุปคือ Java ซอร์สโค้ดสามารถทำงานได้บนระบบปฏิบัติการสมัยใหม่ทุกระบบโดยไม่ต้องคอมไพล์ใหม่ ซึ่งเป็นพื้นฐานของ Javaคำมั่นสัญญาของพวกเขาที่ว่า “เขียนครั้งเดียว ใช้ได้ทุกที่”








