JavaRush /Java блогу /Random-KY /Java 11 чыгарылды: жаңы мүмкүнчүлүктөр жана мүмкүнчүлүктө...

Java 11 чыгарылды: жаңы мүмкүнчүлүктөр жана мүмкүнчүлүктөр

Группада жарыяланган
Буга чейин Java жаңы versionлары сейрек жана кечигүүлөр менен пайда болгон. Азыр Oracle өзү койгон ритмди ийгorктүү сактап келет: "ар бир алты ай сайын жаңы Java." Ошентип, бир нече күн мурун, график боюнча, биз акыры Java SE 11 жана JDK (Java Development Kit) ишке ашырылышын алдык. Java 11 чыгарылды: жаңы функциялар жана мүмкүнчүлүктөр - 1Адаттагыдай эле, жаңы version эскилери менен шайкеш келет жана Java 11ди колдоо 2026-жылдын декабрынан эрте аяктайт.

Java SE 11деги жаңы функциялар (иштеп чыгуучуларга көрүнөт)

Эске салсак, Javaда өзгөртүүлөр JEP "JDK Enhancement Proposal" программасын ишке ашыруу аркылуу жүргүзүлөт. JEP OpenJDK жакшыртуу сунушу жана бекитorши, кечиктирorши же четке кагылышы мүмкүн. Башкача айтканда, JEPтердин жыйындысы OpenJDK үчүн өнүгүү стратегиясы болуп саналат. Жаңы "функциянын" алдында чарчы кашаанын ичинде биз тиешелүү JEPтин санын көрсөтөбүз. [323] Lambda параметрлери үчүн локалдык-өзгөрмө синтаксиси - lambda параметрлери үчүн var синтаксиси Java 10 локалдык өзгөрмөнүн түрүн ачык көрсөтпөөгө мүмкүндүк берген var ачкыч сөзүн киргизди . Бул codeду жөнөкөйлөштүрдү. JEP 323 ламбда туюнтмалары менен бул синтаксистин колдонулушун кеңейтет. Жөнөкөй мисал:
list.stream ()
                 .map ((var s) -> s.toLowerCase ())
                 .collect (Collectors.toList ());
Белгилүү Java евангелисти Саймон Риттер жазгандай , тажрыйбалуу Java программисти мындай учурда var колдонуунун кереги жок болушу мүмкүн экенин белгилейт, анткени жогорудагы codeду төмөнкүгө алмаштырууга болот:
list.stream ()
                  .map (s -> s.toLowerCase ())
                  .collect (Collectors.toList ());
Анда эмне үчүн колдоо бар? Бир гана өзгөчө жагдай бар - сиз ламбда параметрине annotation кошкуңуз келгенде. Бул кандайдыр бир түрүн колдонбостон жасоого болбойт жана ачык типти колдонбоо үчүн, биз бардыгын төмөнкүдөй var колдонуп жөнөкөйлөтө алабыз:
list.stream ()
                 .map ((@ Notnull var s) -> s.toLowerCase ())
                 .collect (Collectors.toList ());
[330] Жалгыз файлдык булак-codeдук программаларды ишке киргизүү Java ишке киргизгичти Java булак codeу менен бир файл катары программаны ишке киргизүү үчүн Java көп учурда өзүнүн кеңири синтаксиси жана атүгүл арзыбаган тиркемени ишке киргизүүнүн көп баскычтуу “аземи” үчүн сынга алынат. Кээде бул жаңы келгендерди коркутат. " Hello World! " дегенди жөн эле басып чыгарган арыз жазуу үчүн void", сиз жалпы статикалык негизги метод менен класс жазып , System.out.println. Муну кылгандан кийин, сиз javac аркылуу codeду түзүшүңүз керек . Акыр-аягы, андан кийин, сиз жаман саламдашууну көрсөтө турган тиркемени ишке киргизсеңиз болот (албетте, интеграцияланган иштеп чыгуу чөйрөсү, IDEA да, JavaRush да орнотулган , бул "колдонмону ишке киргизүү сыйкырын" өз алдынча аткарат - редактордун эскертүүсү ). Чынын айтсак: көпчүлүк программалоо тилдеринде программаларды иштетүү үчүн иш жүзүндө сценарий алда канча жөнөкөй көрүнөт. JEP 330 бир файлдык тиркемени түзүү зарылдыгын жокко чыгарат, андыктан азыр буйрук сабын колдонсоңуз, жөн гана териңиз
java HelloWorld.java
Java ишке киргизгич файлда Java булак codeу бар экенин аныктайт жана аны аткаруудан мурун codeду класс файлына түзөт. Параметрлерди баштапкы code файлынын аталышынан кийин же алдына коюуга болот. Атыдан кийин жайгаштырылгандар өтүнмө аткарылганда параметр катары өткөрүлөт. Атын алдына коюлгандар code түзүлгөндөн кийин Java ишке киргизгичке параметр катары өткөрүлөт. Компиляторго тиешелүү параметрлер (мисалы, класс жолу) компиляция үчүн javacга өткөрүлүп берилет . Мисал. Сап:
java -classpath / home / foo / java Hello.java Bonjour
бул саптарга барабар болот:
javac -classpath / home / foo / java Hello.java
java -classpath / home / foo / java Hello Bonjour
[321] HTTP Client (Стандарт) - HTTP Client API колдоосу стандартташтырылган. JDK 9 HTTP Client протоколун (JEP 110) колдоо үчүн жаңы API киргизди . JDK 9 да Java Platform Module System (JPMS) киргизгендиктен , бул API инкубатор модулу катары киргизилген (бул модулдар иштеп чыгуучуларга Java SEде стандарттуу боло элек жаңы API'лер менен камсыз кылуу үчүн, ал эми "тирүү" API'лер иштеп жатат. алып салууга даярдалган - иштеп чыгуучулар жаңы API'лерди сынап көрүп, пикир билдирүүгө аракет кыла алышат). Керектүү өзгөртүүлөр киргизилгенден кийин (бул API JDK 10 жаңыртылган), API стандарттын бир бөлүгү болуп калышы мүмкүн. Ошентип, HTTP Client API азыр расмий түрдө Java SE 11ге киргизилген . Бул JDK, java.net.http үчүн жаңы модулду жана пакетти киргизет . Негизги жаңы түрлөрү: HttpClient HttpRequest HttpResponse WebSocket Бул API синхрондуу же асинхрондуу колдонулушу мүмкүн. Асинхрондук режимде жана колдонулат . [320] Java EE жана CORBA модулдарын алып салуу Java платформасынын модулдук системасынын (JPMS) Java тогузунчу versionсында ишке кириши менен монолиттүү rt.jar файлын бир нече модулдарга бөлүү мүмкүн болду. Кошумчалай кетсек, JPMS сиздин колдонмоңузга керектүү модулдарды гана камтыган Java иштөө чөйрөсүн түзүүгө мүмкүндүк берет жана анын көлөмүн бир топ кыскартат. Тунук аныкталган модулдун чек аралары менен Java API'нин эскирген бөлүктөрүн алып салуу бир топ оңой - JEP 320 дал ушундай кылат.Java.se.ee метамодули алты модулду камтыйт, алар Java SE 11 стандартына кирбейт жана киргизилбейт. JDK ичинде: CompletionFuturesCompletionStages
  • corba
  • транзакция
  • активдештирүү
  • xml.bind
  • xml.ws
  • xml.ws.annotation
Бул модулдар JDK 9да эскирилген жана демейки боюнча компиляцияга же аткарууга киргизилген эмес. Бул JDK 9 же JDK 10 боюнча бул модулдардын API'лерин колдонгон тиркемени компиляциялоого же иштетүүгө аракет кылсаңыз, ал ишке ашпай калганын билдирет. Эгер сиз codeуңузда бул модулдардын API'лерин колдонсоңуз, аларды өзүнчө модул же китепкана катары беришиңиз керек болот.

Жаңы API'лер

JDK 11де көп сандаган жаңы API'лер HTTP Client жана Flight Recorder модулдарын тил стандартына киргизүүнүн аркасында пайда болду . API'лердин толук тизмеси үчүн Гуннар Морлинг тарабынан түзүлгөн JDKнын ар кандай versionларынын төмөнкү комплекстүү салыштыруусун караңыз . Жана бул эскертүүдө биз java.net.http , jdk.jfr жана java.security модулдарына кирбеген жаңы ыкмаларды тизмектейбиз . java.lang.String JDK 11 API'деги String'деги эң маанилүү өзгөрүүлөрдүн бири, бир нече пайдалуу жаңы ыкмалар бар .
  • boolean isBlank (): эгер сап бош болсо же боштуктар гана камтылса true кайтарат, антпесе false.

  • Stream lines(): Бул саптан алынган сызыктардын агымын кайтарат, сап терминаторлору менен бөлүнгөн.

  • String repeat (int): Мааниси ошол саптын int жолу кайталанган бириктирorши болгон сапты кайтарат .

  • String strip (): Биринчи боштук эмес белгиге чейин же андан кийин алынып салынган бардык боштуктар менен сапты кайтарат.

  • String stripLeading (): Биринчи боштук эмес белгиге чейинки бардык боштуктар менен сапты кайтарат.

  • String stripTrainling (): Акыркы боштук эмес белги алынып салынгандан кийин пайда болгон бардык боштуктар менен сапты кайтарат.
strip()Метод буга чейин окшош нерсени жасаган trim (), бирок мейкиндиктер менен бул ыкмалар башка нерселерди билдирет. Болгондо, trim()боштуктар гана кесилет, ал эми ичинде strip()- ошондой эле атайын белгилер, мисалы, өтмөктөр. java.lang.StringBuffer java.lang.StringBuildercompareTo () Бул класстардын экөө тең кабыл алган StringBuffer/ StringBuilderжана кайтаруучу жаңы ыкманы камтыйт int. Лексикалык салыштыруу ыкмасы жаңы ыкмага окшош compareTo() CharSequence. java.io.ByteArrayOutputStream
  • void writeBytes (byte []): параметрдин бардык byteтарын java.io.FileReader чыгаруу агымына жазат
Бул жерде сизге көрсөтүүгө мүмкүндүк берген эки жаңы конструктор бар Charset. java.io.FileWriter t көрсөтүүгө мүмкүндүк берген төрт жаңы конструктор Charse. java.io.InputStream
  • io.InputStream nullInputStream (): InputStreamэч кандай byte окубаган кайтарат. Бул ыкманы кантип колдонсо болот? Сиз муну сизге кереги жок чыгарууну ыргытуу үчүн же ар дайым нөл byteты кайтарган киргизүүнү киргизүү үчүн /dev/null сыяктуу бир нерсе деп ойлосоңуз болот.
java.io.OutputStream
  • io.OutputStream nullOutputStream ()
java.io.Reader
  • io.Reader nullReader ()
java.io.Writer
  • io.Writer nullWriter ()
java.lang.Character
  • String toString (int): Бул бар методдун ашыкча жүктөөсү, бирок char ордуна int колдонот.
java.lang.CharSequence
  • int compare (CharSequence, CharSequence): лексикографиялык жактан эки инстанцияны салыштырат CharSequence. Биринчи ырааттуулук лексикографиялык жактан тиешелүүлүгүнө жараша экинчиден кичине, барабар же чоңураак болсо, терс маанини, нөлдү же оң маанини кайтарат.
java.lang.ref.Reference
    lang.Object clone (): Java евангелисти Саймон Риттер бул ыкма аны чаташтырып жатканын моюнга алат. Класс Referenceинтерфейсти ишке ашырbyte Cloneableжана бул ыкма ар дайым өзгөчө учурду жаратат CloneNotSupportedException. Бирок, эксперт бул ыкма келечекте бир нерсеге пайдалуу болорун сунуштайт.
java.lang.Runtime java.lang.System Бул жерде эч кандай жаңы ыкмалар жок. Келгиле, runFinalizersOnExit ()бул эки класстан тең метод алынып салынганын айтып коёлу, бул шайкештик маселелерин жаратышы мүмкүн. java.lang.Threaddestroy () Кошумча ыкмалар жок, биз алардын алынып салынганын гана айтабыз stop (Throwable). Бирок stop (), эч кандай аргумент талап кылbyte, дагы эле жеткorктүү. Сураныч, муну эстен чыгарбаңыз, анткени дал келүү көйгөйлөрү болушу мүмкүн. java.nio.ByteBuffer java.nio.CharBuffer java.nio.DoubleBuffer java.nio.FloatBuffer java.nio.LongBuffer java.nio.ShortBuffer Бул класстардын бардыгында тилди иштеп чыгуучулар mismatch ()тилдин салыштырмалуу индексин таап, кайтаруучу ыкманы кошушкан. бул буфер менен берилген буфердин ортосундагы биринчи дал келбөө. java.nio.channels.SelectionKey
  • int interestOpsAnd (int)

  • int interestOpsOr (int)
java.nio.channels.Selector
  • int select (java.util.function.Consumer, long): Тиешелүү каналдары киргизүү/чыгаруу операцияларына даяр болгон баскычтар боюнча аракетти тандайт жана аткарат. Long параметр тайм-аут болуп саналат.

  • int select (java.util.function.Consumer): жогорудагы ыкма сыяктуу иштейт, бирок күтүү убакыты жок.

  • int selectNow (java.util.function.Consumer): жогорудагы ыкма сыяктуу иштейт, болгону ал бөгөттөлбөйт.

java.nio.file.Files
  • String readString (Path): Файлдан бардык мазмунду сапка окуйт, byteтарды UTF-8 codeдоосун колдонуп символдорго чечет .

  • String readString (Path, Charset): Жогорудагы ыкма сыяктуу иштейт, бирок byteтарды символдорго чечмелейт Charset.

  • Path writeString (Path, CharSequence, java.nio.file. OpenOption []): Эгер сиз файлга символдордун ырааттуулугун жазсаңыз CharSequence, ал символдор byteтарга codeдолот ( UTF-8ди колдонуу менен ).

  • Path writeString (Path, CharSequence, java.nio.file. Charset, OpenOption []): жогорудагы ыкма сыяктуу иштейт, byteтарга символдор гана codeдолгон Charset.
java.nio.file.Path
  • Path(String, String[]): Жолду кайтарып, жол саптарын же саптардын ырааттуулугун өзгөртүп, алар бириккенде жол сызыгын түзөт.

  • Жол (net.URI): URIди өзгөртүү менен жолду кайтарат.
java.util.Collection
  • Object [] toArray (java.util.function.IntFunction): Берилген генератор функциясын колдонуп, кайтарылган массивди бөлүштүрүү үчүн бул коллекциянын бардык элементтерин камтыган массивди кайтарат.
java.util.concurrent.PriorityBlockingQueue java.util.PriorityQueue
  • void forEach (java.util.function.Consumer): Бардык элементтер иштетилгенге чейин же аракет өзгөчөлүктү жаратмайынча, ар бир Итералүүчү элементте көрсөтүлгөн аракетти аткарат .

  • boolean removeAll (java.util.Collection): Көрсөтүлгөн коллекцияда камтылган бул коллекциянын бардык элементтерин жок кылат (милдеттүү эмес операция).

  • boolean removeIf (java.util.function.Predicate): Берилген предикатты канааттандырган бул жыйнактын бардык элементтерин жок кылат.

  • boolean retainAll (java.util.Collection): Бул жыйнактагы көрсөтүлгөн коллекцияда камтылган элементтерди гана сактайт (милдеттүү эмес операция).
java.util.concurrent.TimeUnit
  • long convert (java.time.Duration): Берилген убакыт узактыгын бул бирдикке айлантат.
java.util.function.Predicate
  • Predicate not(Predicate): берилген предикатты жокко чыгаруучу предикатты кайтарат.
Мисалы, төмөнкү code:
lines.stream ()

.filter (s ->! s.isBlank ())
буга айландырса болот:
lines.stream ()

.filter (Predicate.not (String :: ISBLANK))
жана эгерде биз статикалык импортту колдонсок, анда бул биз алабыз:
lines.stream ()
.filter (not(String :: ISBLANK))
java.util.Optional java.util.OptionalInt java.util.OptionalDouble java.util.OptionalLong
  • boolean isEmpty (): Мааниси жок болсо true кайтарат , антпесе false .
java.util.regex.Pattern
  • Predicate asMatchPredicate (): Java эксперти Саймон Риттер бул жерде чыныгы JDK 11 API асыл ташы катылган болушу мүмкүн деп эсептейт.Бул ыкма бул үлгү берилген киргизүү сапка дал келгенин текшерген предикатты түзөт.
java.util.zip.Deflater
  • int deflate (ByteBuffer): Киргизилген маалыматтарды кысып, көрсөтүлгөн буферди кысылган маалыматтар менен толтурат.

  • int deflate (ByteBuffer, int): Киргизилген маалыматтарды кысып, көрсөтүлгөн буферди кысылган маалыматтар менен толтурат. Кысылган маалыматтардын чыныгы көлөмүн кайтарат.

  • void setDictionary (ByteBuffer): Берилген сөздүктү берилген буферде byteтарга кысылышы үчүн орнотот. ByteBufferБул byte массивинин ордуна , азыр кабыл ала турган учурдагы ыкманын ашыкча жүктөлүшү .

  • void setInput (ByteBuffer): Кысылган киргизүү берorштерин орнотот. Бул ошондой эле болгон ыкманын ашыкча жүктөө.
java.util.zip.Inflater
  • int inflate (ByteBuffer): Белгиленген буферге byteтарды ачат. Кысылбаган byteтардын чыныгы санын кайтарат.

  • void setDictionary (ByteBuffer): Берилген сөздүктү берилген буфердеги byteтарга орнотот. Учурдагы методдун ашыкча жүктөлгөн түрү.

  • void setInput (ByteBuffer): Декомпрессия үчүн киргизилген маалыматтарды орнотот. Учурдагы ыкманын ашыкча жүктөлгөн түрү.
javax.print.attribute.standard.DialogOwner Бул JDK 11деги жаңы класс жана бардык терезелердин же белгилүү бир терезенин үстүндө көрсөтүлө турган басып чыгаруу же ыңгайлаштыруу баракты сурамдарын колдоо үчүн колдонулган атрибут классы. javax.swing.DefaultComboBoxModel javax.swing.DefaultListModel
  • void addAll (Collection): Коллекциядагы бардык элементтерди кошот.

  • void addAll (int, Collection): Белгиленген индекстен баштап жыйнакта бар бардык элементтерди кошот.
javax.swing.ListSelectionModel
  • int [] getSelectedIndices (): Тандалган моделдеги бардык тандалган индекстердин массивдерин өсүү тартибинде кайтарат.

  • int getSelectedItemsCount (): Тандалган нерселердин санын кайтарат.
jdk.jshell.EvalException
  • shell.JShellException getCause (): Бул EvalException тарабынан сунушталган аткаруу кардарындагы ыргытылуучу себепти кайтарат же себеби жок же белгисиз болсо нөл.

Java 11дин иштеп чыгуучу эмес өзгөчөлүктөрү

[181] Nest-Based Access Control Java жана башка тилдер ички класстар аркылуу уяланган класстарды колдойт. Бул иштеши үчүн, компилятор белгилүү бир амалдарды аткарышы керек. Мисалы:
public class Outer {
    private int outerInt;

     class Inner {
       public void printOuterInt() {
         System.out.println("Outer int = " + outerInt);
       }
     }
   }
Компилятор аны компиляциядан мурун төмөнкүдөй бир нерсе чыгаруу үчүн өзгөртөт:
public class Outer {
      private int outerInt;

      public int access$000() {
        return outerInt;
      }

    }


    class Inner$Outer {

      Outer outer;

      public void printOuterInt() {
        System.out.println("Outer int = " + outer.access$000());
      }
    }
Логикалык жактан ички класс тышкы класс менен бир codeдун бир бөлүгү болсо да, ал өзүнчө класс катары түзүлгөн. Демек, бул операция сырткы класстын жеке талаасына кирүүнү камсыз кылуу үчүн компилятор тарабынан түзүлүшү керек болгон синтетикалык кошулуу ыкмасын талап кылат . Бул JEP уя түшүнүгүн киргизет, мында бир уянын эки мүчөсү (биздин мисалда тышкы жана ички) уя салган достор. Класс файл форматы үчүн эки жаңы атрибут аныкталган: NestHost жана NestMembers . Бул өзгөртүүлөр уя класстарды жана byte codeду колдогон башка тилдер үчүн пайдалуу. Бул функция java.lang.Class үчүн үч жаңы ыкманы киргизет : Класс getNestHost () Класс [] getNestMembers () логикалык isNestmateOf (Класс) [309] Динамикалык Класс-Файл Константалары Бул JEP жаңы файлды колдоо үчүн класс файл форматына кеңейтүүнү сүрөттөйт. туруктуу бассейн формасы CONSTANT_Dynamic. Динамикалык константа идеясы оксиморон сыяктуу сезилет, бирок аны Java 11де акыркы маани катары карасаңыз болот. Бириктирүү константасынын мааниси компиляция убагында коюлbyte (башка константалардан айырмаланып), бирок жүктөөчү линияны колдонот. убакыттын наркын аныктоо ыкмасы. Демек, маани динамикалык, бирок анын мааниси бир гана жолу коюлгандыктан, ал да туруктуу. Бул өзгөчөлүк, биринчи кезекте, жаңы тилдерди жана компиляторлорду иштеп чыгуучу адамдарга багытталган, алар JVMде иштөө үчүн byte-codeдорду жана класс файлдарын жаратат. [315] Aarch64 Intrinsics жакшыртуу Бул JEP Red Hat коомчулугу тарабынан сунушталган. sin ()JVM эми Arm 64 инструкциялар топтомунда жеткorктүү адистештирилген нускамаларды колдоно алат.Тактап айтканда, бул , методдорунун жана cos ()java.lang.Math log ()классынын иштешин жакшыртат . [318] Epsilon: Эпсилон таштанды жыйноочу JEP 315 сыяктуу эле , Red Hat компаниясына Epsilon таштанды жыйгычын киргизгени үчүн ыраазычылык билдирсеңиз болот. Эпсилон адаттан тыш нерсе, анткени ал таштанды чогултпайт! Жаңы an objectтерди түзүүдө ал керек болсо эстутумду бөлүп берет, бирок катталбаган an objectилер ээлеген мейкиндикти кайтарып алbyte. « Эмне кереги бар? ", - деп сурайсың. Көрсө, бул “таштанды жыйноо” эки максатта колдонулат:
  1. Биринчиден, бул таштанды жыйноочу жаңы GC алгоритмдеринин иштешине тийгизген таасири боюнча бааланышын камсыз кылуу үчүн иштелип чыккан. Идея Epsilon менен үлгү тиркемени иштетүү жана метрикалардын топтомун түзүү. Таштанды чогултуунун жаңы алгоритми иштетorп, ошол эле тесттер аткарылып, андан кийин натыйжалар салыштырылат.

  2. Өтө кыска тапшырмалар үчүн (булуттагы serverсиз функцияларды ойлоп көрүңүз), анда үймөккө бөлүнгөн эстутумдан ашпай турганыңызга кепилдик бере аласыз. Бул колдонмо codeундагы ашыкча чыгымдарды (анын ичинде коллекторду иштетүү керекпи же жокпу чечим чыгаруу үчүн зарыл болгон статистиканы чогултуу) жок кылуу менен иштөөнү жакшыртат. Эгерде үймөк мейкиндиги түгөнүп калса, JVM үч жолдун биринде туура эмес конфигурацияланышы мүмкүн:
    • Нормалдуу деп аталат OutOfMemoryError.
    • Үймөктү баштапкы абалга келтириңиз
    • JVM катуу диски иштебей калды жана башка тапшырманы аткарып жаткан болушу мүмкүн (мисалы, мүчүлүштүктөрдү оңдоону баштоо).
[328]: Flight Recorder Flight Recorder – бул JVM үчүн төмөнкү деңгээлдеги маалыматтарды алуу негизи. JDK 11ге чейин бул Oracle JDK бинардыкында коммерциялык функция болгон. Oracle азыр Oracle JDK менен OpenJDK бир түзүлүшүнүн ортосундагы функционалдык айырмачылыктарды жок кылууда. Бул жерде Учуу Жазгыч эмне кылат :
  • Окуялар катары берorштерди өндүрүү жана керектөө үчүн API камсыз кылат
  • Буфер механизмин жана экorк маалымат форматын камсыз кылат
  • Окуяларды ыңгайлаштырууга жана чыпкалоого мүмкүндүк берет
  • OS, JVM HotSpot жана JDK китепканалары үчүн окуяларды камсыз кылуу
Бул жерде эки жаңы модулдар бар: jdk.jfr жана jdk.management.jfr . [329] ChaCha20 жана Poly1305 криптографиялык алгоритмдери Бул JEP JDK колдонгон шифрлерди жаңылоо жөнүндө . Бул жагдай RFC 7539да көрсөтүлгөн ChaCha20 жана ChaCha20-Poly1305 шифрлөө алгоритмдерин ишке ашырат. ChaCha20 эски, кооптуу RC4 шифрин алмаштыра ала турган салыштырмалуу жаңы агым шифри . [333] ZGC: Масштабдуу аз кечигүүдөгү таштанды жыйноочу Эксперименталдык масштабдалуучу, кечигүү аз таштанды жыйноочу. Чоң (көп гигаbyte) үймөктү жана аз күтүү мөөнөтүн талап кылган колдонмолор менен колдонуу үчүн иштелип чыккан. Ал бир муундун үймөгүн колдонот жана тиркеме менен бир убакта таштанды чогултуунун көбүн (бирок бардыгын эмес) аткарат. [332] Транспорт катмарынын коопсуздугу (TLS) 1.3 TLS 1.3 (RFC 8446) TLS транспорттук катмарынын коопсуздук протоколунун негизги патч болуп саналат, ал мурунку versionларга караганда олуттуу коопсуздукту жана аткарууну жакшыртууну камсыз кылат. JDK азыр бул протоколдун versionсын колдойт. Материал Саймон Риттердин макаласына жана расмий documentтерге негизделген .
Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION