Heap & Stack JavaStack и Heap в JavaКак побороть JavaFX application class must extend javafx.application.ApplicationВопрос о heap memory в JavaНе работает regex JavaСоздание объекта класса внутри него же самогоОшибка - main method not found in classпочему Java stack memory быстрее heapНужно полностью обновить SQLite базу данных при повышении версии кода приложенияПроблемы с созданием апплета на javaIDEA запуск кода | ошибка Error: Main method not found in class com.company.Main

Heap & Stack Java


Stack и Heap в JavaКак побороть JavaFX application class must extend javafx.application.ApplicationВопрос о heap memory в JavaНе работает regex JavaСоздание объекта класса внутри него же самогоОшибка - main method not found in classпочему Java stack memory быстрее heapНужно полностью обновить SQLite базу данных при повышении версии кода приложенияПроблемы с созданием апплета на javaIDEA запуск кода | ошибка Error: Main method not found in class com.company.Main













2















Я знаю, что ссылки на объекты создаются в памяти стека а сами объекты в куче. В коде ниже я пытаюсь переполнить кучу создавая большое количество объектов Main(), используя зацикленность в конструкторе, и вместо outOfMemoryError получаю stackOverflow.



public class Main 
public Main()
new Main();


public static void main(String[] args)
new Main();




Почему? Как мне переполнить кучу?










поделиться|улучшить этот вопрос

















  • 1





    Стек намного меньше кучи.

    – Кирилл Малышев
    5 часов назад











  • сделайте так, чтобы один объект съедал 100мб

    – Stranger in the Q
    5 часов назад






  • 1





    Вот, например OutOfMemoryError ideone.com/XjmuMf

    – Кирилл Малышев
    5 часов назад











  • @Кирилл а чем я в моем случае так переполняет стек?

    – CapitaNemo
    5 часов назад











  • рекурсия порождает на стеке адреса возврата

    – Stranger in the Q
    5 часов назад















2















Я знаю, что ссылки на объекты создаются в памяти стека а сами объекты в куче. В коде ниже я пытаюсь переполнить кучу создавая большое количество объектов Main(), используя зацикленность в конструкторе, и вместо outOfMemoryError получаю stackOverflow.



public class Main 
public Main()
new Main();


public static void main(String[] args)
new Main();




Почему? Как мне переполнить кучу?










поделиться|улучшить этот вопрос

















  • 1





    Стек намного меньше кучи.

    – Кирилл Малышев
    5 часов назад











  • сделайте так, чтобы один объект съедал 100мб

    – Stranger in the Q
    5 часов назад






  • 1





    Вот, например OutOfMemoryError ideone.com/XjmuMf

    – Кирилл Малышев
    5 часов назад











  • @Кирилл а чем я в моем случае так переполняет стек?

    – CapitaNemo
    5 часов назад











  • рекурсия порождает на стеке адреса возврата

    – Stranger in the Q
    5 часов назад













2












2








2








Я знаю, что ссылки на объекты создаются в памяти стека а сами объекты в куче. В коде ниже я пытаюсь переполнить кучу создавая большое количество объектов Main(), используя зацикленность в конструкторе, и вместо outOfMemoryError получаю stackOverflow.



public class Main 
public Main()
new Main();


public static void main(String[] args)
new Main();




Почему? Как мне переполнить кучу?










поделиться|улучшить этот вопрос














Я знаю, что ссылки на объекты создаются в памяти стека а сами объекты в куче. В коде ниже я пытаюсь переполнить кучу создавая большое количество объектов Main(), используя зацикленность в конструкторе, и вместо outOfMemoryError получаю stackOverflow.



public class Main 
public Main()
new Main();


public static void main(String[] args)
new Main();




Почему? Как мне переполнить кучу?







java






поделиться|улучшить этот вопрос













поделиться|улучшить этот вопрос











поделиться|улучшить этот вопрос




поделиться|улучшить этот вопрос










задан 6 часов назад









CapitaNemoCapitaNemo

1075




1075







  • 1





    Стек намного меньше кучи.

    – Кирилл Малышев
    5 часов назад











  • сделайте так, чтобы один объект съедал 100мб

    – Stranger in the Q
    5 часов назад






  • 1





    Вот, например OutOfMemoryError ideone.com/XjmuMf

    – Кирилл Малышев
    5 часов назад











  • @Кирилл а чем я в моем случае так переполняет стек?

    – CapitaNemo
    5 часов назад











  • рекурсия порождает на стеке адреса возврата

    – Stranger in the Q
    5 часов назад












  • 1





    Стек намного меньше кучи.

    – Кирилл Малышев
    5 часов назад











  • сделайте так, чтобы один объект съедал 100мб

    – Stranger in the Q
    5 часов назад






  • 1





    Вот, например OutOfMemoryError ideone.com/XjmuMf

    – Кирилл Малышев
    5 часов назад











  • @Кирилл а чем я в моем случае так переполняет стек?

    – CapitaNemo
    5 часов назад











  • рекурсия порождает на стеке адреса возврата

    – Stranger in the Q
    5 часов назад







1




1





Стек намного меньше кучи.

– Кирилл Малышев
5 часов назад





Стек намного меньше кучи.

– Кирилл Малышев
5 часов назад













сделайте так, чтобы один объект съедал 100мб

– Stranger in the Q
5 часов назад





сделайте так, чтобы один объект съедал 100мб

– Stranger in the Q
5 часов назад




1




1





Вот, например OutOfMemoryError ideone.com/XjmuMf

– Кирилл Малышев
5 часов назад





Вот, например OutOfMemoryError ideone.com/XjmuMf

– Кирилл Малышев
5 часов назад













@Кирилл а чем я в моем случае так переполняет стек?

– CapitaNemo
5 часов назад





@Кирилл а чем я в моем случае так переполняет стек?

– CapitaNemo
5 часов назад













рекурсия порождает на стеке адреса возврата

– Stranger in the Q
5 часов назад





рекурсия порождает на стеке адреса возврата

– Stranger in the Q
5 часов назад










1 ответ
1






текущие

по дате публикации

голоса


















3














На каждый вызов функции в памяти выделяется кусок стека. В нём хранятся адрес возврата в вызывающую функцию, локальные ссылки, примитивные переменные и, возможно, другая служебная информация. При выходе из функции стек очищается. Но из-за рекурсии вы не выходите из функции, пока не перестанете вызывать функцию саму из себя. Соответственно, размер стека стремительно растёт и возникает его переполнение.



Чтобы добиться ошибки OutOfMemoryError, объекты должны занимать в памяти слишком много места. Обычно эта ошибка возникает либо из-за выделения слишком большого куска памяти (например, огромный массив)



static int[] arr = new int[1000000000];


либо из-за утечек памяти.



Как правило, размер стека намного меньше размера кучи. Если размер стека обычно измеряют мегабайтами или десятками мегабайт, то размер кучи может достигать сотен мегабайт или нескольких гигабайт. Именно поэтому, у вас программа падает с ошибкой StackOverflowError.






поделиться|улучшить этот ответ























  • сразу бы так ответили, а не в комментариях, теперь понял, спасибо вам)

    – CapitaNemo
    4 часа назад











Ваш ответ






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "609"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "на платформе u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "Пользовательский контент попадает под действие u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003eлицензии cc by-sa 3.0u003c/au003e с u003ca href="https://stackoverflow.com/legal/content-policy"u003eуказанием ссылки на источникu003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













черновик сохранён

черновик удалён


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fru.stackoverflow.com%2fquestions%2f956181%2fheap-stack-java%23new-answer', 'question_page');

);

Отправить без регистрации















Необходима, но никому не показывается

























1 ответ
1






текущие

по дате публикации

голоса








1 ответ
1






текущие

по дате публикации

голоса









текущие

по дате публикации

голоса






текущие

по дате публикации

голоса









3














На каждый вызов функции в памяти выделяется кусок стека. В нём хранятся адрес возврата в вызывающую функцию, локальные ссылки, примитивные переменные и, возможно, другая служебная информация. При выходе из функции стек очищается. Но из-за рекурсии вы не выходите из функции, пока не перестанете вызывать функцию саму из себя. Соответственно, размер стека стремительно растёт и возникает его переполнение.



Чтобы добиться ошибки OutOfMemoryError, объекты должны занимать в памяти слишком много места. Обычно эта ошибка возникает либо из-за выделения слишком большого куска памяти (например, огромный массив)



static int[] arr = new int[1000000000];


либо из-за утечек памяти.



Как правило, размер стека намного меньше размера кучи. Если размер стека обычно измеряют мегабайтами или десятками мегабайт, то размер кучи может достигать сотен мегабайт или нескольких гигабайт. Именно поэтому, у вас программа падает с ошибкой StackOverflowError.






поделиться|улучшить этот ответ























  • сразу бы так ответили, а не в комментариях, теперь понял, спасибо вам)

    – CapitaNemo
    4 часа назад
















3














На каждый вызов функции в памяти выделяется кусок стека. В нём хранятся адрес возврата в вызывающую функцию, локальные ссылки, примитивные переменные и, возможно, другая служебная информация. При выходе из функции стек очищается. Но из-за рекурсии вы не выходите из функции, пока не перестанете вызывать функцию саму из себя. Соответственно, размер стека стремительно растёт и возникает его переполнение.



Чтобы добиться ошибки OutOfMemoryError, объекты должны занимать в памяти слишком много места. Обычно эта ошибка возникает либо из-за выделения слишком большого куска памяти (например, огромный массив)



static int[] arr = new int[1000000000];


либо из-за утечек памяти.



Как правило, размер стека намного меньше размера кучи. Если размер стека обычно измеряют мегабайтами или десятками мегабайт, то размер кучи может достигать сотен мегабайт или нескольких гигабайт. Именно поэтому, у вас программа падает с ошибкой StackOverflowError.






поделиться|улучшить этот ответ























  • сразу бы так ответили, а не в комментариях, теперь понял, спасибо вам)

    – CapitaNemo
    4 часа назад














3












3








3







На каждый вызов функции в памяти выделяется кусок стека. В нём хранятся адрес возврата в вызывающую функцию, локальные ссылки, примитивные переменные и, возможно, другая служебная информация. При выходе из функции стек очищается. Но из-за рекурсии вы не выходите из функции, пока не перестанете вызывать функцию саму из себя. Соответственно, размер стека стремительно растёт и возникает его переполнение.



Чтобы добиться ошибки OutOfMemoryError, объекты должны занимать в памяти слишком много места. Обычно эта ошибка возникает либо из-за выделения слишком большого куска памяти (например, огромный массив)



static int[] arr = new int[1000000000];


либо из-за утечек памяти.



Как правило, размер стека намного меньше размера кучи. Если размер стека обычно измеряют мегабайтами или десятками мегабайт, то размер кучи может достигать сотен мегабайт или нескольких гигабайт. Именно поэтому, у вас программа падает с ошибкой StackOverflowError.






поделиться|улучшить этот ответ













На каждый вызов функции в памяти выделяется кусок стека. В нём хранятся адрес возврата в вызывающую функцию, локальные ссылки, примитивные переменные и, возможно, другая служебная информация. При выходе из функции стек очищается. Но из-за рекурсии вы не выходите из функции, пока не перестанете вызывать функцию саму из себя. Соответственно, размер стека стремительно растёт и возникает его переполнение.



Чтобы добиться ошибки OutOfMemoryError, объекты должны занимать в памяти слишком много места. Обычно эта ошибка возникает либо из-за выделения слишком большого куска памяти (например, огромный массив)



static int[] arr = new int[1000000000];


либо из-за утечек памяти.



Как правило, размер стека намного меньше размера кучи. Если размер стека обычно измеряют мегабайтами или десятками мегабайт, то размер кучи может достигать сотен мегабайт или нескольких гигабайт. Именно поэтому, у вас программа падает с ошибкой StackOverflowError.







поделиться|улучшить этот ответ












поделиться|улучшить этот ответ



поделиться|улучшить этот ответ










ответ дан 4 часа назад









Кирилл МалышевКирилл Малышев

5,2151420




5,2151420












  • сразу бы так ответили, а не в комментариях, теперь понял, спасибо вам)

    – CapitaNemo
    4 часа назад


















  • сразу бы так ответили, а не в комментариях, теперь понял, спасибо вам)

    – CapitaNemo
    4 часа назад

















сразу бы так ответили, а не в комментариях, теперь понял, спасибо вам)

– CapitaNemo
4 часа назад






сразу бы так ответили, а не в комментариях, теперь понял, спасибо вам)

– CapitaNemo
4 часа назад


















черновик сохранён

черновик удалён
















































Спасибо за ваш ответ на Stack Overflow на русском!


  • Пожалуйста, убедитесь, что публикуемое сообщение отвечает на поставленный вопрос. Предоставьте как можно больше деталей, расскажите про проведенное исследование!

Но избегайте


  • Просьб помощи, уточнений или ответов на темы не относящиеся к вопросу.

  • Ответов основанных на мнениях; приводите аргументы основанные только на реальном опыте.

Также, обратите внимание на заметку в справочном центре о том, как писать ответы.




черновик сохранён


черновик удалён














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fru.stackoverflow.com%2fquestions%2f956181%2fheap-stack-java%23new-answer', 'question_page');

);

Отправить без регистрации















Необходима, но никому не показывается





















































Необходима, но никому не показывается














Необходима, но никому не показывается












Необходима, но никому не показывается







Необходима, но никому не показывается

































Необходима, но никому не показывается














Необходима, но никому не показывается












Необходима, но никому не показывается







Необходима, но никому не показывается







Popular posts from this blog

Virtualbox - Configuration error: Querying “UUID” failed (VERR_CFGM_VALUE_NOT_FOUND)“VERR_SUPLIB_WORLD_WRITABLE” error when trying to installing OS in virtualboxVirtual Box Kernel errorFailed to open a seesion for the virtual machineFailed to open a session for the virtual machineUbuntu 14.04 LTS Virtualbox errorcan't use VM VirtualBoxusing virtualboxI can't run Linux-64 Bit on VirtualBoxUnable to insert the virtual optical disk (VBoxguestaddition) in virtual machine for ubuntu server in win 10VirtuaBox in Ubuntu 18.04 Issues with Win10.ISO Installation

Are there any comparative studies done between Ashtavakra Gita and Buddhim?How is it wrong to believe that a self exists, or that it doesn't?Can you criticise or improve Ven. Bodhi's description of MahayanaWas the doctrine of 'Anatta', accepted as doctrine by modern Buddhism, actually taught by the Buddha?Relationship between Buddhism, Hinduism and Yoga?Comparison of Nirvana, Tao and Brahman/AtmaIs there a distinction between “ego identity” and “craving/hating”?Are there many differences between Taoism and Buddhism?Loss of “faith” in buddhismSimilarity between creation in Abrahamic religions and beginning of life in Earth mentioned Agganna Sutta?Are there studies about the difference between meditating in the morning versus in the evening?Can one follow Hinduism and Buddhism at the same time?Are there any prohibitions on participating in other religion's practices?Psychology of 'flow'

Where is the suspend/hibernate button in GNOME Shell? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)No suspend option in UI on Bionic BeaverHow can I set sleep mode in ubuntu18.04 LTS and what is the short cut key to do so?17.10 suspend not availableUbuntu 18.04 LTS missing sleep optionUbuntu 18.04 LTS - missing suspend option when power button is pressedHow to put Thinkpad X1 Extreme to sleep in Ubuntu 18.10?Suspend Button in interactive power button menu18.04 - Keep programs running after logging outway to disable Hibernate from within gconf-editor so button disappears?How can I hibernate from GNOME Shell?How can I hibernate/suspend from the command line and do so at a specific timeNo permission to suspend/hibernate after upgrading to 12.10MATE - Missing Suspend and Hibernate buttons, pressing power button shutdowns system immediatelyUbuntu 14.04: Suspend, Hibernate and Suspend-hybrid in the menu?Change “power-button-action” comand for “hibernate” option in GNOME 3.18Shutdown / Power off button does always go to suspend on 17.10Hibernate after suspend stopped working in 17.10Why doesn't the keyboard screenshot button work on Ubuntu with GNOME shell?