Какой объект создан в какой части памяти?
Вопрос
public class Order
{
static Customer cust = new Customer();
string sEmpty = "";
public static void main(String args[])
{
int iTotal = 10;
string sProductName = "Salt";
Ship shp = new Ship();
}
}
В приведенном выше коде какой объект и ссылка создаются в какой части памяти? (Я имею в виду кучу и стек)
(источник: c-sharpcorner.com )
Решение
Поскольку вы пометили свой вопрос Java, я предполагаю, что вы имели в виду Java. Прямо изо рта лошади:
Виртуальная машина Java имеет кучу, которая является общей для всей Java потоки виртуальной машины. Куча есть область данных времени выполнения, из которой память для всех экземпляров классов и массивы выделены.
Вот ссылка на предыдущий вопрос SO это подробно рассматривается в этом вопросе (и является предметом, не зависящим от языка).
Вот ссылка на статью из угла C # детализация вопроса в C #.
Другие советы
Заказ и клиент находятся в куче. Хотя Customer может быть структурой, он является составным членом ссылочного типа (например, класса). Р>
Все строки являются ссылочными типами и создаются в куче.
Я не уверен насчет класса Ship, потому что у меня нет его объявления (т.е. я не знаю, является ли он структурой или классом). Р>
Переменная int iTotal создается в стеке.
Это верно для C #. В Java могут быть разные правила.