JavaRush /Блоги Java /Random-TG /Java 11 бароварда шуд: хусусиятҳо ва қобилиятҳои нав

Java 11 бароварда шуд: хусусиятҳо ва қобилиятҳои нав

Дар гурӯҳ нашр шудааст
Пештар, versionҳои нави Java хеле кам ва бо таъхир пайдо мешуданд. Ҳоло Oracle бомуваффақият ритми мустақor "Java-и навро ҳар шаш моҳ" нигоҳ медорад. Ҳамин тавр, чанд рӯз пеш, ба таври қатъӣ тибқи ҷадвал, мо ниҳоят Java SE 11 ва татбиқи JDK (Java Development Kit) гирифтем. Java 11 бароварда шуд: хусусиятҳо ва қобorятҳои нав - 1Чун ҳамеша, versionи нав бо versionҳои кӯҳна мувофиқ хоҳад буд ва дастгирии Java 11 на пештар аз декабри соли 2026 ба охир мерасад.

Хусусиятҳои нав дар Java SE 11 (ба таҳиягарон намоён)

Ёдовар мешавем, ки дар Java тағирот тавассути татбиқи JEP "Пешниҳоди такмилдиҳии JDK" анҷом дода мешавад. JEP пешниҳод барои такмил додани OpenJDK аст ва метавонад тасдиқ, таъхир ё рад карда шавад. Яъне, аслан маҷмӯи JEPҳо стратегияи рушд барои OpenJDK мебошад. Дар қавсҳои мураббаъ пеш аз "хусусият" мо рақами JEP-и мувофиқро нишон медиҳем. [323] Синтаксиси маҳаллӣ-тағйирёбанда барои параметрҳои Ламбда - синтаксиси var барои параметрҳои лямбда Java 10 калимаи калидии varро ҷорӣ кард, ки имкон дод, ки навъи тағирёбандаи маҳаллӣ ба таври возеҳ муайян карда нашавад. Ин codeро содда кард. JEP 323 истифодаи ин синтаксисро бо ифодаҳои лямбда васеъ мекунад. Мисоли оддӣ:
list.stream ()
                 .map ((var s) -> s.toLowerCase ())
                 .collect (Collectors.toList ());
Тавре Саймон Риттер , як воҳиди маъруфи Java, менависад, як барномасози ботаҷрибаи Java қайд мекунад, ки истифодаи var дар ин ҳолат метавонад нолозим бошад, зеро рамзи дар боло зикршударо бо зерин иваз кардан мумкин аст:
list.stream ()
                  .map (s -> s.toLowerCase ())
                  .collect (Collectors.toList ());
Пас чаро var destek? Танҳо як ҳолати махсус вуҷуд дорад - вақте ки шумо мехоҳед ба параметри ламбда эзоҳ илова кунед. Инро бе ягон намуди ҷалб кардан ғайриимкон аст ва барои пешгирӣ кардани истифодаи навъи возеҳ, мо метавонем ҳама чизро бо истифода аз var содда кунем:
list.stream ()
                 .map ((@ Notnull var s) -> s.toLowerCase ())
                 .collect (Collectors.toList ());
[330] Оғози барномаҳои ягонаи файли codeи сарчашма Такмor оғозкунандаи Java барои оғоз кардани барнома ҳамчун файли ягона бо codeи сарчашмаи Java Java аксар вақт барои синтаксиси муфассал ва "маросими" чандқадамонаи оғози ҳатто як барномаи ночиз танқид карда мешавад. Баъзан ин навоваронро метарсонад. Барои навиштани замима, ки танҳо чопи " Салом Ҷаҳон! " ", шумо бояд синфро бо voidусули асосии статикии оммавӣ нависед ва System.out.println. Пас аз анҷом додани ин, шумо бояд codeро бо истифода аз javac тартиб диҳед . Ниҳоят, пас аз ин, шумо метавонед барномаеро оғоз кунед, ки саломи бадбахтро нишон медиҳад (албатта, муҳити ҳамгирошудаи рушд, ҳам IDEA ва ҳам дар JavaRush сохташуда , ин "сеҳри оғози барнома" -ро мустақилона иҷро мекунад - ёддошти муҳаррир ). Биёед ростқавл бошем: дар аксари забонҳои барномасозӣ, скрипти воқеии иҷро кардани барномаҳо хеле соддатар менамояд. JEP 330 зарурати тартиб додани як замимаи як файлро аз байн мебарад, аз ин рӯ ҳоло агар шумо сатри фармонро истифода баред, танҳо нависед
java HelloWorld.java
Оғозкунандаи Java муайян мекунад, ки файл рамзи сарчашмаи Java-ро дар бар мегирад ва пеш аз иҷрои он codeро ба файли синфӣ тартиб медиҳад. Шумо метавонед параметрҳоро пас аз ё пеш аз номи файли codeи сарчашма ҷойгир кунед. Онҳое, ки пас аз ном гузошта шудаанд, ҳангоми иҷрои барнома ҳамчун параметрҳо интиқол дода мешаванд. Онҳое, ки пеш аз ном гузошта шудаанд, пас аз тартиб додани code ҳамчун параметр ба оғозкунандаи Java интиқол дода мешаванд. Вариантҳои мушаххаси компилятор (масалан, classpath) инчунин барои тартиб додан ба 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 (Стандарт) - Дастгирии API-и HTTP Client стандартизатсия шудааст JDK 9 API-и навро барои дастгирии протоколи Client HTTP (JEP 110) муаррифӣ кард . Азбаски JDK 9 инчунин Системаи Java Platform Module (JPMS) -ро муаррифӣ кард, ин API ҳамчун модули инкубатор дохил карда шуд (инҳо модулҳо мебошанд, ки ба таҳиягарон бо API-ҳои нав, ки ҳанӯз дар Java SE стандартӣ нашудаанд, дар ҳоле ки API-ҳои "зинда" мавҷуданд. барои нест кардан омода шудааст - таҳиягарон метавонанд API-ҳои навро санҷанд ва кӯшиш кунанд, ки фикру мулоҳизаҳои худро пешниҳод кунанд). Пас аз ворид кардани тағйироти зарурӣ (ин API дар JDK 10 нав карда шудааст), API метавонад як қисми стандарт гардад. Ҳамин тавр, HTTP Client API ҳоло расман ба Java SE 11 дохил карда шудааст . Ин модул ва бастаи навро барои JDK, java.net.http муаррифӣ мекунад . Навъҳои асосии нав инҳоянд: HttpClient HttpRequest HttpResponse WebSocket Ин API-ро метавон ба таври синхронӣ ё асинхронӣ истифода бурд. Дар ҳолати асинхронӣ, CompletionFuturesва истифода мешаванд CompletionStages. [320] Хориҷ Модулҳои Java EE ва CORBA Бо ҷорӣ намудани Java Platform Module System (JPMS) дар versionи нӯҳуми Java, имкон пайдо шуд, ки файли монолитии rt.jar ба якчанд модул тақсим карда шавад. Илова бар ин, JPMS ба шумо имкон медиҳад, ки муҳити кории Java-ро эҷод кунед, ки танҳо модулҳои ба барномаи шумо лозимиро дар бар мегирад ва андозаи онро хеле кам мекунад. Бо сарҳадҳои шаффоф муайяншудаи модул тоза кардани қисмҳои кӯҳнашудаи Java API хеле осонтар аст - ин корро JEP 320 мекунад. Метамодули java.se.ee шаш модулро дар бар мегирад, ки қисми стандарти Java SE 11 нестанд ва дохил карда намешаванд дар JDK:
  • корба
  • муомилот
  • фаъолсозӣ
  • xml.bind
  • xml.ws
  • xml.ws.annotation
Ин модулҳо дар JDK 9 бекор карда шуда буданд ва ба таври нобаёнӣ дар таҳия ё иҷро дохил карда нашудаанд. Ин маънои онро дорад, ки агар шумо кӯшиш кунед, ки барномаеро тартиб диҳед ё иҷро кунед, ки API-ҳои ин модулҳоро дар JDK 9 ё JDK 10 истифода мебарад, он ноком шуд. Агар шумо API-ҳои ин модулҳоро дар codeи худ истифода баред, шумо бояд онҳоро ҳамчун модул ё китобхонаи алоҳида таъмин кунед.

API-ҳои нав

Шумораи зиёди API-ҳои нав дар JDK 11 ба шарофати ворид кардани модулҳои HTTP Client ва Flight Recorder ба стандарти забон пайдо шуданд . Барои рӯйхати пурраи APIҳо, ба муқоисаи ҳамаҷонибаи зерини versionҳои гуногуни JDK нигаред , ки аз ҷониби Гуннар Морлинг тартиб дода шудааст. Ва дар ин ёддошт мо баъзе усулҳои навро номбар мекунем, ки ба модулҳои java.net.http , jdk.jfr ва java.security дохил карда нашудаанд . java.lang.String Эҳтимол яке аз муҳимтарин тағирот ба String дар JDK 11 API, якчанд усулҳои нави муфид мавҷуданд.
  • boolean isBlank (): ҳақиқӣ бар мегардонад, агар сатр холӣ бошад ё танҳо фосила дошта бошад, дар акси ҳол нодуруст аст.

  • Stream lines(): Ҷараёни сатрҳои аз ин сатр истихроҷшударо, ки бо терминаторҳои сатр ҷудо шудаанд, бармегардонад.

  • String repeat (int): Сатреро бармегардонад, ки арзиши он пайвастагии ин сатр аст, ки дар инт маротиба такрор мешавад.

  • String strip (): Сатрро бо ҳамаи фосилаҳо пеш аз ё баъд аз аломати аввалини ғайрифазо хориҷ карда бармегардонад.

  • String stripLeading (): Сатрро бо ҳамаи фосилаҳо то аломати аввалини фосилаи хориҷшуда бармегардонад.

  • String stripTrainling (): Сатрро бо ҳамаи фосилаҳое бармегардонад, ки пас аз хориҷ кардани аломати охирини фосилавӣ рух медиҳанд.
strip()Усул аллакай як чизи шабеҳро иҷро кардааст trim (), аммо аз рӯи фосила ин усулҳо чизҳои гуногунро доранд. Дар ҳолате, ки trim()танҳо фосилаҳо бурида мешаванд ва дар strip()- инчунин аломатҳои махсус, ба монанди ҷадвалҳо. java.lang.StringBuffer java.lang.StringBuilder Ҳардуи ин синфҳо усули наверо дар бар мегиранд compareTo (), ки StringBuffer/ қабул мекунанд StringBuilderва бармегардонанд int. Усули мукоисаи лугавй ба усули нав монанд аст compareTo() CharSequence. java.io.ByteArrayOutputStream
  • void writeBytes (byte []): ҳамаи byteҳои параметрро ба ҷараёни баромади java.io.FileReader менависад
Дар ин ҷо ду конструктори нав мавҷуданд, ки ба шумо имкон медиҳанд, ки Charset. java.io.FileWriter Чор созандаҳои нав, ки ба шумо имкон медиҳанд, ки Charseт. java.io.InputStream
  • io.InputStream nullInputStream (): бар мегардонад InputStream, ки ягон byteро намехонад. Ин усулро чӣ тавр истифода бурдан мумкин аст? Шумо метавонед онро ҳамчун чизе монанди /dev/null барои партофтани баромади ба шумо лозим нест ё ворид кардани вуруде, ки ҳамеша byteҳои сифрро бармегардонад, фикр кунед.
java.io.OutputStream
  • io.OutputStream nullOutputStream ()
java.io.Reader
  • io.Reader nullReader ()
java.io.Writer
  • io.Writer nullWriter ()
java.lang.Характер
  • String toString (int): Ин изофабори усули мавҷуда аст, аммо ба ҷои char int -ро истифода мебарад.
java.lang.CharSequence
  • int compare (CharSequence, CharSequence): лексикографӣ ду мисолро муқоиса мекунад CharSequence. Қимати манфӣ, сифр ё арзиши мусбатро бармегардонад, агар пайдарпаии аввал мутаносибан аз ҷиҳати лексикографӣ камтар, ба баробар ё бузургтар аз дуюм бошад.
java.lang.ref.Reference
    lang.Object clone (): Инҷor Java Саймон Риттер иқрор мешавад, ки ин усул ӯро ошуфтааст. Синф Referenceинтерфейсро амалӣ намекунад Cloneableва ин усул ҳамеша истисноро мегузорад CloneNotSupportedException. Бо вуҷуди ин, коршинос пешниҳод мекунад, ки ин усул дар оянда барои чизе муфид хоҳад буд.
java.lang.Runtime java.lang.System Дар ин ҷо усулҳои нав вуҷуд надоранд. Биёед танҳо қайд кунем, ки усул runFinalizersOnExit ()аз ҳардуи ин синфҳо хориҷ карда шудааст, ки метавонад боиси мушкилоти мутобиқат гардад. java.lang.Thread Ягон усулҳои иловагӣ, мо танҳо зикр мекунем, ки destroy ()онҳо stop (Throwable)хориҷ карда шудаанд. Бо вуҷуди ин stop (), ки ҳеҷ далеле надорад, то ҳол дастрас аст. Лутфан инро дар хотир нигоҳ доред, зеро метавонад мушкилоти мутобиқат вуҷуд дошта бошад. 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): Интихоб ва иҷро кардани амал дар калидҳое, ки каналҳои мувофиқи онҳо барои амалиёти воридотӣ омодаанд. Параметри тӯлонӣ вақти фарогири вақт аст.

  • int select (java.util.function.Consumer): мисли усули дар боло зикршуда кор мекунад, аммо бидуни мӯҳлат.

  • int selectNow (java.util.function.Consumer): мисли усули боло кор мекунад, танҳо он баста намешавад.

java.nio.file.Files
  • String readString (Path): Тамоми мундариҷаро аз файл ба сатр мехонад, byteҳоро ба аломатҳо бо истифода аз рамзгузории UTF-8 рамзкушоӣ мекунад .

  • String readString (Path, Charset): Монанди усули дар боло зикршуда кор мекунад, аммо byteҳоро ба аломатҳо бо истифода аз Charset.

  • Path writeString (Path, CharSequence, java.nio.file. OpenOption []): Агар шумо пайдарпайии аломатҳоро CharSequenceба файл нависед, он аломатҳо ба byteҳо рамзгузорӣ карда мешаванд (бо истифода аз UTF-8 ).

  • Path writeString (Path, CharSequence, java.nio.file. Charset, OpenOption []): мисли усули дар боло буда кор мекунад, танҳо аломатҳо бо истифода аз byteҳо рамзгузорӣ карда мешаванд 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): предикатеро бармегардонад, ки инкори предикати додашуда мебошад.
Масалан, рамзи зерин:
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 (): Агар арзиш надошта бошад , ҳақиқӣ , дар акси ҳол нодуруст бар мегардонад .
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): Маълумоти воридшударо барои фишурда таъин мекунад. Он инчунин як изофабори усули мавҷуда аст.
java.util.zip.Inflater
  • int inflate (ByteBuffer): Байтро ба буфери муайяншуда мекушояд. Шумораи воқеии 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 Java ва забонҳои дигар синфҳои дохorро тавассути синфҳои дохилӣ дастгирӣ мекунанд. Барои ин кор, компилятор бояд ҳиллаҳои муайянро иҷро кунад. Барои намуна:
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 . Ин тағирот барои забонҳои дигаре, ки синфҳои дохилӣ ва bytecodeро дастгирӣ мекунанд, муфид аст. Ин функсия се усули навро барои java.lang.Class муаррифӣ мекунад : Синфи getNestHost () Синф [] getNestMembers () boolean isNestmateOf (Класс) [309] Доимии Синфи файли динамикӣ Ин JEP тамдиди формати файли синфро барои дастгирии формати нав тавсиф мекунад. шакли ҳавзи доимӣ CONSTANT_Dynamic. Идеяи доимии динамикӣ ба оксиморон монанд аст, аммо аслан шумо метавонед онро ҳамчун арзиши ниҳоӣ дар Java 11 тасаввур кунед. Қимати константаҳои ҷамъкунӣ дар вақти компиляция муқаррар карда намешавад (бар хилофи дигар константҳо), балки боркуниро истифода мебарад. усули муайян кардани арзиш дар вақти интиқол. Аз ин рӯ, арзиш динамикӣ аст, аммо азбаски арзиши он танҳо як маротиба муқаррар карда мешавад, он низ доимӣ аст. Ин хусусият пеш аз ҳама ба одамоне нигаронида шудааст, ки забонҳо ва компиляторҳои навро таҳия мекунанд, ки bytecodeҳо ва файлҳои синфро ҳамчун натиҷа барои кор дар JVM тавлид мекунанд. [315] Такмor Aarch64 Intrinsics Ин JEP аз ҷониби ҷомеаи Red Hat пешниҳод шудааст. JVM акнун метавонад дастурҳои махсусгардонидашудаи дар маҷмӯи дастурҳои Arm 64 мавҷудбударо истифода барад.Аз ҷумла, ин кори , методҳо sin ()ва cos ()синфи java.lang.Mathlog () -ро беҳтар мекунад . [318] Epsilon: Ҷамъоварии партовҳои No-Op Мисли JEP 315 , шумо метавонед ба Red Hat барои ҷорӣ кардани коллектори партовҳои Epsilon ташаккур кунед. Эпсилон ғайриоддӣ аст, ки он воқеан партовҳоро ҷамъ намекунад! Ҳангоми сохтани an objectҳои нав, он дар ҳолати зарурӣ хотира ҷудо мекунад, аммо фазои ишғолкардаи an objectҳои сабтнашударо барқарор намекунад. « Гап дар чист? ", - мепурсед. Маълум мешавад, ки ин «ҷамъоварии партов» ду мақсад дорад:
  1. Пеш аз ҳама, ин коллектори партовҳо барои таъмини он тарҳрезӣ шудааст, ки алгоритмҳои нави GC аз рӯи таъсири иҷрои онҳо арзёбӣ карда шаванд. Идеяи он аст, ки як барномаи намунавӣ бо Epsilon иҷро карда шавад ва маҷмӯи ченакҳо тавлид шавад. Алгоритми нави ҷамъоварии ахлот фаъол карда мешавад, ҳамон санҷишҳо гузаронида мешаванд ва сипас натиҷаҳо муқоиса карда мешаванд.

  2. Барои вазифаҳои хеле кӯтоҳ (фикр кунед, ки вазифаҳои бе server дар абр), ки дар он шумо кафолат дода метавонед, ки хотираи ба теппа ҷудошуда зиёд нахоҳед шуд. Ин метавонад иҷроишро тавассути бартараф кардани хароҷоти изофӣ (аз ҷумла ҷамъоварии омори зарурӣ барои қарор додани кор кардани коллектор) дар codeи барнома беҳтар кунад. Агар фазои тӯда тамом шавад, JVM метавонад бо яке аз се роҳ нодуруст танзим карда шавад:
    • муқаррарӣ номида мешавад OutOfMemoryError.
    • Аз нав танзимкунии теппаро иҷро кунед
    • Диски сахти JVM ноком шуд ва шояд вазифаи дигарро иҷро кунад (масалан, оғоз кардани ислоҳкунанда).
[328]: Сабткунандаи парвоз сабткунандаи парвоз як чаҳорчӯбаи ба даст овардани маълумот дар сатҳи паст барои JVM мебошад. Пеш аз JDK 11, ин хусусияти тиҷоратӣ дар дуии Oracle JDK буд. Ҳоло Oracle фарқиятҳои функсионалии байни Oracle JDK ва як сохти OpenJDK-ро аз байн мебарад. Ин аст он чизе ки Сабткунандаи парвоз мекунад :
  • API-ро барои тавлид ва истеъмоли маълумот ҳамчун рӯйдодҳо таъмин мекунад
  • Механизми буферӣ ва формати дуии маълумотро таъмин мекунад
  • Мутобиқсозӣ ва филтр кардани рӯйдодҳоро иҷозат медиҳад
  • Таъмин кардани чорабиниҳо барои китобхонаҳои OS, JVM HotSpot ва JDK
Дар ин ҷо ду модули нав мавҷуданд: jdk.jfr ва jdk.management.jfr . [329] Алгоритмҳои криптографии ChaCha20 ва Poly1305 Ин JEP дар бораи навсозии рамзҳои аз ҷониби JDK истифодашаванда мебошад . Ин ҳолат алгоритмҳои рамзгузории ChaCha20 ва ChaCha20-Poly1305- ро тавре, ки дар RFC 7539 зикр шудааст, амалӣ мекунад. ChaCha20 як шифри нисбатан нави ҷараён аст, ки метавонад рамзи кӯҳна ва ноамн RC4- ро иваз кунад . [333] ZGC: Ҷамъоварии партовҳои камдаромади миқёспазир Ҷамъоварии партовҳои таҷрибавии миқёспазири камдаромад. Барои истифода бо барномаҳое тарҳрезӣ шудааст, ки тӯдаи калон (мултигигаbyte) ва таъхири камро талаб мекунанд. Он як теппаи насли ягонаро истифода мебарад ва аксари (вале на ҳама) кори ҷамъоварии ахлотро дар як вақт бо барнома иҷро мекунад. [332] Амнияти қабати нақлиётӣ (TLS) 1.3 TLS 1.3 (RFC 8446) як часби асосии протоколи амнияти қабати нақлиётии TLS мебошад, ки нисбат ба versionҳои қаблӣ беҳбудиҳои назарраси амният ва иҷроишро таъмин мекунад. JDK ҳоло ин versionи протоколро дастгирӣ мекунад. Мавод ба мақолаи Саймон Риттер ва ҳуҷҷатҳои расмӣ асос ёфтааст .
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION