Sobes.tech
Junior

Javaда маалыматтар кантип сакталат?

sobes.tech AI

AIден жооп

Javaда маалыматтар ар кандай жолдор менен сакталат:

  • Примитивдүү түрлөр: Маалыматтар түздөн-түз бөлүнгөн эс тутум жайында сакталат (мисалы, стек). Аларга byte, short, int, long, float, double, boolean, char кирет.

    // int - примитивдүү түр, мааниси түздөн-түз сакталат
    int age = 30;
    
  • Ссылка түрлөрү: Эс тутумда сылтама (дарек) сакталат, ал объекттин (кучада) жайгашкан жерин көрсөтөт. Алар класстар, интерфейстер, массивдер болушу мүмкүн.

    // String - сылтама түрү, data "Hello" объектине шилтеме сактайт
    String data = "Hello";
    // CustomObject объекти курулат, ал кучада жайгашкан, obj шилтемени сактайт
    CustomObject obj = new CustomObject();
    
  • Массивдер: Объекттер кучада, элементтер топтомун камтыйт (примитивдүү маанилер же башка объекттердин шилтемелери). Массивдин өзгөрмөсы ошол объектке шилтеме сактайт.

    // int массиви, nums массивдин объектисине шилтеме
    int[] numbers = new int[10];
    // String массиви, names шилтемеси String объекттеринин массивине
    String[] names = {"Alice", "Bob"};
    
  • Объекттер: Кучада түзүлөт. Өзгөрмө объектке шилтеме сактайт. Объекттин ичинде анын талааларындагы примитивдүү маанилер жана башка объекттердин шилтемелери болушу мүмкүн.

    // Person классы жана анын талаалары
    class Person {
        String name; // String объектине шилтеме
        int age; // Примитивдүү мааниде
    }
    
    // Person объектисин кучада түзүү, person шилтемени сактайт
    Person person = new Person();
    person.name = "Charlie";
    person.age = 25;
    
  • Стрингдер: String классынын объекттери, кучада сакталат. Стрингдер өзгөрүлбөс (immutable). Алардын маанилери көбүнчө String Pool'до кэштелет, литерлер катары түзүлгөндө.

    // Стринг литерлери, String Pool'до түзүлүшү мүмкүн
    String str1 = "Java";
    // Жаңы String объектисин түзүү
    String str2 = new String("Java");
    
  • Коллекциялар (List, Set, Map жана башка): Объекттер кучада сакталат. Башка объекттерге шилтемелер камтыйт.

    // ArrayList шилтемелерди сактайт
    List<String> fruits = new ArrayList<>();
    fruits.add("Apple");
    fruits.add("Banana");
    
  • Stack (Замбыр): Локалдык өзгөрмөлөрдү (примитивдер), объекттердин шилтемелерин жана метод чакырууларын (call stack) сактоо үчүн колдонулат. Stackтеги маалыматтардын жашоо цикли чакырылган методго байланыштуу.

  • Heap (Куча): Бардык объекттер сакталат. Жадыны тазалоо garbage collector тарабынан жүргүзүлөт.

Ошентип, Javaда маалыматтар стек жана куча арасында бөлүнөт.