☕️ Java BACKEND developers </>☕️
185 subscribers
89 photos
148 videos
34 files
212 links
Download Telegram
Forwarded from Jakhongir Soataliev
Ushbu maqolamiz Custom Class Loader-larga bagʻishlanadi
https://link.medium.com/IKenJk94lLb
Maqola Oʻzbek tilida
#java #jvm #class_loader

@Jakhongir_Soataliev
Forwarded from Otabek Ismoilov
Muvaffaqiyatli Git branching modeli

Bu qo'llanmada qanday qilib Git branchlar bilan ishlash va best practikalar ko'rsatilgan

Author: @programming_everyone
Forwarded from IT suhbat
#stack

Har bir Thread runtime ma'lumotlar saqlash uchun o'z Stack xotirasiga ega bo'ladi. Stack xotiraning ma'lum hajmi bo'ladi. Agar Thread Stack xotirasiga sig'maydigan darajada ko'p elementlar bilan ishlashga harakat qilsa, StackOverflow xatoligini keltirib chiqaradi.

Java oqimlari turli operatsion tizimlarda turlicha belgilangan hajmlarga ega Stacklar bilan ishlaydi. Misol uchun:
Windows IA32 — 64 KB
Windows IA64 — 320 KB
Windows x64 — 128 KB
Linux IA32 — 128 KB
Linux IA64 — 1024 KB
Linux x64 — 256 KB
Solaris/SPARC — 512 KB

Undan tashqari JVM ning ichki oqimlari bor. Misol uchun garbage collector, code generation oqimlari. Bular uchun hamma platformalarda hajm 256 KB qilib belgilangan.

Stack hajmini o'zgartirish uchun -Xss tanlovidan foydalanish mumkin. Misol uchun:
java -Xss:512k MyApplication


@it_suhbat
Forwarded from IT suhbat
#lock

Concurrency'da lock tushunchasining o'rni katta. Bugun shu haqida gaplashamiz.

Lock o'zbekchada qulf bo'ladi. Har bir obyekt lock'ga ega. Agar biz bir nechta oqimlar bilan ishlayotgan bo'lsak, murojaatlarni shu lock orqali cheklashimiz mumkin. Tasavvur qiling, obyekt — bir xona. Unga bitta eshikdan kiriladi va bu eshikning qulfi bor. Multithreading'da obyektni lock qilish deyilganda, ana shu xonaga bitta thread kirganidan keyin eshikni qulflash tushuniladi. Thread o'ziga tegishli ishni tugatib bo'lganidan keyin eshikning qulfini ochib(unlock), xonadan chiqib ketadi, navbatdagi thread'ga o'z o'rnini bo'shatadi.

Javada lock qilishning ikki xil yo'li bor.
Birinchisi — avtomat, synchronized kalit so'zi yordamida.

Ikkinchisi — qo'lda. Buning uchun bizga Lock interfeysi va uning merosxo'rlari yordamga keladi.
ReentrantLock yordamida biz kodning istalgan joyida obyektni lock qilamiz, try yordamida asosiy ishni bajaramiz va finally'da unlock qilib chiqib ketamiz.
Undan tashqari o'qish va yozish uchun ReentrantReadWriteLock'dan foydalanish mumkin. Bu o'z o'rnida 2 xil lock imkoniyatini beradi.

Read lock — bir paytning o'zida o'qish uchun xohlagancha oqim murojaat qilishi mumkin, faqatgina yozish imkoniyatini cheklaydi.
Write lock — yozish amaliyoti bo'layotgan vaqtda qolgan oqimlarga na yozish, na o'qish imkonini beradi.

In shaa Alloh, keyingi maqolada Atomic va Lock'ning bir-biridan farqi haqida gaplashamiz, tezliklarini solishtiramiz.

@it_suhbat
Forwarded from IT suhbat
#webclient #mutate

Aytaylik siz biror servisga so'rov yuborish uchun uning oldindan yozilgan tayyor kutubxonasidan foydalanayapsiz. Ko'pincha ichki loyihalarni o'zaro integratsiyalarida shunday tayyor kutubxonalar yoziladi, client sifatida. Shu joyda WebClient ishlatilgan bo'lsa, uning bean'i oldindan build qilib, e'lon qilingan bo'ladi.

Tasavvur qilaylik, sizga shu client kutubxona orqali yuborilgan so'rovlar yoki qabul qilib olingan javoblar logga chiqarilishi kerak bo'lib qoldi. Bean'ni qaytadan hosil qilmaysiz, bu ortiqcha ish. Mana shu joyda WebClient'ning mutate metodi yordamga keladi.

Bu metod orqali hosil qilingan bean'ni qaytadan o'zgartirsa bo'ladi. Tayyor WebClient'ga o'zingizning servisingizdan turib o'zgarishlar kiritsangiz bo'ladi. Mana shunday holatlarda bu metod o'zining hosil qilinishidan maqsadini ko'rsatadi :)

@it_suhbat
👍1
JIT (Just-In-Time) kompilatori
Java Virtual Machine (JVM) tomonidan ishlatiladigan texnikadir. JIT kompilyatori Java dasturlarining ish vaqtida ishlashi samaradorligini oshirish uchun mas'uldir.

Oddiy qilib aytganda, Java kodini avval bayt kodga (Java dasturi yozilganidan so'ng kompilyator tomonidan yaratiladigan vositaviy kod) kompilyatsiya qiladi. Bayt kod dastlab JVM tomonidan interpretatsiya qilinadi, ya'ni buyruq bajarilganda qadam-baqadam amalga oshiriladi. JIT kompilyatori esa, interpretatsiya jarayonini optimallashtiradi va ishlash vaqtida ko'p martalab ishlatiladigan bayt kod qismlarini mashina kodiga (native code) aylantiradi. Bu mashina kodi to'g'ridan-to'g'ri protsessor tomonidan bajarilishi mumkin, bu esa tezlikni sezilarli darajada oshiradi.

JIT kompilyatori quyidagi afzalliklarni beradi:

Yuqori tezlik: Bayt kodni native code ga o'girib , dasturlarni ko'proq samarali bajaradi.

Ish vaqtida optimallashtirish: JIT kodni kompilyatsiya qilishda uni ishlash vaqtida qo'shimcha tahlil qilib, optimallashtirilgan kod yaratadi.
👍1
#Savol : Javada casting nima?

#Javob : Javada casting bitta ma'lumot turini boshqasiga o'zgartirish jarayonidir. Kengaytiruvchi (widening) va toraytiruvchi (narrowing) casting mavjud. Kengaytiruvchi casting avtomatik ravishda amalga oshiriladi, toraytiruvchi casting esa qo'lda bajariladi.

Kichik turdan kattaroq turga avtomatik casting:

byte → short → int → long → float → double

Katta turdan kichik turga casting quyidagi ko'rinishda bo'ladi:

double → float → long → int → short → byte
☄️“15 mln kuzatuvchisi bor YouTube kanali egasining telefonini buzib, kanal ma’murligini qo‘lga kiritishdi – shartli ravishda, albatta”
Yuqoridagi ma’lumotlar Dr. Algorithm Telegram kanalida e’lon qilingach turli muhokamalarga sabab bo‘ldi.
Asosiy ofisi Londonda joylashgan Moneff kompaniyasi IT-menejeri Saidolim Jo‘rayev yozyapti:
“Apple asoschilari avval telefon tizimini buzishgani (hack) qilishganini bilarmidingiz?
• Rim Papasiga tekinga telefon qilib, ertalab uyg‘otishganinichi?
• Dubay shayxining qizi Shayx Latifani telefon orqali ummon markazidan topishgani, GPS‘siz;
• SMS orqali keladigan bir martalik kalit so‘z – OTP (One Time Password)larni ham bilish mumkinligi;
• OTP orqali Telegram‘ga kirishga 15 soniya yetarli ekani;
• Python‘da yozilgan kod orqali sizga kelayotgan qo‘ng‘iroqlarni boshqa “qabul qilishi” mumkinligi;
• GPS‘siz qachon va qayerga borganingizni bilish qiyin emamligi;
Xullas, 15 million obunachisi bor YouTube kanalini buzib kirishdi – xavfsizlik tobora katta ahamiyat kasb etib bormoqda ...


🌐 Davomini o‘qish👉 https://us.uz/uz/news/post-199
📱 Suhbatni tomosha qilish👉 https://youtu.be/F5lt7riGD3c
☕️ Java BACKEND developers </>☕️
1695993267428.png
𝗪𝗵𝗲𝗻 𝘁𝗼 𝘀𝗲𝗹𝗲𝗰𝘁 𝗗𝗲𝘀𝗶𝗴𝗻 𝗣𝗮𝘁𝘁𝗲𝗿𝗻𝐬?

Choosing the correct design pattern in software engineering is critical to practical problem-solving.
This post will try to simplify the process, helping you decide between patterns based on specific needs.
To select a pattern, we must first go through the problem identification. If the problem is related to:
🔸 Object Creation? → Creational Patterns
🔸 Object Assembly? → Structural Patterns
🔸 Object Interactions? → Behavioral Patterns
1. Singleton: Ensures only one instance exists.
2. Factory Method: Delegates object instantiation to subclasses.
3. Abstract Factory: Creates related object families without specifying their concrete classes.
4. Prototype: Clones objects for a prototypical instance.
5. Builder: Constructs complex objects step by step.
6. Adapter: Bridges incompatible interfaces.
7. Bridge: Separates abstraction from implementation.
8. Composite: Treats single and composite objects uniformly.
9. Decorator: Adds behaviors to objects dynamically.
10. Facade: Simplifies complex system interfaces.
11. Flyweight: Shares objects to reduce memory.
12. Proxy: Controls object access.
13. Observer: Notifies changes to multiple objects.
14. Strategy: Encapsulates interchangeable algorithms.
15. Command: Encapsulates a request as an object.
16. State: Changes object behavior with internal state.
17. Visitor: Adds operations to object structures without modifying them.
18. Memento: Captures and restores object states externally.
19. Iterator: Sequentially accesses elements of a collection.
20. Mediator: Centralizes complex communications.
21. Chain of Responsibility: Passes requests along a chain of handlers.
22. Template Method: Defines the skeleton of an algorithm.
Forwarded from IT suhbat
#Collections

Yuqoridagi rasmda Javadagi deyarli har bir ma'lumot tuzilmasini qaysi vaziyatda tanlashlik uchun diagramma ishlab chiqilgan va juda tushunarli.

Manba: Linkedin.com dan olindi.

@it_suhbat
👍1