Java-да деректер қалай сақталады?
AI-дан жауап
sobes.tech AI
Java-да деректер әртүрлі тәсілдермен жадында сақталады:
-
Примитивті типтер: Мәндер тікелей бөлінген орындарда сақталады (мысалы, стек). Оларға
byte,short,int,long,float,double,boolean,charжатады.// int - примитивті тип, мән тікелей сақталады int жас = 30; -
Сілтемелі типтер: Жадында сілтеме (мекенжай) сақталады, ол объектінің орналасқан жерін көрсетеді (қоқыс жәшігі). Оларға кластар, интерфейстер, массивтер жатады.
// String - сілтемелі тип, data "Hello" объектісінің сілтемесін сақтайды String дерек = "Hello"; // CustomObject объектісі қоқыс жәшігінде жасалады, obj оған сілтемені сақтайды CustomObject obj = new CustomObject(); -
Массивтер: Объектілер қоқыс жәшігінде орналасқан, элементтер жиынтығын қамтиды (примитивті мәндер немесе басқа объектілердің сілтемелері). Массив айнымалысы осы объектінің сілтемесін сақтайды.
// Инт массиві, nums массив объектісінің сілтемесін сақтайды int[] сандар = new int[10]; // Стринг массиві, names массив объектілерінің сілтемесін сақтайды String[] аттар = {"Alice", "Bob"}; -
Объектілер: Қоқыс жәшігінде жасалады (Heap). Айнымалы объектіге сілтемені сақтайды. Объект ішіндегі өрістердің мәндері примитивті немесе басқа объектілердің сілтемелері болуы мүмкін.
// Person класы және оның өрістері class Person { String аты; // String объектісінің сілтемесі int жасы; // Примитивті мән } // Person объектісін қоқыс жәшігінде жасау, person сілтемені сақтайды Person адам = new Person(); адам.аты = "Charlie"; адам.жасы = 25; -
Жолдар: String класының объектілері, жадында сақталады. Жолдар өзгермейтін (immutable). Олардың мәндері String Pool-да кэштелуі мүмкін, әсіресе литералдар ретінде жасалғанда.
// Жол литералы, String Pool-да жасалуы мүмкін String жол1 = "Java"; // Жаңа String объектісін қоқыс жәшігінде жасау String жол2 = new String("Java"); -
Коллекциялар (List, Set, Map және т.б.): Жадында сақталатын объектілер. Басқа объектілердің сілтемелерін қамтиды.
// ArrayList қосылған объектілердің сілтемелерін сақтайды List<String> жемістер = new ArrayList<>(); жемістер.add("Алма"); жемістер.add("Банан"); -
Стек (Stack): Локальды айнымалыларды (примитивтер), объектілердің сілтемелерін және әдістер шақыру туралы ақпаратты сақтау үшін пайдаланылады (call stack). Деректердің өмірлік циклі шақырылатын әдіске байланысты.
-
Қоқыс жәшігі (Heap): Барлық объектілерді сақтау үшін пайдаланылады. Жадты тазалау garbage collector арқылы орындалады.
Осылайша, Java-да деректер стек (примитивтер мен сілтемелер үшін) және қоқыс жәшігі (объектер үшін) арасында бөлінеді.