Java
Контейнерди орнотуу үчүн кайсы класстарды ата аласыз?
Класс ичинде эки талаа жана алардын invariants (бирөө катуу кичине экинчиси), ар бири AtomicInteger менен корголгон болсо, бул көп иштөө коопсуздугу үчүн жетиштүүбү?
Көп кызматтар боюнча бөлүштүрүлгөн транзакцияны кантип камсыз кылуу керек?
Жобаларыңызда кезектерди колдонуу тажрыйбасыңыз барбы?
Коддо статикалык блоктун колдонулушунун мисалын келтире аласызбы?
Суроолордун ылдамдыгын жогорулатуу үчүн таблицаларды бөлүп-sharding кылуу керекпи?
Маалыматтарды сериалдаштыруу үчүн Protocol Buffer колдонуунун артыкчылыктары жана кемчиликтери эмнеде?
Springдеги @Transactional колдонуу өзгөчөлүктөрү. Транзакциялардын изоляция деңгээлдери.
Өзүңүздүн мурдагы жумуш ордуңузда өнүктүрүү процесси кандай уюштурулганын айтып бериңиз — бизнес муктаждыгынан чыгарууга чейин.
Spring Frameworkтеги @Transactional белгиси аркылуу транзакцияларды колдоо кандай ишке ашырылат?
Жоболоруңузда Spring Data жана Hibernate интеграциясы менен иштедиңизби?
Статикалык функциялар качан жана кандайча чакырылат: объектте же классында?
Маалыматтарды параллелдүү иштетүү үчүн Stream API-деги parallel ыкмасын колдонуу тажрыйбасыңыз барбы?
Стандарттык шарттарда Bean объектисинин көрүнүш чөйрөсү кандайча аныкталат?
Spring Boot тесттеринде @SpringBootTest белгисинин иштөө механизмин түшүндүрө аласызбы?
Тынчсыздандырган интеграция менен иштешүү үчүн кандай ыкмалар бар, ал бир мүнөттөн бир күнгө чейин жооп бербеши мүмкүн?
Примитивтүү маалымат түрлөрүн жана алардын обьекттик каптоолорун колдонууда аткаруу айырмасы кандай?
Төмөндөгү код үзінділеринин иштөө ылдамдыгын салыштырып көрүңүз, алар Integer массивинен int массивине жана тескерисинче элементтерди көчүрүп жатат, анын ичинде жаңы Integer объектилерин int маанилерден түзүү учурларын да камтыйт: ```java int SIZE = 1000000; int[] x = new int[SIZE]; Integer[] y = new Integer[SIZE]; for (;;) { for (int i = 0; i < SIZE; ++i) { x[i] = y[i]; } } ``` ```java int SIZE = 1000000; int[] x = new int[SIZE]; Integer[] y = new Integer[SIZE]; for (;;) { for (int i = 0; i < SIZE; ++i) { y[i] = x[i]; } } ``` ```java int SIZE = 1000000; int[] x = new int[SIZE]; Integer[] y = new Integer[SIZE]; for (;;) { for (int i = 0; i < SIZE; ++i) { y[i] = new Integer(x[i]); } } ``` Бул ыкмалардын иштөө ылдамдыгы жана жүрүм-туруму арасындагы айырмачылыктарды анализдеп, түшүндүрүңүз.
Жобаларыңызда жиптерди башкаруу үчүн ExecutorService компонентинин колдондуңузбу?
Javaда Stream агымдарын ишке ашырууда кандайча ката башкаруу жүргүзүлөт?