ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ Π½Π° Java SE 18

Π‘Π»Π΅Π΄ ΡˆΠ΅ΡΡ‚ΠΌΠ΅ΡΠ΅Ρ‡Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, компания Oracle пусна ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Java SE 18 (Java Platform, Standard Edition 18), ΠΊΠ°Ρ‚ΠΎ Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π½Π° рСализация, която ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° отворСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ OpenJDK. Π‘ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° някои остарСли Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π² Java SE 18 Π΅ Π·Π°ΠΏΠ°Π·Π΅Π½Π° ΠΎΠ±Ρ€Π°Ρ‚Π½Π°Ρ‚Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈ вСрсии Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Java β€” ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΎ написанитС Java ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Ρ‰Π΅ работят Π±Π΅Π· измСнСния с Π½ΠΎΠ²Π°Ρ‚Π° вСрсия. Π“ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅ Π·Π° инсталиранС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π½Π° Java SE 18 (JDK, JRE ΠΈ Server JRE) са ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ Π·Π° Linux (x86_64, AArch64), Windows (x86_64) ΠΈ macOS (x86_64, AArch64). Π Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π½Π°Ρ‚Π° рСализация Π½Π° Java 18, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π° Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° OpenJDK, Π΅ напълно ΠΎΡ‚Π²ΠΎΡ€Π΅Π½Π° ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π· GPLv2 с ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΡ‚ GNU ClassPath, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π²Π°Ρ‰ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ с Ρ‚ΡŠΡ€Π³ΠΎΠ²ΡΠΊΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ.

Java SE 18 ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈ към катСгорията вСрсии с ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ срок Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‰Π΅ сС ΠΈΠ·Π΄Π°Π²Π°Ρ‚ Π΄ΠΎ слСдващото ΠΈΠ·Π΄Π°Π½ΠΈΠ΅. Π—Π° Π΄ΡŠΠ»Π³ΠΎΡΡ€ΠΎΡ‡Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° (LTS) слСдва Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Java SE 17, Π·Π° която Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‰Π΅ сС ΠΈΠ·Π΄Π°Π²Π°Ρ‚ Π΄ΠΎ 2029 Π³ΠΎΠ΄ΠΈΠ½Π°. НапомнямС, Ρ‡Π΅ ΠΎΡ‚ вСрсия Java 10 ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ ΠΏΡ€Π΅ΠΌΠΈΠ½Π° Π½Π° Π½ΠΎΠ² процСс Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π° ΠΏΠΎ-ΠΊΡ€Π°Ρ‚ΡŠΠΊ Ρ†ΠΈΠΊΡŠΠ» Π·Π° създаванС Π½Π° Π½ΠΎΠ²ΠΈ издания. Новата функционалност сСга сС Ρ€Π°Π·Π²ΠΈΠ²Π° Π² Π΅Π΄Π½Π° постоянно обновяваща сС master ΠΊΠ»ΠΎΠ½, Π² която сС Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ Π³ΠΎΡ‚ΠΎΠ²ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΈ ΠΎΡ‚ която Π½Π° всСки ΡˆΠ΅ΡΡ‚ мСсСца сС отдСлят ΠΊΠ»ΠΎΠ½ΠΈ Π·Π° стабилизиранС Π½Π° Π½ΠΎΠ²ΠΈΡ‚Π΅ издания.

Някои ΠΎΡ‚ новоститС Π² Java 18 Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚:

  • По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π° кодификация UTF-8. Java API, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‰ΠΈ тСкстови Π΄Π°Π½Π½ΠΈ с ΠΎΠ³Π»Π΅Π΄ Π½Π° кодификацията Π½Π° символитС, сСга ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ UTF-8 Π½Π° всички ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ, нСзависимо ΠΎΡ‚ систСмнитС настройки ΠΈ Π·Π°Π΄Π°Π΄Π΅Π½Π°Ρ‚Π° локализация. Π—Π° Π²Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° старото ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΏΡ€ΠΈ ΠΊΠΎΠ΅Ρ‚ΠΎ кодификацията сС ΠΈΠ·Π±ΠΈΡ€Π° спорСд систСмната локализация, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° "-Dfile.encoding=COMPAT".
  • Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ com.sun.net.httpserver, ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° jwebserver ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π΅Π½ API с рСализация Π½Π° прост http-ΡΡŠΡ€Π²ΡŠΡ€ Π·Π° ΠΎΡ‚Π΄Π°Π²Π°Π½Π΅ Π½Π° статично ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅ (ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° CGI ΠΈ сСрвлСти Π½Π΅ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚). ВградСният http-ΡΡŠΡ€Π²ΡŠΡ€ Π½Π΅ Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ натоварвания ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ° ΠΈ удостовСряванС, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π΅ насочСн Π³Π»Π°Π²Π½ΠΎ към ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² процСса Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π·Π° създаванС Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΈ, отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ тСстванС Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ.
  • Π’ JavaDoc Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Ρ‚Π°Π³ "@snippet" Π·Π° Π²Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ ΠΈ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈ ΠΎΡ‚ ΠΊΠΎΠ΄ Π² докумСнтацията Π½Π° API, към ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ срСдства Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° корСктността, подсвСтка Π½Π° синтаксиса ΠΈ интСграция с IDE.
  • ΠŸΡ€Π΅Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π° рСализация Π½Π° API java.lang.reflect (Core Reflection), ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° информация Π·Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅, ΠΏΠΎΠ»Π΅Ρ‚Π°Ρ‚Π° ΠΈ конструкторитС Π½Π° класовСтС, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½Π°Ρ‚Π° структура Π½Π° класовСтС. Бамият API java.lang.reflect остана Π½Π΅ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½, Π½ΠΎ сСга Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ Ρ‡Ρ€Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° дСскриптори Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ (method handles), прСдоставСни ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»Π° java.lang.invoke, вмСсто ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ Π½Π° Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄. ΠŸΡ€ΠΎΠΌΡΠ½Π°Ρ‚Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ унификация Π½Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅ java.lang.reflect ΠΈ java.lang.invoke ΠΈ улСсни тяхната ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°.
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π΅ Ρ‚Ρ€Π΅Ρ‚Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π° рСализация Π½Π° API Vector, прСдоставящ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΈ изчислСния, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΈ инструкции Π½Π° процСсоритС x86_64 ΠΈ AArch64 ΠΈ позволяват Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²ΡŠΡ€Ρ…Ρƒ мноТСство стойности (SIMD). Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ прСдоставСнитС Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° Π°Π²Ρ‚ΠΎ-вСкторизация Π½Π° скаларни ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² JIT ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° HotSpot, новият API Π΄Π°Π²Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° явно ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° вСкторизацията Π·Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ SPI интСрфСйс (service-provider interface) Π·Π° Ρ€Π΅Π·ΠΎΠ»Π²ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΈΠΌΠ΅Π½Π° Π½Π° хостовС ΠΈ IP адрСса, позволяващ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π² java.net.InetAddress Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΈ Ρ€Π΅Π·ΠΎΠ»Π²Π΅Ρ€ΠΈ, Π½Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π½ΠΈ ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма.
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π΅ Π²Ρ‚ΠΎΡ€Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π° рСализация Π½Π° API Foreign Function & Memory, Ρ‡Ρ€Π΅Π· ΠΊΠΎΠΉΡ‚ΠΎ прилоТСнията ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° взаимодСйстват с ΠΊΠΎΠ΄ ΠΈ Π΄Π°Π½Π½ΠΈ извън Java runtime. Новият API позволява Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, изпълнявани Π½Π΅ Π² JVM, ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚, която Π½Π΅ сС управлява ΠΎΡ‚ JVM. НапримСр, ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ външни сподСлСни Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π΄Π° сС Π΄ΠΎΡΡ‚ΡŠΠΏΠ²Π°Ρ‚ Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ процСса Π±Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° JNI.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²Ρ‚ΠΎΡ€Π° СкспСримСнтална рСализация Π½Π° съвпадСниС ΠΏΠΎ шаблон Π² ΠΈΠ·Ρ€Π°Π·ΠΈΡ‚Π΅ β€žswitchβ€œ, позволяваща Π² Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ β€žcaseβ€œ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π½Π΅ Ρ‚ΠΎΡ‡Π½ΠΈ стойности, Π° гъвкави шаблони, ΠΎΠ±Ρ…Π²Π°Ρ‰Π°Ρ‰ΠΈ навСднъТ сСрия стойности, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈ Π΅ трябвало Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ обСмисти Π²Π΅Ρ€ΠΈΠ³ΠΈ ΠΎΡ‚ ΠΈΠ·Ρ€Π°Π·ΠΈ β€žif…elseβ€œ. Object o = 123L; String formatted = switch (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); case Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); default -> o.toString(); };
  • ОбявСн Π΅ Π·Π° остарял ΠΈ Ρ‰Π΅ бъдС Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ Π² Π΅Π΄Π½ΠΎ ΠΎΡ‚ слСдващитС издания ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡŠΡ‚ Π½Π° финализация, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈΡ‚Π΅ с Π½Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ, ΠΊΠ°Ρ‚ΠΎ Object.finalize(), Enum.finalize(), Runtime.runFinalization() ΠΈ System.runFinalization().
  • Π’ ΡΡŠΠ±ΠΈΡ€Π°Ρ‡ΠΈΡ‚Π΅ Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊ ZGC (Z Garbage Collector), SerialGC ΠΈ ParallelGC Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° дСдупликация Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster