Learning Java Uz 🇺🇿
13 subscribers
1 photo
1 file
5 links
Bu kanal Java dasturlash tilini o'rganuvchilar uchun
Kanalga asosan Java va Spring frameworkiga oid bilimlar joylanib boriladi
Download Telegram
📚 Java'da Compound Assignment Operatorlari 📚

🖇 Java’da oddiy = operatoridan tashqari, birikma tayinlash operatorlari ham mavjud bo'lib, ular arifmetik yoki mantiqiy amallarni bajarish bilan birga natijani o'zgartiruvchi o‘zgaruvchiga saqlash imkonini beradi. Odatda, bu operatorlar kodni qisqartirish va qulay qilish uchun ishlatiladi.

💡 Misollar va Izohlar:
Qo'shish :
int a = 19;
a += 5;

O'ng tomondagi qiymatni chap tomondagi o‘zgaruvchiga qo‘shadi va natijani o‘zgaruvchiga saqlaydi.


Ayirish :
int b = 19;
b -= 2;

O‘ng tomondagi qiymatni chap tomondan ayiradi va natijani saqlaydi.


Ko'paytirish :
int c = 7;
c *= 9;

Chap tomondagi qiymatni o‘ng tomondagi qiymatga ko‘paytiradi va natijani saqlaydi.


Bo'lish :
int d = 18;
d /= 3;

Chap tomondagi qiymatni o‘ng tomondagi qiymatga bo‘ladi va natijani saqlaydi.

🔍 Masalan:
int camel = 2, giraffe = 3;
camel = camel * giraffe; // Oddiy tayinlash operatori bilan
camel *= giraffe; // Compound Assignment operatori bilan


Foydalari:
1. Kod qisqaradi: Birikma operatorlar kodni sodda va qisqa ko'rinishga keltiradi.
2.Kastingni osonlashtiradi: Agar turli turdagi (masalan, int va long) qiymatlar bilan ishlayotgan bo‘lsangiz, birikma operatorlari natijani avtomatik ravishda kasting qilishi mumkin.

🔍 Masalan:
long goat = 10;
int sheep = 5;
sheep = sheep * goat;
// Xato: int o'zgaruvchiga long qiymatni tayinlab bo'lmaydi


Yuqoridagi qatorni to‘g‘irlash uchun (int) ko‘rinishida qo'lda kasting qilish kerak. Ammo birikma operator yordamida kodni osonroq yozish mumkin:
long goat = 10;
int sheep = 5;
sheep *= goat; // Muammo hal qilindi!


Bu yerda sheep avtomatik ravishda long turiga kasting qilinadi va natija int turiga qaytariladi. Shu sababli, *=, +=, va boshqa birikma operatorlari kodni soddalashtiradi va xatoliklardan himoya qiladi !
🔥2👍1
"equals" vs "==" haqida qisqacha tushuncha 🎯

💡 Java dasturlash tilida ko‘pincha equals va ==
operatorlarining farqini tushunish muhimdir.
Quyida ularning asosiy farqlari
haqida tushuncha berib o‘tamiz:

📚 "==" operatori 🧠
🔸 Ma’nosi: Bu operator obyektlarning xotira
manzilini (reference) solishtiradi. 🗂
🔸 Ishlash prinsipi: Agar ikki obyekt bir xil xotira
manziliga ega bo‘lsa, == true qaytaradi. ✔️
String a = "salom";
String b = "salom";
System.out.println(a == b);
//true (agar String pool ishlatilsa)

📌 Natija: Xotira manzillari bir xil bo‘lganda true.

📚 "equals" metodi 📏
🔸 Ma’nosi: Bu obyektlarning qiymatini (value)
solishtiradi. 🧩
🔸 Ishlash prinsipi: Agar ikki obyekt bir xil
qiymatga ega bo‘lsa, equals true qaytaradi. ✔️
String a = new String("salom");
String b = new String("salom");
System.out.println(a.equals(b)); // true
System.out.println(a == b); // false

📌 Natija: Qiymatlar bir xil bo‘lsa, true, lekin
xotira manzillari farqli bo‘lgani uchun == false.

Qachon "equals", qachon "==" ishlatiladi? 🤔
"==" operatori:
🔸 Primitiiv turlar (int, char, boolean, va hokazo)
yoki obyektlarning xotira manzillarini
solishtirish kerak bo‘lganda ishlatiladi.
"equals" metodi:
🔸 Obyektlarning qiymatlarini solishtirishda ishlatiladi
(masalan, String, Integer va boshqa obyektlar).

🚨 Esda tuting !
Agar equals metodini foydalanuvchi o‘zi yozsa,
obyektning qiymatini solishtirishga
moslashtirish mumkin:

🔑 Xulosa:
Primitiiv turlar uchun har doim "==" dan foydalaning.
Obyektlar uchun esa "equals" metodini ishlating.

💡 Kod yozib mashq qiling va bilimlaringizni mustahkamlang! 💻
🎉 Tushungan bo‘lsangiz, 👍 bosing va do‘stlaringiz bilan ulashing! 😊


Kanalni kuzatib boring:
t.me/strong_java
👍2🔥21🤯1
Spring Core asoslari
Spring Core – Spring Frameworkning yuragi. Bu yerda DI va IoC asosiy tushunchalar.

📌 Bilishingiz kerak bo‘lgan mavzular:
▶️ 1. IoC (Inversion of Control) va DI (Dependency Injection)
Bean nima?

Spring konteyner nima?

Constructor-based DI

Setter-based DI

Field-based DI (kam ishlatiladi, lekin bilish kerak)

@Component, @Service, @Repository, @Controller annotatsiyalari

@Autowired, @Qualifier, @Primary annotatsiyalari

▶️ 2. ApplicationContext vs BeanFactory
ApplicationContext qanday ishlaydi

Bean lifecycle: init – destroy

@PostConstruct, @PreDestroy

▶️ 3. Configuration
@Configuration, @Bean

Java-based konfiguratsiya

XML konfiguratsiyaga qisqacha nazar (ko‘p ishlatilmaydi, lekin tushunchasi kerak)

▶️ 4. Scope
Singleton, Prototype, Request, Session scope farqlari

▶️ 5. Profiles
@Profile annotatsiyasi yordamida muhitga qarab konfiguratsiya qilish

Kanalni kuzatib boring:
t.me/strong_java
Please open Telegram to view this post
VIEW IN TELEGRAM
#JDK #JRE #JVM
👨‍💻

Kanalni kuzatib boring:
t.me/strong_java
Please open Telegram to view this post
VIEW IN TELEGRAM
#minio #file_server

Minio local serverni o'rnatish

1. Minioning community edition server faylini yuklab oling
2. Bu faylni C:\minio papkasiga saqlang
3. Keyin quyidagi buyruqni bajaring :
cd C:\minio
.\minio.exe server C:\minio-data

4. MinIO lokal server sifatida ishga tushadi
5. Web interfeysga kirish: http://localhost:9000
6. Login:
Access Key: *****
Secret Key: ******

@strong_java
2
Java’ning "Write Once, Run Anywhere" tamoyilining sababi:

Java Virtual Machine (JVM):

1.Java dasturlari to‘g‘ridan-to‘g‘ri kompyuterning operatsion tizimida emas, balki Java Virtual Machine (JVM) deb ataladigan virtual mashinada ishlaydi. Siz Java kodini yozganingizda, u .java faylidan .class fayliga (bytecode) kompilyatsiya qilinadi. Bu bytecode platformadan mustaqil bo‘lib, har qanday operatsion tizimda (Windows, Linux, macOS) yoki qurilmada JVM bo‘lsa, ishlay oladi.
Bytecode va platforma mustaqilligi:

2.Java’da yozilgan kod bir marta kompilyatsiya qilinganda, hosil bo‘lgan bytecode har xil qurilmalar va operatsion tizimlarda bir xil tarzda ishlaydi. JVM har bir platforma uchun o‘ziga xos bo‘lib, bytecode’ni o‘sha platformaga moslashtirib, dasturni ishga tushiradi. Bu shuni anglatadiki, dasturchi har bir operatsion tizim uchun alohida kod yozishi shart emas.
Standart kutubxonalar:

3.Java’ning standart kutubxonalari (Java Standard Edition – Java SE) har qanday platformada bir xil ishlaydi. Bu dasturlarni turli muhitlarda sinovdan o‘tkazmasdan ishlatish imkonini beradi.
🔥1
⚡️ Functional Interface bo‘yicha intervyu savollar va javoblar
1. Functional interface nima?

👉 Functional interface — bu faqat bitta abstract method’ga ega bo‘lgan interface. U lambda expression yoki method reference bilan ishlash imkonini beradi.

2. Functional interface’da nechta method bo‘lishi mumkin?

👉 Faqat bitta abstract method bo‘lishi shart.
Lekin bir nechta default va static methodlar bo‘lishi mumkin.

3. Functional interface misol keltiring.
@FunctionalInterface
public interface Calculator {
int calculate(int a, int b);
}

4. @FunctionalInterface annotatsiyasi majburiy bormi?

👉 Yo‘q, majburiy emas. Lekin qo‘yilsa, compiler tekshiradi va agar ko‘proq abstract method yozib yuborsangiz, xato beradi.

5. Functional interface va lambda expression qanday bog‘langan?

👉 Lambda expression aslida functional interface’ning abstract methodini implement qiladi.

Calculator sum = (a, b) -> a + b;
System.out.println(sum.calculate(5, 3)); // 8

6. Functional interface’da default method bo‘lishi mumkinmi?

👉 Ha, bo‘lishi mumkin, lekin ular abstract method hisoblanmaydi.

@FunctionalInterface
interface MyFunc {
void run();
default void log() {
System.out.println("Logging...");
}
}

7. Java’da tayyor functional interface’lar bormi?

👉 Ha, java.util.function paketida juda ko‘p tayyor functional interface’lar mavjud:

Predicate<T> → boolean qaytaradi

Function<T,R> → qiymatni olib boshqa qiymat qaytaradi

Consumer<T> → qiymatni qabul qiladi, lekin hech narsa qaytarmaydi

Supplier<T> → parametr olmaydi, qiymat qaytaradi

8. Method reference nima va functional interface bilan qanday ishlaydi?

👉 Method reference — mavjud methodni lambda o‘rnida ishlatish.

Consumer<String> printer = System.out::println;
printer.accept("Hello World");


Bu yerda System.out::println — bu Consumer<String>’ning accept methodini implement qiladi.

9. Functional interface faqat Java 8 da ishlaydimi?

👉 Yo‘q, functional interface’lar Java 8 dan avval ham bor edi (masalan Runnable, Callable). Faqat Java 8 dan boshlab ular lambda expression bilan ishlashni qo‘llab-quvvatladi.

10. Runnable va Callable functional interface hisoblanadimi?

👉 Ha.

Runnable → faqat void run() methodiga ega.

Callable → faqat V call() methodiga ega.
Predicate<T> → boolean qaytaradi

Function<T,R> → bitta qiymatni olib, boshqa qiymat qaytaradi

Supplier<T> → parametr olmaydi, faqat qiymat qaytaradi

Consumer<T> → qiymat oladi, lekin hech narsa qaytarmaydi
1. Optional nima?

👉 Optional — bu Java 8 da qo‘shilgan container (wrapper) bo‘lib, qiymat mavjud (present) yoki mavjud emas (empty) holatlarni ifodalaydi. NullPointerException oldini olish uchun ishlatiladi.

2. Optional qanday yaratiladi?

👉 3 usuli bor:

Optional.of(value) – qiymat null emas bo‘lsa.

Optional.ofNullable(value) – qiymat null bo‘lishi ham mumkin.

Optional.empty() – bo‘sh Optional.

3. Optional dan qiymatni qanday olish mumkin?

👉 get() orqali, lekin faqat qiymat borligiga amin bo‘lsangiz. Odatda orElse(), orElseGet(), yoki ifPresent() ishlatiladi.

4. orElse() va orElseGet() farqi nima?

👉 orElse() har doim parametrdagi obyektni yaratadi, hatto ishlatilmasa ham.
👉 orElseGet() esa Supplier orqali faqat kerak bo‘lganda qiymat yaratadi.

5. isPresent() va ifPresent() farqi nima?

👉 isPresent() boolean qaytaradi va ko‘pincha if bilan ishlatiladi.
👉 ifPresent() esa qiymat mavjud bo‘lsa, berilgan lambda’ni ishga tushiradi.

6. Optional.map() va Optional.flatMap() farqi nima?

👉 map() qiymatni boshqa turga o‘zgartiradi (Optional<T> → Optional<U>).
👉 flatMap() esa ichida Optional qaytaradigan function bilan ishlaydi va nested Optional’ni tekislab yuboradi.

7. Optional.orElseThrow() qachon ishlatiladi?

👉 Qiymat mavjud bo‘lmasa, exception tashlash uchun.

userOptional.orElseThrow(() -> new UserNotFoundException());

8. Optional qayerda ishlatilmasligi kerak?

👉 Entity field’larida (masalan, JPA @Entity ichida) ishlatish tavsiya etilmaydi. Chunki ORM mapping va serialization’da muammolar tug‘diradi.

9. Optional faqat Java 8 da ishlatiladimi?

👉 Yo‘q, keyingi versiyalarda ham mavjud. Hatto Stream API va CompletableFuture kabi ko‘plab Java kutubxonalarida ham keng qo‘llanadi.

10. Optional oddiy null tekshirishdan farqi nima?

👉 if (x != null) imperativ yondashuv bo‘lsa, Optional deklarativ uslubda ishlaydi (map(), filter(), orElse() kabi metodlar orqali), kodni toza va o‘qilishi oson qiladi.

⚡️ Masalan:

// Oddiy null tekshirish
if (user != null && user.getEmail() != null) {
send(user.getEmail());
}

// Optional bilan
Optional.ofNullable(user)
.map(User::getEmail)
.ifPresent(this::send);