Byte Code in Java

 位元碼(Byte Code)位元碼可以定義為編譯器在編譯源代碼(Java 程式)後生成的中間碼。位元碼是如何生成的?Compiler(編譯器)將源代碼或 Java 程式轉換為位元碼(或機器碼),然後解譯器在系統上執行位元碼。解譯器也可以稱為 Java 虛擬機(JVM)。位元碼是編譯器(生成位元碼)和解譯器(執行位元碼)之間的共同部分。例如假設您正在撰寫您的第一個 Java 程式。/*package whatever */import java.io.*;  class GFG {    public static void main (String[]...

Java stack, heap

在 Java 中,Stack(堆疊)和 Heap(堆)是兩個不同的記憶體區域,用於存儲程式執行時的不同類型資料。Stack(堆疊):1. Stack 是一個有限的區域,用於存儲方法的執行上下文和本地變數。2. 每個執行緒在運行時都有自己的 Stack。3. Stack 中的資料是按照 Last-In-First-Out(後進先出)的順序操作的。4. 堆疊的記憶體管理由 JVM 自動處理,不需要開發人員手動釋放記憶體。5. 在方法調用時,方法的參數、局部變數和方法返回地址等資訊都存儲在 Stack 中。6. 方法的堆疊框架(Stack Frame)被創建和銷毀,以支援方法的執行。ps:方法返回地址是指當一個方法執行完畢後,程式需要知道要返回到哪個位置繼續執行。在方法調用期間,當遇到一個方法呼叫,程式會將該方法的返回地址(也稱為返回位址或返回目標)存儲在堆疊中。例如以下程式碼public class...

封裝,繼承,多型

 當談到物件導向程式設計中的封裝、繼承和多型時,可以使用現實生活中的動物類別作為例子來解釋。1. 封裝(Encapsulation):封裝是指將資料(屬性)和方法(行為)封裝在一個物件中,只對外部提供必要的接口以便存取和使用。舉例來說,假設我們有一個動物類別,稱為Animal。Animal類別中包含屬性(例如名字、年齡)和方法(例如發出聲音)。這些屬性和方法被封裝在Animal物件中,只有通過公開的介面(例如方法)才能存取和操作。public class Animal { private String name; private int age; public Animal(String name, int age) { this.name = name; this.age = age; } public...