เพื่อน ๆ ที่เขียนโปรแกรมด้วย Java หลาย ๆ คนอาจจะยังไม่รู้จักว่า JVM นั้นมันคืออะไร... ทำงานอย่างไร...
.
วันนี้แอดจะมาสรุปวิธีการทำงานของ JVM ให้เพื่อน ๆ พอที่จะเห็นภาพกัน หาพร้อมแล้วไปอ่านกันนนน
.
🔹 JVM (Java Virtual Machine) - เป็นเอ็นจิ้นที่จัดเตรียมสภาพแวดล้อมเพื่อรันโค้ด Java ซึ่ง JVM มีหน้าที่รับผิดชอบในการแปลง Bytecode เป็นรหัสเฉพาะเครื่อง ซึ่งเจ้า JVM นี้จะสามารถติดตั้งได้บนทุก Platform ไม่ว่าจะเป็น Unix, Linux หรือ Windows
.
⚙️ วิธีการทำงานของ JVM แบ่งได้ดังนี้
🌟 Class Loader Subsystem
เป็นส่วนที่ใช้จัดการ Class Loader Subsystem โดยจะอ่านไฟล์ .class และสร้างเป็น Bytecode บันทึกไว้ใน Method Area จากนั้นจะสร้าง Object เพื่อเป็นตัวแทนไฟล์ไว้ใน Heap Memory
.
🌟 Runtime Data Area (JVM Memory)
ส่วนนี้จะเป็นการจัดสรรพื้นที่ของ Memory ให้เหมาะสม เพื่อนำไปใช้งานในแต่ละส่วน ได้แก่ Method Area , Heap Area, Stack Area, PC Register, Native Method Stack นั่นเอง
.
🌟 Execution Engine
เป็นส่วนที่ใช้ควบคุมกระบวนการทำงานต่าง ๆ ซึ่ง Bytecode ที่อยู่ใน Runtime Data Area จะถูกประมวลผลด้วย Execution Engine โดยจะอ่าน Bytecode และประมวลผลทีละบรรทัด
.
🌟 Native Method Interface
เป็น Interface ที่ใช้โต้ตอบกับ Native Method Library ทำให้ JVM สามารถเรียกใช้งาน C/C++ library ได้นั่นเอง
🌟 Native Method Library
เป็นที่รวบรวม Native Library ที่จำเป็นต่อการใช้งานใน Native Method Interface นั่นเอง
.
จบกันไปแล้วววว! หากใครมีอะไรเพิ่มเติม สามารถคอมเมนต์พูดคุยกันได้เลยน้าาา และหวังว่าจะเป็นประโยชน์กับเพื่อน ๆ นะคร้าบบบบ 🥰
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
同時也有1部Youtube影片,追蹤數超過7萬的網紅在地上滾的工程師 Nic,也在其Youtube影片中提到,硬核的知識也許不是每個工程師都能夠在職涯發展中完全運用到,但無論是本科系、轉職、自學成為工程師的朋友,都應該要知道,這些紮實的背景知識提早學習起來,在未來的日子裡,只有好沒有壞。 就透過本影片我的真實經驗分享,告訴你這些我在大學時期看似枯燥乏味的理論,其實就是程式設計內功,而日後沉睡已久的內功卻又...
c# stack, heap 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的最讚貼文
การเขียนโปรแกรมเชิงวัตถุ หรือ Object Oriented Programming (OOP)
ข้อมูลกับฟังก์ชั่น จะห่อรวมกันเป็นก้อนเดียวกัน เรียกว่า "encapsulation"
ซึ่งข้อมูลกับฟังก์ชั่น ที่เก็บรวมกันเป็นก้อนๆ จะเก็บไว้ในหน่วยความจำ
ก้อนดังกล่าวในหน่วยความจำจะเรียกว่า อ็อบเจ็กต์ (Object)
.
ภาษาเขียนโปรแกรมส่วนใหญ่จะเก็บอ็อบเจ็กต์
ไว้ในหน่วยความจำที่เรียกว่า heap memory
แยกต่างหาจาก stack memory
แต่บางภาษาเช่น C++ เก็บอ็อบเจ็กต์ใน Stack memory ได้ด้วย
.
ส่วนข้อมูลที่อยู่ในก้อนอ็อบเจ็กต์
ก็จะจำไว้ ไม่ได้หายไปไหน
แก้ไขได้เปลี่ยนข้อมูล
จึงอาจเรียกข้อมูลว่าเป็น state (ของอ็อบเจ็กต์)
ถ้าก้อนอ็อบเจ็กต์โดยเคลียร์ทิ้งจากหน่วยความจำ
ข้อมูลภายในก็จะหายไปเช่นกัน
.
ใน JavaScript
มันจะมีท่าพิเศษ ใช้ inner function
ซึ่งมีความสามารถจำข้อมูลของแปรของฟังก์ชั่นข้างนอก
ที่มาห่อฟังก์ชั่นข้างในได้
สามารถจำตัวแปรใน stack memory ของฟังก์ชั่นข้างนอกที่มาห่อ
จำได้ว่ามันเก็บอะไร
สามารถแก้ไข เปลี่ยนข้อมูลได้เช่นกัน
เลยสามารถมาเขียนเลียนแบบเขียนโปรแกรมเชิงวัตถุได้เล่นๆ
.
.
++++ขอประชาสัมพันธ์++++++
ใครสนใจศึกษาจาวาสคริปต์ (JavaScript)
คนละภาษากับ Java
เผื่ออนาคตจะเอาไปต่อยอด
พัฒนาเว็บไซต์
ก็อุดหนุนหนังสือเล่มนี้ได้ ที่ซีเอ็ด
https://www.se-ed.com/product-search/จตุรพัชร์-พัฒนทรงศิวิไล.aspx?keyword=จตุรพัชร์+พัฒนทรงศิวิไล
.
✍เขียนโดย โปรแกรมเมอร์ไทย thai programmer
.
.
c# stack, heap 在 軟體開發學習資訊分享 Facebook 的最佳解答
文章標題 - 5個 C/C++ 開發者在編寫 Go 程式碼所會犯的錯誤
如果你已經熟悉 C/C++ 程式開發也開始想要學習近年來頗熱門的 Go 程式設計語言,可以參考這篇文章列出幾個要注意的問題
1. Heap vs. Stack
2. Memory & Go routine leaks
3. Error handling
>Go 程式設計相關課程可參考 http://bit.ly/2MdmolH
https://about.sourcegraph.com/…/gophercon-2018-5-mistakes-…/
c# stack, heap 在 在地上滾的工程師 Nic Youtube 的最讚貼文
硬核的知識也許不是每個工程師都能夠在職涯發展中完全運用到,但無論是本科系、轉職、自學成為工程師的朋友,都應該要知道,這些紮實的背景知識提早學習起來,在未來的日子裡,只有好沒有壞。
就透過本影片我的真實經驗分享,告訴你這些我在大學時期看似枯燥乏味的理論,其實就是程式設計內功,而日後沉睡已久的內功卻又恰巧的在職涯旅途中碰上用處。
章節:
00:00 學這些有用嗎
00:52 我與速成班的距離
04:45 業務增長後的影響
06:36 基本功知識科普
喜歡影片的話!可以幫忙點個喜歡以及分享、訂閱唷!😘
━━━━━━━━━━━━━━━━
⭐ 蝦皮賣場: https://shopee.tw/bboyceo
⭐ instagram (生活日常): https://www.instagram.com/niclin_tw/
⭐ Facebook (資訊分享): https://www.facebook.com/niclin.dev
⭐ Blog (技術筆記): https://blog.niclin.tw
⭐ Linkedin (個人履歷): https://www.linkedin.com/in/nic-lin
⭐ Github: https://github.com/niclin
⭐ Podcast: https://anchor.fm/niclin
━━━━━━━━━━━━━━━━
🌟 任何問題或合作邀約信箱: niclin0226@gmail.com
#資料結構 #演算法 #計算機概論 #前端 #後端 #工程師
