Java是一種面向對象編程語言,在Java中對象和變量都是程序的重要組成部分。那么,這些對象和變量在程序中的哪里存在呢?
首先,我們來看Java中的對象。對象是Java中的一種特殊的數據類型,它是由類或接口定義的,它們在程序執行時動態地分配在Java虛擬機的堆內存中。堆內存是Java虛擬機管理的最大的一塊內存區域,用于存放在運行時創建的所有對象。因此,Java對象在程序中存在于堆內存中。
public class Person{ String name; int age; } Person p=new Person();
如上所示的代碼定義了一個Person類,在代碼中調用了無參構造函數創建了一個Person對象p。這個對象在程序運行時會被動態地分配在堆內存中。同時,我們也可以為對象分配內存:
Person p=new Person(); p.name="Tom"; p.age=20;
這時,Tom這個字符串和20這個整數都會被動態地分配在堆內存中,同時也在堆內存中為person對象的name和age變量分配了空間。
接下來,我們來看Java中的變量。變量是存儲數據的容器,Java中的變量可以分為局部變量和成員變量兩種。局部變量在方法中定義,成員變量在類中定義。
public class Circle{ //成員變量 double radius; //局部變量 double getPerimeter(){ double perimeter=2*Math.PI*radius; return perimeter; } }
如上所示的代碼定義了一個Circle類,在定義中定義了成員變量radius和getPerimeter方法中的局部變量perimeter。在程序執行時,局部變量perimeter會被分配在線程棧內存中,而成員變量radius則會被分配在堆內存中,在對其初始化后,其指針會被存儲在堆內存中。
綜上所述,Java中的對象和變量是存在于堆內存和線程棧內存中的。