Page 280 - 6253
P. 280

пам'яті стека міститься посилання на нього. Пам'ять стека містить тільки локальні

            змінні примітивних типів і посилання на об'єкти в купі.

                     Об'єкти  в  купі  доступні  з  будь-якої  точки  програми,  в  той  час  як  стекова

            пам'ять не може бути доступна для інших потоків.

                     Управління пам'яттю в стеці здійснюється за схемою LIFO.

                     Стекова пам'ять  існує лише якийсь час роботи програми, а  пам'ять  у купі

            живе з самого початку до кінця роботи програми.

                     Ми  можемо  використовувати  -Xms  і  -Xmx  опції  JVM,  щоб  визначити

            початковий  і  максимальний  розмір  пам'яті  в  купі.  Для  стека  визначити  розмір

            пам'яті можна за допомогою опції -Xss.

                     Якщо  пам'ять  стека  повністю  зайнята,  то  Java  Runtime  викидає


            java.lang.StackOverflowError,  а  якщо  пам'ять  купи  заповнена,  то  випадає  виняток
            java.lang.OutOfMemoryError: Java Heap Space.


                     Розмір  пам'яті  стека  набагато  менше  пам'яті  в  купі.  Через  простоту

            розподілу пам'яті (LIFO), стековая пам'ять працює набагато швидше купи.






















                      Приклад:

            public static void main(String args[]){

            A parent = new A(); //more code
            }

            class A{
            B child = new B(); int e; //more code

            }
             class B{

            int c; int d; //more code

            }


                                                              279
   275   276   277   278   279   280   281   282   283   284   285