ส่วนประกอบของ Java Architecture คืออะไร?



Java Architecture รวมกระบวนการรวบรวมและตีความ ในบทความนี้ฉันจะบอกคุณเกี่ยวกับส่วนประกอบต่างๆของ Java Architecture

Java Architecture รวมกระบวนการรวบรวมและตีความ จะอธิบายกระบวนการต่างๆที่เกี่ยวข้องในขณะที่กำหนดก . ก่อนที่จะเริ่มหัวข้อให้ฉันแนะนำคุณเกี่ยวกับวาระการประชุมสำหรับบทความนี้

คำแนะนำที่กล่าวถึงด้านล่างนี้จะเป็นหัวข้อสนทนาของเรา:





ให้เราเริ่มต้นด้วยการทำความเข้าใจสถาปัตยกรรม Java คืออะไร?



Java Architecture คืออะไร?

ที่นี่ฉันจะอธิบายสถาปัตยกรรมจาวาในขั้นตอนง่ายๆ

  • ใน Java มีกระบวนการรวบรวมและตีความ
  • รหัสที่เขียนใน ถูกแปลงเป็นรหัสไบต์ซึ่งทำโดย Java Compiler
  • รหัสไบต์จากนั้นจะถูกแปลงเป็นรหัสเครื่องโดย JVM
  • รหัสเครื่องถูกเรียกใช้งานโดยตรงจากเครื่อง

แผนภาพนี้แสดงให้เห็นถึงการทำงานภายในของโค้ด Java หรือ Java Architecture!



JVM - สถาปัตยกรรม Java - Edurekaตอนนี้ให้เราขุดลึกลงไปอีกเล็กน้อยในสถาปัตยกรรม java และพูดคุยเกี่ยวกับสิ่งต่างๆ .

ส่วนประกอบของสถาปัตยกรรม Java

องค์ประกอบหลักของภาษา Java มีสามส่วน: JVM, JRE และ JDK .

Java Virtual Machine, Java Runtime Environment และ Java Development Kit ตามลำดับ

ให้ฉันอธิบายแต่ละคนทีละคน:

เครื่องเสมือน Java:

เคยได้ยินเกี่ยวกับ WORA ไหม? (เขียนครั้งเดียว Run Anywhere) แอปพลิเคชัน Java เรียกว่า WORA เนื่องจากความสามารถในการรันโค้ดบนแพลตฟอร์มใดก็ได้ สิ่งนี้ทำเพราะ JVM เท่านั้น JVM เป็นคอมโพเนนต์แพลตฟอร์ม Java ที่จัดเตรียมสภาพแวดล้อมสำหรับการรันโปรแกรม Java JVM ตีความ bytecode เป็นรหัสเครื่องซึ่งเรียกใช้งานในเครื่องที่โปรแกรม Java ทำงาน

ดังนั้นโดยสรุป JVM ทำหน้าที่ดังต่อไปนี้:

  • โหลดรหัส
  • ตรวจสอบรหัส
  • รันโค้ด
  • จัดเตรียมสภาพแวดล้อมรันไทม์

ตอนนี้ให้ฉันแสดงสถาปัตยกรรม JVM นี่ไป!

คำอธิบาย:

คลาส Loader : Class loader เป็นระบบย่อยของ JVM ใช้เพื่อโหลดไฟล์คลาส เมื่อใดก็ตามที่เรารันโปรแกรม java class loader จะโหลดขึ้นมาก่อน

พิมพ์สองครั้งเพื่อ int java

พื้นที่วิธีการเรียน : เป็นหนึ่งใน Data Area ใน JVM ซึ่งจะจัดเก็บข้อมูล Class Static Variables, Static Blocks, Static Methods, Instance Methods จะถูกเก็บไว้ในพื้นที่นี้

กอง : ฮีปถูกสร้างขึ้นเมื่อ JVM เริ่มทำงาน อาจเพิ่มหรือลดขนาดในขณะที่แอปพลิเคชันทำงาน

ซ้อนกัน : JVM stack เรียกว่า thread stack เป็นพื้นที่ข้อมูลในหน่วยความจำ JVM ซึ่งสร้างขึ้นสำหรับเธรดการดำเนินการเดียว สแต็ก JVM ของเธรดถูกใช้โดยเธรดเพื่อจัดเก็บองค์ประกอบต่างๆเช่นตัวแปรโลคัลผลลัพธ์บางส่วนและข้อมูลสำหรับวิธีการเรียกและส่งคืน

สแต็คดั้งเดิม : ใช้วิธีดั้งเดิมทั้งหมดที่ใช้ในแอปพลิเคชันของคุณ

Execution Engine:

  • คอมไพเลอร์ JIT
  • คนเก็บขยะ

คอมไพเลอร์ JIT: คอมไพเลอร์ Just-In-Time (JIT) เป็นส่วนหนึ่งของสภาพแวดล้อมรันไทม์ ช่วยในการปรับปรุงประสิทธิภาพของแอปพลิเคชัน Java โดยการรวบรวม bytecodes เป็นรหัสเครื่องในขณะทำงาน คอมไพเลอร์ JIT ถูกเปิดใช้งานโดยค่าเริ่มต้น เมื่อคอมไพล์เมธอด JVM จะเรียกโค้ดที่คอมไพล์ของเมธอดนั้นโดยตรง คอมไพเลอร์ JIT รวบรวม bytecode ของวิธีการนั้นไว้ในรหัสเครื่องโดยรวบรวม 'ทันเวลา' เพื่อเรียกใช้

คนเก็บขยะ: เป็นชื่อที่อธิบายว่า คนเก็บขยะ หมายถึงการรวบรวมวัสดุที่ไม่ใช้แล้ว ใน JVM งานนี้ทำโดย Garbage collection ติดตามวัตถุแต่ละชิ้นที่มีอยู่ในพื้นที่ฮีป JVM และลบวัตถุที่ไม่ต้องการออกไป
พนักงานเก็บขยะทำงานในสองขั้นตอนง่ายๆที่เรียกว่า Mark and Sweep:

  • เครื่องหมาย - เป็นที่เก็บขยะระบุหน่วยความจำที่ใช้อยู่และไม่ได้ใช้งาน
  • กวาด - จะลบวัตถุที่ระบุในช่วง 'เครื่องหมาย'

Java Runtime Environment:

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

ชุดพัฒนา Java:

Java Development Kit (JDK) เป็นสภาพแวดล้อมการพัฒนาซอฟต์แวร์ที่ใช้ในการพัฒนาแอปพลิเคชัน Java และแอพเพล็ต ประกอบด้วย JRE และเครื่องมือในการพัฒนาหลายตัวล่าม / ตัวโหลด (java) คอมไพเลอร์ (javac) ตัวเก็บถาวร (jar) ตัวสร้างเอกสาร (javadoc) พร้อมกับเครื่องมืออื่น

พื้นที่สีน้ำเงินที่แสดงในแผนภาพคือ JDK ตอนนี้ให้ฉันอธิบายรายละเอียดเกี่ยวกับเครื่องมือการพัฒนาให้คุณทุกคน

วิธีใช้ microsoft visual studio

java : มันเป็นตัวเรียกใช้งานสำหรับแอปพลิเคชัน java ทั้งหมด
javac : สอดคล้องกับภาษาโปรแกรม Java
javadoc : เป็นตัวสร้างเอกสาร API
โถ : สร้างและจัดการไฟล์ JAR ทั้งหมด

ก้าวไปข้างหน้าด้วยสถาปัตยกรรม Java ให้เราเข้าใจว่าแพลตฟอร์ม Java เป็นอิสระอย่างไร?

แพลตฟอร์ม Java เป็นอิสระอย่างไร

เมื่อใดที่ภาษาโปรแกรมใด ๆ เรียกว่าไม่ขึ้นกับแพลตฟอร์ม ก็ต่อเมื่อมันสามารถทำงานบนระบบปฏิบัติการที่มีอยู่ทั้งหมดเกี่ยวกับการพัฒนาและการคอมไพล์
ตอนนี้ Java ไม่ขึ้นกับแพลตฟอร์มเพียงเพราะ bytecode ให้ฉันบอกคุณว่า bytecode คืออะไร? พูดง่ายๆคือ
Bytecode คือรหัสของ JVM ที่เครื่องเข้าใจได้
การเรียกใช้ Bytecode ใน Java พิสูจน์ได้ว่าเป็นภาษาที่ไม่ขึ้นกับแพลตฟอร์ม
ที่นี่ฉันจะแสดงขั้นตอนที่เกี่ยวข้องกับกระบวนการทำงานของ java bytecode

ด้านล่างนี้คือคำอธิบายของขั้นตอนที่เกี่ยวข้อง:

sample.java → javac (คลาสตัวอย่าง) → JVM (sample.obj) →ผลลัพธ์สุดท้าย

ซอร์สโค้ดแรกถูกใช้โดยคอมไพเลอร์ java และถูกแปลงเป็นไฟล์. class รหัสไฟล์คลาสอยู่ในรูปแบบรหัสไบต์และไฟล์คลาสนั้นถูกใช้โดย JVM เพื่อแปลงเป็นไฟล์อ็อบเจ็กต์ หลังจากนั้นคุณจะเห็นผลลัพธ์สุดท้ายบนหน้าจอของคุณ

ก้าวไปข้างหน้าในบทความสถาปัตยกรรม Java ให้เราเข้าใจแนวคิดของ JIT ใน Java .

JIT ใน Java

คอมไพเลอร์ Just In Time ที่รู้จักกันทั่วไปในชื่อ JIT มีหน้าที่โดยทั่วไปในการเพิ่มประสิทธิภาพของแอปพลิเคชันที่ใช้ java ในขณะทำงาน ประสิทธิภาพของแอปพลิเคชันขึ้นอยู่กับคอมไพเลอร์
นี่คือแผนภาพง่ายๆที่แสดงให้คุณเห็นกระบวนการภายในที่เกิดขึ้น

JIT Compiler - สถาปัตยกรรม Java - Edureka

คอมไพเลอร์ JIT รวบรวมรหัสไบต์ของเมธอดเป็นรหัสเครื่องคอมไพล์ 'Just In Time' เพื่อเรียกใช้ เมื่อคอมไพล์เมธอด JVM จะเรียกโค้ดที่คอมไพล์ของเมธอดนั้นโดยตรง
มาเจาะลึกกัน:
รหัสไบต์จะต้องถูกตีความหรือรวบรวมตามคำแนะนำของเครื่องที่เหมาะสมขึ้นอยู่กับชุดคำสั่งที่ให้มา นอกจากนี้สิ่งเหล่านี้สามารถดำเนินการได้โดยตรงหากสถาปัตยกรรมคำสั่งเป็นแบบไบต์โค้ด การตีความรหัสไบต์มีผลต่อความเร็วในการดำเนินการ
เพื่อปรับปรุงประสิทธิภาพคอมไพเลอร์ JIT จะโต้ตอบกับ Java Virtual Machine (JVM) ในขณะรันและรวบรวมลำดับไบต์โค้ดที่เหมาะสมลงในโค้ดเครื่องดั้งเดิม (ดังแสดงในแผนภาพ) ในขณะที่ใช้คอมไพเลอร์ JIT ฮาร์ดแวร์จะสามารถรันโค้ดเนทีฟได้เมื่อเทียบกับการที่ JVM ตีความลำดับไบต์โค้ดเดียวกันซ้ำ ๆ และเกิดค่าใช้จ่ายสำหรับกระบวนการแปล

ด้วยเหตุนี้ฉันจึงมาถึงตอนท้ายของบทความเกี่ยวกับสถาปัตยกรรม Java นี้ ฉันหวังว่าหัวข้อที่กล่าวถึงข้างต้นจะช่วยเพิ่มมูลค่าให้กับความรู้ Java ของคุณ คอยติดตามบทความเพิ่มเติม!

เมื่อคุณเข้าใจพื้นฐานของ Java แล้วให้ตรวจสอบไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก หลักสูตรการฝึกอบรมและการรับรอง Java J2EE และ SOA ของ Edureka ออกแบบมาสำหรับนักเรียนและผู้เชี่ยวชาญที่ต้องการเป็น Java Developer หลักสูตรนี้ออกแบบมาเพื่อให้คุณเริ่มต้นการเขียนโปรแกรม Java และฝึกอบรมแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับเฟรมเวิร์ก Java ต่างๆเช่น Hibernate & Spring

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อก 'สถาปัตยกรรม Java และส่วนประกอบ' และเราจะติดต่อกลับโดยเร็วที่สุด