Loyihangizda barcha yechimlar va jarayonlar hujjatlashtirilgan va standartlashtirilganmi?
Java
Kafka'da qaysi hollarda va qaysi shartlarda ma'lumotlar yo'qotilishi mumkin?
Ulaning oxiriga element qo'shishda vaqt sarflariga nima ta'sir qiladi?
Alohida ro'yxatning o'rtasiga element qo'shish vaqt murakkabligi qanday, agar sizda to'ldirilgan massiv bo'lsa?
Gson nima ekanligini va u serializatsiya va deserializatsiya paytida maydonlar bilan qanday ishlashini tushuntirib bera olasizmi?
Qaysi server yoki platformada ilovani joylashtirish amalga oshirildi?
Kolleksiyani aylanib chiqayotganda o'zgartirsangiz, qanday muammolar yuzaga kelishi mumkin?
Java'da allaqachon yopilgan ma'lumot oqimlarini (Streams) qayta ishlatish mumkinmi?
Tizimlarda Kafka'dan foydalanishda qanday potentsial qiyinchiliklar va cheklovlar yuzaga kelishi mumkin?
Ilovalar ishlab chiqishda Spring framework bilan ishlash tajribangiz bormi?
Har bir 1000 element qo'shilganda ArrayList o'lchamini oshirishdagi qiyinchilik darajasi qanday?
Kafka arxitekturasi qanday komponentlarni o'z ichiga oladi va ular qanday o'zaro ta'sir qiladi?
Ma'lumotlar bilan ishlash samaradorligini qanday o'lchash va bu nima ta'sir qiladi?
Ikki tomonlama bog'langan ro'yxatning markaziy qismiga element qo'shish operatsiyasining qiyinchiligi qanday baholanadi?
Qaysi hollarda boshqa to'plamlardan ko'ra LinkedList ma'lumotlar tuzilmasini afzal ko'rish mumkin?
Hozirgi loyihani o'zgartirish imkoniyatini ko'rib chiqishga nima motivatsiya qiladi?
Stream API'da ishlatiladigan ikki turdagi metodlarni ayta olasizmi?
Ikki hisob o'rtasida mablag'larni o'tkazishni amalga oshiring. Bu ishlab chiqarish yechimi hisoblanadi Kiritish parametrlari: @param fromAccountId mablag'larni o'tkazayotgan foydalanuvchining yagona identifikatori @param toAccountId mablag'lar o'tkaziladigan foydalanuvchining yagona identifikatori @param amount o'tkazma miqdori. Musbat son public void transferMoney(Long fromAccountId, Long toAccountId, BigDecimal amount) { if (amount.compareTo(BigDecimal.ZERO) <= 0) { throw new RuntimeException("Miqdor > 0 bo'lishi kerak"); } if (fromAccountId.equals(toAccountId)) { throw new RuntimeException("Hisob bir xil bo'lishi mumkin emas"); } Long firstId = Math.min(fromAccountId, toAccountId); Long secondId = Math.max(fromAccountId, toAccountId); Account first = accountRepository.findByIdForUpdate(firstId) .orElseThrow(() -> new RuntimeException("Hisob topilmadi")); Account second = accountRepository.findByIdForUpdate(secondId) .orElseThrow(() -> new RuntimeException("Hisob topilmadi")); Account from = fromAccountId.equals(firstId) ? first : second; Account to = fromAccountId.equals(firstId) ? second : first; if (from.getBalance().compareTo(amount) < 0) { throw new RuntimeException("Balans 0 dan kam bo'lishi mumkin emas"); } from.setBalance(from.getBalance().subtract(amount)); to.setBalance(to.getBalance().add(amount)); accountRepository.save(to); accountRepository.save(from); }