Turon Devs 🌐
20 subscribers
3 photos
3 videos
19 links
Download Telegram
🔍 Java’da Object Lifecycle: Obyektning Hayoti va Xotira Boshqaruvi

Savol:
Java obyektlari qanday ishlaydi? Ular yaratilib, foydalaniladi va nihoyat o‘ladi. Bunda nimalar sodir bo‘ladi? 🤔

Javob:
Java obyektlari 3 bosqichni bosib o‘tadi:
1️⃣ Create (Yaratilish)
2️⃣ In Use (Foydalanish)
3️⃣ Dead (O‘lim)

Har bir bosqichda obyektlar qanday ishlaydi va xotira qanday boshqariladi? Keling, bu jarayonni batafsil ko‘rib chiqamiz!

1. Create (Yaratilish) 📎
Obyekt yaratishda, u Heapda joylashtiriladi. Heap — bu xotira maydoni bo‘lib, u Java Virtual Machine (JVM) tomonidan boshqariladi.
Heap o‘z navbatida Young Generation va Old Generation kabi ikkiga bo‘linadi. Yangi yaratilgan obyektlar, aynan Young Generationdagi Eden Spacega joylashtiriladi. Bu qism, yangi obyektlar uchun ajratilgan bo‘lib, tezda to‘lib ketadi.

Young Generationning qismlari:
Eden Space: Yangi yaratilgan obyektlar bu yerda joylashadi. Har safar Minor GC (Garbage Collection) jarayonida, ishlatilmagan obyektlar tozalanadi va o‘chiriladi.

Survivor Space (S0, S1): Bu yerda Eden Spacedan omon qolgan obyektlar saqlanadi. Survivor Space ikki bo‘limga bo‘linadi: S0 va S1. Minor GC jarayonida obyektlar bir bo‘limdan ikkinchisiga ko‘chadi. Bu jarayon davomida faqat omon qolgan obyektlar saqlanadi.

Minor GC va Finalize Queue:
Minor GC jarayonida, Young Generationdagi foydalanilmayotgan obyektlar tozalanadi va Finalize Queuega joylashtiriladi. Bu obyektlar keyinchalik o‘chiriladi.

Survivor Spacedagi obyektlar esa, agar uzoq vaqt ishlatilsa, Old Generationga ko‘chiriladi.

Xulosa:
Yaratilgan obyektlar dastlab Young Generationda joylashadi, va ularning ba'zilari omon qolib, Old Generationga ko‘chadi.

2. In Use (Foydalanish) 📎
Obyekt ishlatilayotgan vaqtda, heapdagi xotira bo‘limida saqlanadi.
Agar obyektga reference bo‘lmasa yoki unga hech qanday murojaat qilinmasa, bu obyekt unreachable hisoblanadi va Dead holatiga o‘tadi. Boshqa so‘z bilan aytganda, agar obyektga boshqa joydan murojaat bo‘lmasa, garbage collector tomonidan tozalanadi.

Obyekt ishlatilayotgan bo‘lsa, u faqat Young Generationda emas, balki Old Generationda ham saqlanishi mumkin. Bu obyektlar uzoq vaqt davomida tizimda ishlatilayotgan bo‘lishi mumkin, va bu holat Minor GC orqali tezda tozalanmaydi.

3. Dead (O‘lim) 📎
Obyektning Dead holatiga o‘tishi — bu uning hayotining tugashi. Agar obyektga hech qanday reference qolmasa, JVM uni Dead deb belgilaydi.
Endi bu obyekt Garbage Collector tomonidan tozalanadi. Finalize Queueda turgan obyektlar yig‘ib, tizimdan o‘chiriladi.

Finalize Queue:
Finalize Queueda obyektlar to‘planganidan so‘ng, GC ularni o‘chirishga tayyorlaydi va tizim resurslarini bo‘shatadi.

Heap Memory Boshqaruvi:
Young Generationda obyektlar tezda tozalanadi va faqat ishlatilayotganlar Old Generationga ko‘chiriladi.

Old Generationda esa obyektlar uzoq vaqt saqlanadi va faqat Major GC orqali tozalanadi.


Xulosa:
Java’da obyektlar 3 bosqichni bosib o‘tadi:

Create (Yaratilish): Obyektlar Young Generationda joylashtiriladi va Minor GC orqali tozalanadi.

In Use (Foydalanish): Obyektlar ishlatilgan vaqtda xotirada saqlanadi.

Dead (O‘lim): Obyektlar Dead holatiga o‘tadi va Garbage Collector tomonidan tozalanadi.

Bu jarayonni tushunish, xotira boshqaruvi va tizim samaradorligini yaxshilashda juda muhimdir. Java Garbage Collection tizimi sizning obyektlar hayotini boshqaradi va memory leak muammolarini oldini oladi.

💡 Maslahat: Young Generation va Old Generation xotira boshqaruvini chuqur tushunish, sizga tizimning samaradorligini oshirish va memory leakdan saqlanish imkonini beradi.


#Java #ObjectLifecycle #GarbageCollection #MemoryManagement #Heap #YoungGeneration #OldGeneration #MinorGC #MajorGC #SpringDev

https://t.me/turondevs
Qiziqarli savol aytaman javobiham ma'noli savolham♨️

Savol
Uni yasagan odam o'zi buni xoxlamagan .
Uni sotib olgan odamga uni keragi yo'q .
U kimga kerak bo'lsa mutlaqo jim.

Nima u


Javoblaringiz kamentariyada kutaman
🔥5
Assalomu alaykum va Rahmatullohi va barokatuh hammaga xayrli tong, kuningiz xayrli òtsin
Kun davomida sizlarga foydali ma'lumotlar va dasturlash sohasida kerakli bilimlarni ulashib boraman nasib qilsa
University va Student classlari bir biriga @OneToMany bilan bog'langan 1.University o'chirilganda undagi talabalarham  o'chishini
2.University dagi talabalar listi yangilanganda bu listda yo'q talabalar avtomatik o'chishini xoxlasam
modellar o'rtasida ...
Anonymous Quiz
88%
@OneToMany(cascade=CascadeType.REMOVE, orphanRemovel=true)
0%
@OneToMany(cascade=CascadeType.REMOVE, fetch=FetchType.EAGER)
13%
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
0%
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY)
👍2
🚀 Sentry haqida bilasizmi ?

Dasturda yuzaga kelgan xatoliklarni qanday aniqlaysiz? Tezda xatoliklar haqida xabardor bo‘lish va ularni hal qilish uchun qanday vositalardan foydalanasiz? 😕

Batafsil
Sentry — bu real-time error tracking tizimi bo‘lib, dasturdagi xatoliklar haqida instant xabar olish imkoniyatini yaratadi. Bu sizga nafaqat xatoliklarni aniqlashda, balki ularni tezda tuzatishda ham yordam beradi.

Sentry nima?
Sentry — bu xatoliklarni kuzatish va tuzatish uchun ishlab chiqilgan platformadir. Dasturdagi muammolarni to‘g‘ridan-to‘g‘ri real-time monitoring qilish va tuzatishga yordam beradigan kuchli vosita.

Asosiy afzalliklari: 🔍 Real-time monitoring: Dasturda yuzaga kelgan xatoliklarni darhol aniqlaydi.
⚙️ Integration: Web, mobile, backend va front-end dasturlariga osonlik bilan integratsiya qilish mumkin.
🚀 Detailed Reports: Har bir xatolik haqida batafsil hisobotlar beradi, shu jumladan stack trace, xatolik qayerda yuz bergani va boshqa kerakli ma'lumotlar.
💻 Contextual Insights: Xatoliklar haqida kontektual ma'lumotlar taqdim etadi, masalan, foydalanuvchi qaysi sahifada edi yoki qaysi operatsiyani bajarayotgan edi.

Sentry qanday ishlaydi?
Error Reporting: Sentry sizning dasturingizdagi xatoliklarni aniqlab, ularni tizimga yuboradi.

Detailed Stack Traces: Xatoliklar yuzaga kelgan joy va ularning kontekstini aniqlash uchun stack traceni taqdim etadi.

Alerting and Notifications: Xatoliklarni tezda aniqlash uchun real-time notifications jo‘natadi.

Bug Tracking: Har bir xatolikni alohida ko‘rish va tahlil qilish imkonini beradi.

Nega Sentry foydali?
Kichik va yirik loyihalar uchun ham mos: Kichik startaplardan tortib, yirik korporatsiyalargacha barcha uchun qulay.

Tezkor xatoliklarni aniqlash: Xatoliklar sodir bo‘lgandan keyin dasturning ishlashini tiklash uchun vaqtni tejaydi.

Foydalanuvchi tajribasini yaxshilash: Dasturdagi xatoliklar tezda hal etilsa, foydalanuvchi tajribasi yaxshilanadi.

Sentry bilan qanday ishlashni boshlash mumkin?
Sentry’ni o‘rnatish juda oson! Siz faqatgina bir nechta qadamni amalga oshirishingiz kerak:

Account yaratish: Sentry platformasida account yarating.

Integratsiya qilish: Dasturga mos integratsiya qilishni tanlang (Web, Mobile, Java, Python, Node.js va boshqalar).

Monitoringni boshlash: Xatoliklarni real-time monitoring qilishni boshlang!

Xulosa:
Sentry dasturdagi xatoliklarni tezda aniqlash, monitoring qilish va hal qilishda juda foydali vosita hisoblanadi. Uni joriy qilish orqali siz nafaqat tizimning barqarorligini oshirasiz, balki foydalanuvchilarga ham yuqori sifatli tajriba taqdim etasiz.

Dasturchi yoki tizim admini bo‘lsangiz, Sentry’ni sinab ko‘ring va xatoliklarni boshqarish jarayonini yengillashtiring!


#Sentry #ErrorTracking #Monitoring #RealTime #BugTracking #DeveloperTools #TechTips #ErrorHandling

https://t.me/turondevs
👍1
Assalomu alaykum hammaga xayrli kun do'stlar programming dengizida yaxshi suzyabsizlarmi ?
Unda davom etamiz ...
🧹 orphanRemoval = true nima va qayerda ishlatiladi?

Tasavvur qiling, sizda Parent va unga bog‘langan Child obyektlari bor. Siz Parent obyektidan Childni olib tashlaganingizda — u hali ham bazada qolaversa, bu "yetim" (orphan) obyekt bo‘ladi. 🤕

💡 Mana shu "yetim"larni avtomatik o‘chirish uchun orphanRemoval = true ishlatiladi!

🧩 Qayerda kerak bo‘ladi?
@OneToMany yoki @OneToOne munosabatlarda

Ota obyekt ichidagi List yoki obyektni olib tashlaganingizda, u ma'lumotlar bazasidan ham yo‘qolsin desangiz

🔥 Misol:
@OneToMany(mappedBy = "parent", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Child> children;

🗑 Endi children.remove(x) qilsangiz — x obyekt bazadan ham o‘chadi!

Xulosa: orphanRemoval = true sizning entity’laringizda tozalik va soddalik yaratadi. Qo‘shildi — ishlaydi, olib tashlandi — yo‘qoladi. Hech qanday ortiqcha qo‘l bilan delete qilish shart emas!

#Java #JPA #Hibernate #SpringBoot #orphanRemoval #BackendTips #CleanCode
Nasib qilsa foydali bo'ladi degan umiddaman ulashib qo'yyabman. Bu ko'pchilikdagi xususan o'zimdagi muammolardan biri
🚀 Samarali Ishlash Sirlarini O‘rganing!

🎯 Bugun sizga dasturchilar uchun ajoyib vaqti boshqarish metodologiyasini taqdim etmoqchiman! 💡

Pomodoro Texnikasi – bu ishga bo‘lgan yondashuvingizni tubdan o‘zgartirishi mumkin. 🌟

🔹 Nima bu? Pomodoro texnikasi, oddiy qilib aytganda, 25 daqiqalik intensiv ish bloklari bilan ishlashni ta'minlaydi, har bir blokdan so‘ng esa qisqa tanaffus (5 daqiqa) qilasiz. Har to‘rtinchi sessiyadan keyin esa, uzunroq tanaffus (15–30 daqiqa) olasiz.

🔹 Nega bu usul ishlaydi?

Fokuslanish: 25 daqiqa davomida faqat ishga qaratilgan e'tibor!

Motivatsiya: Har bir sessiya o‘zining kichik maqsadi sifatida ishlaydi – buni amalga oshirish sizga yengillik beradi!

Stressni kamaytirish: Qisqa tanaffuslar, ishni davom ettirishga yordam beradi, lekin uzoq vaqt davomida ishlashni oldini oladi.

🔹 Afzalliklari:

Ko‘proq ishni kamroq vaqt ichida bajarish.

O‘z-o‘zini boshqarish va diqqatni jamlash.

Energiyani tiklash va stressni kamaytirish!

🕒 Siz ham boshlang! Agar siz ham samarali ishlashni istasangiz, Pomodoro texnikasini sinab ko‘rishingizni maslahat beraman!

Pomodoro usulini qanday ishlatishni boshladingiz? Yoki sizda o‘z metodologiyangiz bormi? Izohda fikrlaringizni qoldiring! 👇


#dasturchilar #PomodoroTexnikasi #ishlash #motivation #productivity

https://t.me/turondevs
3
Forwarded from Stack&Snack
Media is too big
VIEW IN TELEGRAM
Sizlar uchun qo'llanma nima maqsadda bot tashkil qilingani uchun!
Adminiz xabarlaringizni kanalga qo'yib boradi ,o'ylashimcha bu ko'pchilik uchun foydali bo'ladi!


do'stlaringizga ham ulashing bu xabarni xursand bo'lar edik😊
Foydalaninglar bunaqa imkoniyatdan!

Kanalimizda qoling!
This media is not supported in your browser
VIEW IN TELEGRAM
#XordiqVaqti

Kimlardir o'zini kimlardir tanishlarini ko'rdi...😁

Tanishlarga tashlab qo'yamiz 🚀
😁1
🚦 Java dasturingiz ishlayaptimi yoki jon berayaptimi? 👀 Bilasizmi?

Aynan shuning uchun monitoring vositalari kerak!
🔧 Grafana, Prometheus, Micrometer, va Actuator kabi texnologiyalar orqali siz Java ilovangizning yurak urishini kuzatib turishingiz mumkin.

🔍 Nima bu "Monitoring"?
Monitoring — bu dasturdagi:

Ishlash tezligi ⚡️

Resurs sarfi (CPU, RAM, DB) 📊

Xatoliklar va foydalanuvchi harakati 📉

haqida real-time ma’lumot olish vositasi.

☕️ Java + Monitoring ekotizimi:
🛠 Spring Boot Actuator
– API endpointlar orqali ilova holatini (/health, /metrics, /info) ko‘rsatadi.
– Micrometer bilan birga ishlab, statistikani tashqariga chiqaradi.

📏 Micrometer
– Bu — metrics yig‘uvchi facade.
– U sizning ilovangizdan statistikani olib, Prometheus, Datadog, InfluxDB yoki boshqalar bilan ulaydi.

📡 Prometheus
– Micrometerdan kelgan ma’lumotlarni yig‘adi, o‘zida saqlaydi va so‘rovlarga javob beradi (Query DSL orqali).

📊 Grafana
– Prometheusdan olingan ma’lumotlarni vizual tarzda ko‘rsatadi: graflar, progresslar, alertlar.
– Eng zo‘ri — dashboardlar yaratish va real vaqtda kuzatish.

🔗 Real integratsiya sxemasi:
Java App (Spring + Micrometer + Actuator)

Metrics (exposed at /actuator/prometheus)

Prometheus (pulls metrics)

Grafana (reads from Prometheus → charts)

💡 Nega bu muhim?
Proaktiv monitoring: Ilova og‘irlashmasdan oldin muammoni ko‘rasiz.

Alerting: Masalan, CPU > 80% bo‘lsa — Slack’ka yoki Telegram’ga ogohlantirish!

Performance tuning: Qaerda sekinlik borligini aniqlaysiz.

🚀 Java Monitoring boshlash uchun:
Spring Boot ilovangizga spring-boot-starter-actuator va micrometer-registry-prometheus qo‘shing.

application.ymlga actuator sozlamalarini qo‘shing.

Prometheus va Grafana konteynerlarini ishga tushuring.

Grafana’da dashboard yarating va dam oling 😎

#Grafana #Micrometer #Prometheus #JavaMonitoring #SpringBoot #BackendLife #DevOps #Observability #Metrics #TuronTechTips




Obuna bo'ling va ko'proq foydali ma'lumotlarni biz bilan o'rganing 😊
https://t.me/turondevs
Kechiktirib bajarish kerak bo‘lgan vazifalar bormi?
Masalan:

💬 “Xabar 5 daqiqadan keyin yuborilsin.”
📦 “Buyurtma 30 soniyadan keyin bekor qilinmasin.”
🧨 “Token muddati 60 soniyada tugaydi.”

Bu kabi vazifalar uchun Delayed interfeysi va DelayQueue haqiqiy najot bo‘ladi 💡

🔨 REAL VAQTIY MISOL: Kechiktirilgan SMS yuborish


import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicInteger;

public class DelayedMessage implements Delayed {
private final String message;
private final long startTime;

public DelayedMessage(String message, long delayInSeconds) {
this.message = message;
this.startTime = System.currentTimeMillis() + delayInSeconds * 1000;
}

@Override
public long getDelay(TimeUnit unit) {
long delay = startTime - System.currentTimeMillis();
return unit.convert(delay, TimeUnit.MILLISECONDS);
}

@Override
public int compareTo(Delayed o) {
return Long.compare(this.startTime, ((DelayedMessage) o).startTime);
}

public String getMessage() {
return message;
}
}



public class DelayedQueueExample {
public static void main(String[] args) throws InterruptedException {
DelayQueue<DelayedMessage> queue = new DelayQueue<>();

// Xabarlar kechiktirilgan holda navbatga qo‘shiladi
queue.put(new DelayedMessage("Salom! 5 sekunddan keyin", 5));
queue.put(new DelayedMessage("Assalomu alaykum! 10 sekunddan keyin", 10));

while (!queue.isEmpty()) {
DelayedMessage message = queue.take(); // faqat vaqti yetganini oladi
System.out.println("Yuborildi: " + message.getMessage());
}
}
}

🧠 Nima bo‘ldi bu yerda?
Har bir DelayedMessage obyekt — o‘zining start timega ega.

DelayQueue esa faqat vaqti yetgan xabarlarni beradi.

take() metodi bloklanadi, ya'ni kutadi — bu esa CPUni tejaydi 🔋

Foydali joylari:
🔔 Push bildirishnomalar

📅 Vaqtga bog‘langan eventlar

💤 Scheduled tasklarni bajarish

🧪 Test case'larda delay simulatsiyasi

🧩 Xulosa:
Delayed interfeysi bilan siz faqat kerakli vaqtda ishga tushadigan, resurslarni tejovchi va aniq nazoratga ega tizim yaratishingiz mumkin!

#Java #Delayed #DelayQueue #Multithreading #ScheduledTasks #BackendLife #ConcurrencyTools #TuronTechTips #RealCode

Obuna bo'ling va ko'proq foydali ma'lumotlarni biz bilan o'rganing 😊
https://t.me/turondevs
Forwarded from Java
This media is not supported in your browser
VIEW IN TELEGRAM
Agar hamma qiladigan ishlarni qilsangiz, hamma qatori boʻlasiz!
👍1
Assalomu alaykum va rahmatullohi va barokatuh developerlar hamma yaxshimi 🥳 bugun bizning kunimiz hammani avvalambor tabriklayman
Sizning kampaniyangiz bor va unda quyidagi muammolar bormi?
• Davomat qo‘lda yuritiladi, kechikish/qoldirishni tez aniqlash qiyin
• Smena va ish grafiklarini tuzish ko‘p vaqt oladi
• Xodimlar ma’lumotlari turli fayllarda tarqoq, huquqlar nazorati murakkab
• Ta’til arizalari va tasdiqlash jarayoni sust
• Maosh, bonus va jarimalarni hisoblashda xatolar chiqadi
• Filial/obyektlardagi xodimlarni real vaqt kuzatib bo‘lmaydi
• 1C yoki qurilmalarni ulashda integratsiya muammolari

To‘g‘ri yechim — OnTrack
OnTrack — HRM tizimi bo‘lib, HR jarayonlaringizni bitta platformada avtomatlashtiradi va tezlashtiradi:
Davomat: Hikvision bilan yuzni aniqlash, avtomatik kirish/chiqish, real vaqt monitoring
Aqlli kalendar & smenalar: fleksibil rejalashtirish, bayram/dam olish kunlarini hisobga olish
Xodimlar boshqaruvi: yagona HR bazasi, rollar/huquqlar, onboarding
Integratsiyalar: 1C bilan ulanish, qurilmalarni markazdan boshqarish
Ta’til boshqaruvi: ariza topshirish, tasdiqlash va holatni kuzatish
Maosh: maosh/bonus/jarimani avtomatik hisoblash
Live kuzatuv & geofencing: obyektlardagi xodimlar holatini real vaqtda ko‘rish
Ko‘p tilli interfeys (7 til) va Real-time Dashboard

Nima uchun aynan OnTrack?
• 2 soat ichida ishga tushirish
• 24/7 qo‘llab-quvvatlash
• Ma’lumotlar xavfsizligi (shifrlash)
• 10+ kompaniya va 500+ aktiv xodim ishonchi, 99.9% aniqlik, 40%gacha samaradorlik o‘sishi

Softex haqida qisqacha
OnTrack’ning orqasida turgan Softex — yirik va zamonaviy loyihalar ishlab chiquvchi IT kompaniya (60+ mutaxassisdan iborat jamoa).

🔗 Batafsil va demo: ontrack.uz
📞 +998 94 250 81 01 | ✉️ info@ontrack.uz
👍1
Assalomu alaykum va Rahmatullohi va barokatuh Bugun Doniyorbek Nasriddinovni Najot ta'limga qilgan tashrifidan Ilm olish sirlari suhbatlarini eshitdim. Alloh Ta'olo bu suhbatdan olgan ilmimdagi nasibamni barakali qilib amal qilishni nasib qilishini sòrab qolardim. Sizlargaham maslahat beraman qidirib topib eshitib kòrishingizni.
1👍1