Эй, ребята, я рассматриваю некоторые вопросы, но не могу понять, я просмотрел учебник, но я не уверен, где найти ответ ...
Я знаю, что было бы довольно сложно сделать диаграммы памяти без картинок, но, пожалуйста, потерпите меня.
interface Lovable
public void love();
class Foo implements Lovable
public void love();
// something
public int val()
// return something1
public class Love
public static void main(String args [])
Foo foo = new Foo()
foo.love()
foo.love()
int bar = =foo.val()
System.out.print(v)
Теперь я вижу, что foo объявлен с new
, поэтому я знаю, что фактическая информация о классе Foo хранится в куче, и есть указатель кадра? это указывает на это пространство памяти в куче на вершине стека (до того, как foo вызовет какие-либо методы). так тогда как насчет интерфейса? это тоже будет храниться в куче?
поэтому в нижней части стека будет класс Love (также содержит int bar), указатель, который указывает на Foo foo в куче, фрейм для foo.love (), еще один фрейм foo.love (), a Фрейм для foo.val (), фрейм для печати?
Я понял идею? или я действительно очень далеко? Если вы знаете, где я могу получить больше информации, пожалуйста, дайте мне знать. Я ценю любой вклад ..