Sobes.tech
Middle

Javaда эске салуу кандайча түзүлгөн?

sobes.tech AI

AIден жооп

Javaда эс тутум автоматтык түрдө чогулгуч тарабынан башкарылат жана бир нече аймакка бөлүнөт:

  1. Heap (Куча):

    • Класс объекттери жана массивдер сакталат.
    • Бардык жиптер үчүн бирдей.
    • Garbage Collector ушул аймакта иштейт.
    • Поколдоруна бөлүнгөн (Young, Old, Permanent).
  2. Stack (Стек):

    • Ар бир жиптин өзүнүн стеки бар.
    • Локалдык өзгөрмөлөр жана кучадагы объекттерге шилтемелер сакталат.
    • Маалыматтар LIFO (Last-In, First-Out) принциби боюнча кошулуп жана алынып салынат.
    • Мethoд аяктагандан кийин автоматтык түрдө бошотулат.
  3. Method Area (Метод аймагы) / PermGen (Java 8ге чейин) / Metaspace (Java 8ден кийин):

    • Жүктөлгөн класстар тууралуу маалымат сакталат:
      • Класстардын метадаты.
      • Метода байткод.
      • Статикалык өзгөрмөлөр.
      • Константалар пулу.
    • PermGenдин өлчөмү чектелген болчу, Metaspace натыйжалуу жадды колдонуп, динамикалык кеңейе алат.
  4. Native Method Stacks (Нативдик метод стектери):

    • Нативдик методторду чакырууга колдонулат (мисалы, C/C++).
    • Нативдик метод аяктагандан кийин бошотулат.
// Жадды колдонуу мисалы
public class MemoryExample {

    private String instanceVariable; // Heapте сакталат

    public void myMethod(int parameter) { // parameter Stackте сакталат

        int localVar = 10; // localVar Stackте

        String localString = "hello"; // "hello" String Poolдо (Heap/Method Area бөлүгүндө), localString шилтемеси Stackте

        Object obj = new Object(); // Object Heapте, obj шилтемеси Stackте

        Integer wrapper = new Integer(5); // Integer Heapте, wrapper шилтемеси Stackте
    }

    public static void main(String[] args) {
        MemoryExample example = new MemoryExample();
        example.myMethod(20);
    }
}

Жад аймактары жана алардын мазмұну:

Аймак Кайда жайгашкан? Эмне сакталат? Башкаруу
Heap JVM үчүн жалпы Объекттер, массивдер Garbage Collector
Stack Ар бир жип үчүн өзүнчө Локалдык примитивдер, объекттерге шилтемелер Автоматтык (метод аяктагандан кийин)
Method Area JVM үчүн жалпы Класстардын метадаты, статикалык өзгөрмөлөр, байткод, константтар Garbage Collector (класстар жана статиктер үчүн)
Native Stacks Ар бир жип үчүн өзүнчө (чалуу учурунда) Нативдик методдордун өзгөрмөлөрү жана маалыматтары Автоматтык (нативдик метод аяктагандан кийин)