Middle
Javaда эске салуу кандайча түзүлгөн?
sobes.tech AI
AIден жооп
Javaда эс тутум автоматтык түрдө чогулгуч тарабынан башкарылат жана бир нече аймакка бөлүнөт:
-
Heap (Куча):
- Класс объекттери жана массивдер сакталат.
- Бардык жиптер үчүн бирдей.
- Garbage Collector ушул аймакта иштейт.
- Поколдоруна бөлүнгөн (Young, Old, Permanent).
-
Stack (Стек):
- Ар бир жиптин өзүнүн стеки бар.
- Локалдык өзгөрмөлөр жана кучадагы объекттерге шилтемелер сакталат.
- Маалыматтар LIFO (Last-In, First-Out) принциби боюнча кошулуп жана алынып салынат.
- Мethoд аяктагандан кийин автоматтык түрдө бошотулат.
-
Method Area (Метод аймагы) / PermGen (Java 8ге чейин) / Metaspace (Java 8ден кийин):
- Жүктөлгөн класстар тууралуу маалымат сакталат:
- Класстардын метадаты.
- Метода байткод.
- Статикалык өзгөрмөлөр.
- Константалар пулу.
- PermGenдин өлчөмү чектелген болчу, Metaspace натыйжалуу жадды колдонуп, динамикалык кеңейе алат.
- Жүктөлгөн класстар тууралуу маалымат сакталат:
-
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 | Ар бир жип үчүн өзүнчө (чалуу учурунда) | Нативдик методдордун өзгөрмөлөрү жана маалыматтары | Автоматтык (нативдик метод аяктагандан кийин) |