Java Portal | ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΠΊΠ°Π½Π°Π»Ρ ΠΈ ΠΏΠΎΠ³ΡΡΠ·ΠΈΡΠ΅ΡΡ Π² ΠΌΠΈΡ Π΄Π»Ρ Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π‘Π²ΡΠ·Ρ: @devmangx Π ΠΠ: https://clck.ru/3H4WUg
Ko'proq ko'rsatishπ Telegram kanali Java Portal | ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ analitikasi
Java Portal | ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (@java_iibrary) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 11 912 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 10 465-o'rinni va Rossiya mintaqasida 53 914-o'rinni egallagan.
π Auditoriya koβrsatkichlari va dinamika
Π½Π΅Π²ΡΠ΄ΠΎΠΌΠΎ sanasidan buyon loyiha tez oβsib, 11 912 obunachiga ega boβldi.
30 Oktabr, 2026 dagi oxirgi maβlumotlarga koβra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni 290 ga, soβnggi 24 soatda esa -1 ga oβzgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya oβrtacha 10.90% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 6.28% ini tashkil etuvchi reaksiyalarni toβplaydi.
- Post qamrovi: Har bir post oβrtacha 1 299 marta koβriladi; birinchi sutkada odatda 748 ta koβrish yigβiladi.
- Reaksiyalar va oβzaro taβsir: Auditoriya faol: har bir postga oβrtacha 3 ta reaksiya keladi.
- Tematik yoβnalishlar: Kontent boot, string, void, Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, resttemplate kabi asosiy mavzularga jamlangan.
π Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida taβriflaydi:
βΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΠΊΠ°Π½Π°Π»Ρ ΠΈ ΠΏΠΎΠ³ΡΡΠ·ΠΈΡΠ΅ΡΡ Π² ΠΌΠΈΡ Π΄Π»Ρ Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
Π‘Π²ΡΠ·Ρ: @devmangx
Π ΠΠ: https://clck.ru/3H4WUgβ
Yuqori yangilanish chastotasi (oxirgi maβlumot 31 Oktabr, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli boβlib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim taβsir nuqtasiga aylantirishini koβrsatadi.
@Component. ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ
β’ @Service. Π‘Π»ΠΎΠΉ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ
β’ @Repository. ΠΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ
β’ @Controller. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π·Π°ΠΏΡΠΎΡΠΎΠ²
β’ @Autowired. ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ
β’ @Configuration. ΠΠ»Π°ΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ
β’ @Bean. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±ΠΈΠ½Π°
πΈSpring Boot Basics
β’ Auto-Configuration. ΠΠ²ΡΠΎΠ½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ
β’ Spring Boot Starters. ΠΡΠ΅Π΄Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π½Π°Π±ΠΎΡΡ
β’ Application Properties. properties ΠΈ YAML
β’ @SpringBootApplication. Π’ΠΎΡΠΊΠ° Π²Ρ
ΠΎΠ΄Π°
β’ Embedded Servers. Tomcat, Jetty, Undertow
β’ Spring Boot CLI. ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ
πΈSpring Web MVC
β’ DispatcherServlet. Π€ΡΠΎΠ½Ρ-ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ
β’ @RequestMapping. ΠΠ°ΡΡΡΡΡΡ
β’ @GetMapping ΠΈ @PostMapping. HTTP-Ρ
Π΅Π½Π΄Π»Π΅ΡΡ
β’ @RequestParam. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π·Π°ΠΏΡΠΎΡΠ°
β’ @PathVariable. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΡΡΠΈ
β’ Model and View. Π¨Π°Π±Π»ΠΎΠ½Ρ MVC
πΈREST APIs
β’ @RestController. ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ REST
β’ @ResponseBody. Π’Π΅Π»ΠΎ ΠΎΡΠ²Π΅ΡΠ°
β’ HTTP Status Codes.
β’ Content Negotiation. Π€ΠΎΡΠΌΠ°ΡΡ JSON ΠΈ XML
β’ Exception Handling. @ControllerAdvice ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ
β’ CORS. ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
πΈSpring Data JPA
β’ JPA Entities. @Entity, @Table, @Id, Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ
β’ Repository Pattern. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ
β’ JpaRepository. CRUD-ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
β’ Query Methods. ΠΠ΅ΡΠΎΠ΄Ρ-Π·Π°ΠΏΡΠΎΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ
β’ @Query Annotation. JPQL ΠΈ Π½Π°ΡΠΈΠ²Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ
β’ Relationships. @OneToMany, @ManyToOne, @ManyToMany
β’ Pagination ΠΈ Sorting. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΈΡ ΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ
πΈSpring Security
β’ Authentication. ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
β’ Authorization. ΠΠΎΠ½ΡΡΠΎΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΏΠΎ ΡΠΎΠ»ΡΠΌ
β’ Security Configuration. Π€ΠΈΠ»ΡΡΡΡ ΠΈ ΡΠ΅ΠΏΠΎΡΠΊΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ
β’ Password Encoding. ΠΠ½ΠΊΠΎΠ΄Π΅ΡΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ
β’ JWT Tokens. Π‘ΡΠ°ΡΠ»Π΅Ρ-Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ
β’ OAuth2. ΠΠ½Π΅ΡΠ½ΠΈΠ΅ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ
β’ Method Security. @PreAuthorize, @Secured
πΈAspect-Oriented Programming
β’ Cross-cutting Concerns. ΠΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ, ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
β’ @Aspect. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π°ΡΠΏΠ΅ΠΊΡΠΎΠ²
β’ Pointcuts. Π’ΠΎΡΠΊΠΈ ΡΡΠ΅Π·Π°
β’ Advice Types. @Before, @After, @Around
β’ JoinPoints. ΠΠ΅ΡΡΠ°, ΠΊΡΠ΄Π° Π²ΠΏΠ»Π΅ΡΠ°Π΅ΡΡΡ Π°ΡΠΏΠ΅ΠΊΡ
πΈTesting
β’ @SpringBootTest. ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ΅ΡΡΡ
β’ @WebMvcTest. Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π΅Π±-ΡΠ»ΠΎΡ
β’ @DataJpaTest. Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ JPA
β’ MockMvc. Π’Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² Π±Π΅Π· ΡΠ΅ΡΠ²Π΅ΡΠ°
β’ @MockBean. ΠΠ°Π³Π»ΡΡΠΊΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Spring
β’ TestRestTemplate. Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ REST
πΈSpring Actuator
β’ Health Endpoints. ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ
β’ Metrics. ΠΠ΅ΡΡΠΈΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
β’ Custom Endpoints. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠ½Π΄ΠΏΠΎΠΈΠ½ΡΡ
β’ Info Endpoint. ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ±ΠΎΡΠΊΠ΅
β’ Environment Properties. ΠΡΠΎΡΠΌΠΎΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ
πΈMicroservices
β’ Spring Cloud. ΠΠ°Π±ΠΎΡ Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ²
β’ Service Discovery. Eureka ΠΈ Consul
β’ API Gateway. Spring Cloud Gateway
β’ Circuit Breaker. Resilience4j ΠΈ Hystrix
β’ Configuration Server. Π¦Π΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
β’ Distributed Tracing. Sleuth ΠΈ Zipkin
πΈAdvanced Topics
β’ Reactive Programming. Project Reactor
β’ Spring Native. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π² native-image
β’ Custom Auto-Configuration. Π‘Π²ΠΎΠΈ Π°Π²ΡΠΎΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ
β’ Event-Driven Architecture. Π‘ΠΎΠ±ΡΡΠΈΠΉΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ
β’ Caching. ΠΠ±ΡΡΡΠ°ΠΊΡΠΈΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
β’ Profiles. ΠΡΠΎΡΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ
πΈDeployment
β’ Docker Containerization. ΠΠ±ΡΠ°Π·Ρ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ
β’ Kubernetes Deployment. ΠΠ°Π½ΠΈΡΠ΅ΡΡΡ ΠΈ Helm
β’ Cloud Platforms. AWS, GCP, Azure
β’ CI/CD Pipelines. Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ΅Π»ΠΈΠ·ΠΎΠ²
β’ Production Monitoring. APM ΠΈ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΡΡΡ
πΈBest Practices
β’ Project Structure. Π‘Π»ΠΎΠΈ ΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΡ
β’ Configuration Management. ΠΠ½Π΅ΡΠ½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΠΈ
β’ Error Handling. ΠΠ»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ
β’ Logging. SLF4J ΠΈ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π»ΠΎΠ³ΠΈ
β’ Performance Optimization. ΠΡΡ, ΠΏΡΠ» ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, lazy-loading
β’ Security Hardening. ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π°
π Java PortalDeque).
ΠΡΠΎΠ΄ΡΡΠ΅ΡΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ put ΠΆΠ΄ΡΡ, Π΅ΡΠ»ΠΈ Π±ΡΡΠ΅Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½.
ΠΠΎΠ½ΡΡΡΠΌΠ΅ΡΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ take ΠΆΠ΄ΡΡ, Π΅ΡΠ»ΠΈ Π±ΡΡΠ΅Ρ ΠΏΡΡΡ.
ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠ΄ΡΡΠ΅Ρ ΠΊΠ»Π°Π΄ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΎΠ½ ΡΠΈΠ³Π½Π°Π»ΠΈΡ ΠΎΠΆΠΈΠ΄Π°ΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΡΠΌΠ΅ΡΡ.
ΠΠΎΠ³Π΄Π° ΠΊΠΎΠ½ΡΡΡΠΌΠ΅Ρ Π·Π°Π±ΠΈΡΠ°Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΎΠ½ ΡΠΈΠ³Π½Π°Π»ΠΈΡ ΠΎΠΆΠΈΠ΄Π°ΡΡΠ΅ΠΌΡ ΠΏΡΠΎΠ΄ΡΡΠ΅ΡΡ.
ΠΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π²ΡΠ΅Π³Π΄Π° Π΄Π΅Π»Π°Π΅ΡΡΡ Π²Π½ΡΡΡΠΈ while, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΎΠΊ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ±ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΠ²Π΅ΡΠΈΠ» ΡΡΠ»ΠΎΠ²ΠΈΠ΅.
Π€Π»Π°Π³ close Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ Π½ΠΎΠ²ΡΠ΅ Π²ΡΡΠ°Π²ΠΊΠΈ ΠΈ Π±ΡΠ΄ΠΈΡ Π²ΡΠ΅Ρ
, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ Π·Π°Π²Π΅ΡΡΠΈΠ»ΠΈΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ.
ΠΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ReentrantLock. ΠΡΠΎ ΠΊΠ°ΠΊ synchronized, ΡΠΎΠ»ΡΠΊΠΎ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΠΌ. ΠΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Ρ
Π²Π°ΡΠΈΡΡ Π΅Π³ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π±Π΅Π· Π΄Π΅Π΄Π»ΠΎΠΊΠ°. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Condition-ΠΎΠ±ΡΠ΅ΠΊΡΡ β ΡΡΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ, ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΊ Π·Π°ΠΌΠΊΡ. ΠΠ΄Π΅ΡΡ ΡΠ΄ΠΎΠ±Π½ΠΎ Π·Π°Π²Π΅ΡΡΠΈ Π΄Π²Π΅: notFull ΠΈ notEmpty, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄ΡΡΠ΅ΡΡ ΠΈ ΠΊΠΎΠ½ΡΡΡΠΌΠ΅ΡΡ ΠΆΠ΄Π°Π»ΠΈ ΠΈ ΡΠΈΠ³Π½Π°Π»ΠΈΠ»ΠΈ ΡΠΎΡΠ½ΠΎ ΠΏΠΎ ΡΠΈΡΡΠ°ΡΠΈΠΈ.
π Java Portal== Π² Java ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ ΠΎΠ΄Π½ΠΈΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Integer, Π° Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ
β Π½Π΅Ρ?
ΠΠ΅Π»ΠΎ Π² ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Integer Caching.
JVM ΠΊΡΡΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ Integer Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ -128 Π΄ΠΎ 127. ΠΠΎΠ³Π΄Π° Π²Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΡΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅, Java ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ· ΠΊΡΡΠ°. ΠΠΎΡΡΠΎΠΌΡ Π΄Π²Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ Π² ΡΡΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΡΡΡΠ»ΠΊΡ, ΠΈ == Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true
ΠΠΎ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ 128 ΠΈΠ»ΠΈ 1000, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. Π‘ΡΡΠ»ΠΊΠΈ ΡΠ°Π·Π½ΡΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ == Π²Π΅ΡΠ½Π΅Ρ false, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ.
ΠΠ»Π°Π²Π½ΠΎΠ΅, ΡΡΠΎ ΡΡΠΎΠΈΡ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ: == ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π° Π½Π΅ ΡΠ°ΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ ΡΡΠ°Π²Π½ΠΈΡΡ ΡΠΈΡΠ»Π°, Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ .equals()
ΠΡΠΎΡ ΡΡΡΠΊ Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ Byte, Short, Character (Π΄ΠΎ 127) ΠΈ Long (ΠΎΡ -128 Π΄ΠΎ 127)
π Java Portalacquire, Π·Π°Π±ΠΈΡΠ°Π΅Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΈ Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ Π½Π΅Ρ β ΠΆΠ΄ΡΡ. ΠΠΎΡΠΎΠΊ, Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ release, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΡΠ΅ΠΌ Π±ΡΠ΄ΠΈΡ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ.
ΠΡ ΡΠΎΠ·Π΄Π°ΡΠΌ Π΄Π²Π° ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°: ΠΎΠ΄ΠΈΠ½ Π΄Π»Ρ Π½Π΅ΡΡΡΠ½ΡΡ
, Π΄ΡΡΠ³ΠΎΠΉ Π΄Π»Ρ ΡΡΡΠ½ΡΡ
.
Π‘Π΅ΠΌΠ°ΡΠΎΡ Π΄Π»Ρ Π½Π΅ΡΡΡΠ½ΡΡ
ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ 1 ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠ³ ΡΡΠ°ΡΡΠΎΠ²Π°ΡΡ, Π° Π΄Π»Ρ ΡΡΡΠ½ΡΡ
β 0, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΆΠ΄Π°Π». ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π½Π΅ΡΡΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ ΡΠΈΡΠ»ΠΎ, ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ release Π΄Π»Ρ ΡΡΡΠ½ΠΎΠ³ΠΎ. Π§ΡΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π΄Π΅Π»Π°Π΅Ρ acquire, ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ, ΠΈ ΠΎΡΠ΄Π°ΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π½Π΅ΡΡΡΠ½ΠΎΠΌΡ.
Π’Π°ΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΡΠΎΡΠ½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ 1 2 3 4 β¦ Π±Π΅Π· Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ, Π±Π΅Π· sleep ΠΈ Π±Π΅Π· Π³ΠΎΠ½ΠΎΠΊ.
π Java Portalenum, Π° Π½Π΅ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ - - ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ°ΠΌ ΠΏΠΎΠΉΠΌΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ.
- ΠΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΠΉ ΠΏΠΎΡΠΎΠΊΠΈ Π²ΡΡΡΠ½ΡΡ - - ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉ executors.
- ΠΡΠ΅Π³Π΄Π° Π·Π°ΠΊΡΡΠ²Π°ΠΉ JDBC-ΡΠ΅ΡΡΡΡΡ - - ΠΈΠ½Π°ΡΠ΅ Π±Π°Π·Π° ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π±Π΅Π· ΠΊΠΎΠ½Π½Π΅ΠΊΡΠ΅Π½ΠΎΠ².
- ΠΠ΅ Π³Π»ΠΎΡΠ°ΠΉ checked-ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ - - Ρ
ΠΎΡΡ Π±Ρ Π»ΠΎΠ³ΠΈΡΡΠΉ ΠΈΡ
.
- ΠΠ΅ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠΉ InterruptedException - - ΡΡΠΎ Π»ΠΎΠΌΠ°Π΅Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ².
- ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉ SimpleDateFormat Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ - - ΠΎΠ½ Π½Π΅ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ΅Π½.
- ΠΡΡΠΈΡΡΠΉ prepared statements - - ΠΏΠ°ΡΡΠΈΡΡ SQL ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄ΠΎΡΠΎΠ³ΠΎ.
- ΠΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ Π·Π°ΡΠΈΡΠ°ΡΡ ΡΠ΅Π±Ρ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ - - Π½Π΅ ΡΠ±ΠΈΠ²Π°ΠΉ ΠΈΡ
, ΠΏΡΠΈΠ²ΠΎΠ΄Ρ ΠΊ Object
π Java PortalSerializable, ΠΈΠΌΠ΅Π΅Ρ serialVersionUID. ΠΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π²Π΅ΡΡΠΈΠΈ. ΠΡΠΈ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Java ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Π»ΠΈ UID Π² Π΄Π°Π½Π½ΡΡ
Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π² ΠΊΠ»Π°ΡΡΠ΅. ΠΡΠ»ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ β ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ. ΠΡΠ»ΠΈ Π½Π΅Ρ β Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ InvalidClassException.
Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΊΠ»Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠΆΠ΅ Π±ΡΠ»ΠΈ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ?
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΏΠΎΠ»Π΅ β ΡΡΠ°ΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (0, null, false).
- Π£Π΄Π°Π»Π΅Π½ΠΎ ΠΏΠΎΠ»Π΅ β ΡΡΠ°ΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΡΡΡΡΡ.
- ΠΠ·ΠΌΠ΅Π½ΡΠ½ ΡΠΈΠΏ ΠΏΠΎΠ»Ρ β Π»ΠΎΠΌΠ°Π΅ΡΡΡ.
- ΠΠ·ΠΌΠ΅Π½ΡΠ½ UID β Π»ΠΎΠΌΠ°Π΅ΡΡΡ.
ΠΡΠ»ΠΈ UID Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ²Π½ΠΎ, JVM ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π΅Π³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΄Π΅ΡΠ°Π»Π΅ΠΉ ΠΊΠ»Π°ΡΡΠ° (ΠΏΠΎΠ»Ρ, ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ). ΠΠ°ΠΆΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ UID ΠΈ ΡΠ΄Π΅Π»Π°Π΅Ρ ΡΡΠ°ΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌΠΈ.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π²ΡΠ΅Π³Π΄Π° Π·Π°Π΄Π°Π²Π°ΡΡ serialVersionUID Π²ΡΡΡΠ½ΡΡ. ΠΡΠΎ Π΄Π°ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΡ ΠΈ ΠΈΠ·Π±Π°Π²Π»ΡΠ΅Ρ ΠΎΡ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΡ
ΠΎΡΠΈΠ±ΠΎΠΊ.
π Java Portal1. ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΅Π»ΠΈ Π Π°Π·Π±Π΅ΡΠΈΡΡ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡ ΡΡΡΠΎΠΈΡΡ, ΠΊΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈ Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ. 2. ΠΡΠΎΡΠΈΠ»Ρ ΡΡΠ°ΡΠΈΠΊΠ° (read-heavy vs write-heavy) ΠΡΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠΈΡΠ°Π΅Ρ (ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅), Π΄Π΅Π»Π°ΠΉ ΡΠΏΠΎΡ Π½Π° ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ, ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ. ΠΡΠΈΠΌΠ΅Ρ: ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Netflix, ΠΊΠ°ΡΡΠΎΡΠΊΠΈ ΡΠΎΠ²Π°ΡΠΎΠ² Amazon. ΠΡΠ»ΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠΈΡΡΡ (ΠΌΠ½ΠΎΠ³ΠΎ Π°ΠΏΠ»ΠΎΠ°Π΄ΠΎΠ², Π²Ρ ΠΎΠ΄ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ ), ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, ΠΏΠ°ΠΊΠ΅ΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΡ, eventual consistency. ΠΡΠΈΠΌΠ΅Ρ: ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WhatsApp, Π΄Π°Π½Π½ΡΠ΅ IoT-Π΄Π°ΡΡΠΈΠΊΠΎΠ². 3. ΠΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡΡ vs Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ Π‘ΡΡΠΎΠ³Π°Ρ ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡΡ Π½ΡΠΆΠ½Π° ΡΠ°ΠΌ, Π³Π΄Π΅ ΠΎΡΠΈΠ±ΠΊΠ° Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠ° (Π±Π°Π½ΠΊΠΈ, Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅). Eventual consistency ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΡΠ°ΠΌ, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΆΠΈΡΡ Ρ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ (Instagram, Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ°). 4. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ Π·Π°Π΄Π΅ΡΠΆΠΊΠ΅ Π Π΅Π°Π»ΡΠ°ΠΉΠΌ β ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ΄ Π½ΠΈΠ·ΠΊΡΡ Π·Π°Π΄Π΅ΡΠΆΠΊΡ ΡΠ΅ΡΠ΅Π· ΠΊΡΡ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ. ΠΡΠΈΠΌΠ΅ΡΡ: Π³Π΅ΠΉΠΌΠΈΠ½Π³, Zoom, ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°ΡΠ΅ΠΆΠ΅ΠΉ. ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ β ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΈ ΡΠΎΠ½ΠΎΠ²ΡΠ΅ Π²ΠΎΡΠΊΠ΅ΡΡ. ΠΡΠΈΠΌΠ΅ΡΡ: e-mail ΡΠ°ΡΡΡΠ»ΠΊΠ°, Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΎΡΡΡΡΠΎΠ². 5. ΠΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡ ΠΠ°ΠΊΠ»Π°Π΄ΡΠ²Π°ΠΉ ΡΠΎΡΡ Γ10. ΠΡΠΈΠΌΠ΅Ρ: Google Docs Π½Π°ΡΠΈΠ½Π°Π»ΡΡ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΌ, Π½ΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ ΠΏΡΠ°Π²ΠΎΠΊ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. Uber β ΡΡΡΡΡΠΈ ΠΏΠΎΠ΅Π·Π΄ΠΎΠΊ Π² ΠΌΠΈΠ½ΡΡΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉ stateless-ΡΠ΅ΡΠ²ΠΈΡΡ ΠΈ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. 6. ΠΠ°ΡΡΠ΅ΡΠ½Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠΉ ΠΏΠΎΠ΄ ΡΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΎ ΡΠΈΡΠ°ΡΡΡΡ: ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ Π³Π΅ΠΎ/Π»ΠΎΠΊΠ°ΡΠΈΠΈ (geo-hash + ElasticSearch), Π±ΡΡΡΡΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ ID (Redis/Memcached). 7. Π ΠΎΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΡΠΎΠ΄ΡΠΌΡΠ²Π°ΠΉ ΡΠ°ΡΠ΄ΠΈΠ½Π³ Π·Π°ΡΠ°Π½Π΅Π΅ (ΠΏΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π³Π΅ΠΎ). ΠΡΠΈΠΌΠ΅Ρ: ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ YouTube ΡΠ°ΡΠ΄ΡΡΡΡΡ ΠΏΠΎ ID Π²ΠΈΠ΄Π΅ΠΎ. Π₯ΠΎΠ»ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΆΠΈΠΌΠ°ΠΉ ΠΈΠ»ΠΈ Π°ΡΡ ΠΈΠ²ΠΈΡΡΠΉ (Gmail, Google Drive). 8. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΊΠ°Π·ΠΎΠ² ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉ ΡΠ΅ΡΡΠ°ΠΈ, ΡΠΎΠ»Π»Π±ΡΠΊΠΈ, circuit breakers. ΠΡΠ»ΠΈ API ΠΏΠ°Π΄Π°Π΅Ρ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ°ΡΡΡ β ΠΏΠΎΠ²ΡΠΎΡ + Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ°ΠΉΠΌΠ°ΡΡΠ° (ΠΏΡΠΈΠΌΠ΅Ρ: Amazon payment retry). ΠΡΠ»ΠΈ ΠΊΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½ β ΡΠΎΠ»Π»Π±ΡΠΊ Π² ΠΠ (ΠΏΡΠΈΠΌΠ΅Ρ: Reddit Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈΠ· ΠΠ). 9. ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΠ²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ: OAuth / JWT (ΠΏΡΠΈΠΌΠ΅Ρ: Π»ΠΎΠ³ΠΈΠ½ ΡΠ΅ΡΠ΅Π· Google ΠΈΠ»ΠΈ Spotify). ΠΠ°ΡΠΈΡΠ° ΠΎΡ Π°Π±ΡΠ·ΠΎΠ² ΠΈ Π±ΠΎΡΠΎΠ²: rate limiting, CAPTCHA (ΠΏΡΠΈΠΌΠ΅Ρ: Gmail signup, ΡΠΎΡΠΌΡ). 10. ΠΡΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠΈΡΠ°ΡΡ Π²ΡΡ ΡΠ°ΠΌΠΎΠΌΡ? ΠΠ΅ΠΊΡΠΈΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΠΈ Π»ΡΡΡΠ΅ Π²ΡΠ½Π΅ΡΡΠΈ Π² SaaS ΠΈΠ»ΠΈ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ API: ΠΠ»Π°ΡΠ΅ΠΆΠΈ β Stripe, PayPal. Π₯ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Π΄ΠΈΠ° β Cloudinary, S3. Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ β Firebase, SendGrid.π Java Portal
anyMatch(Predicate)
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true, Π΅ΡΠ»ΠΈ Π² ΠΏΠΎΡΠΎΠΊΠ΅ Π΅ΡΡΡ Ρ
ΠΎΡΡ Π±Ρ ΠΎΠ΄ΠΈΠ½ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ.
List<String> names = List.of("Alice", "Bob", "Anna");
boolean hasShortName = names.stream()
.anyMatch(name -> name.length() < 4);
// β true (ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ "Bob")
2. allMatch(Predicate)
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true, Π΅ΡΠ»ΠΈ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡ.
List<String> names = List.of("Alice", "Bob", "Anna");
boolean allStartWithA = names.stream()
.allMatch(name -> name.startsWith("A"));
// β false
3. noneMatch(Predicate)
ΠΠ°ΡΡ true, Π΅ΡΠ»ΠΈ Π² ΠΏΠΎΡΠΎΠΊΠ΅ Π½Π΅Ρ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ.
List<String> names = List.of("Alice", "Bob", "Anna");
boolean noneEmpty = names.stream()
.noneMatch(String::isEmpty);
// β true
π Java Portal@LogExecutionTime
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface LogExecutionTime {}
ΠΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π²Π΅ΡΠΈΡΡ Π½Π° Π»ΡΠ±ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΡΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ Π·Π°ΠΌΠ΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
2. ΠΡΠΏΠ΅ΠΊΡ LoggingAspect
@Aspect
@Component
public class LoggingAspect {
@Around("@annotation(LogExecutionTime)")
public Object logExecution(ProceedingJoinPoint joinPoint) throws Throwable {
long start = System.currentTimeMillis();
Object result = joinPoint.proceed(); // Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄
long timeTaken = System.currentTimeMillis() - start;
System.out.println(joinPoint.getSignature() + " executed in " + timeTaken + " ms");
return result;
}
}
- ΠΠ΅ΡΠ΅Ρ
Π²Π°ΡΡΠ²Π°Π΅Ρ Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Ρ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ @LogExecutionTime
- Π‘ΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ Π²ΡΠ΅ΠΌΡ ΡΡΠ°ΡΡΠ° β Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ β ΡΡΠΈΡΠ°Π΅Ρ ΡΠ°Π·Π½ΠΈΡΡ β Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² Π»ΠΎΠ³.
3. ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ TestController
@RestController
public class TestController {
@GetMapping("/hello")
@LogExecutionTime
public String hello() throws InterruptedException {
Thread.sleep(500); // ΠΈΠΌΠΈΡΠ°ΡΠΈΡ ΡΠ°Π±ΠΎΡΡ
return "Hello, World!";
}
}
- ΠΠ΅ΡΠΎΠ΄ hello() ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ @LogExecutionTime
- ΠΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π·Π°ΠΏΡΠΎΡΠ΅ Π½Π° /hello ΠΌΠ΅ΡΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°ΡΡΡΡ Ρ Π·Π°ΠΌΠ΅ΡΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
AOP Π·Π΄Π΅ΡΡ ΡΠ±ΠΈΡΠ°Π΅Ρ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π²ΡΡΠ°Π²Π»ΡΡΡ System.currentTimeMillis() Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, Π²ΡΡ Π²ΡΠ½Π΅ΡΠ΅Π½ΠΎ Π² ΠΎΠ΄ΠΈΠ½ Π°ΡΠΏΠ΅ΠΊΡ.
π Java Portal