Најновија ревизија Јаве уводи корисну синтаксу за Рецордс, између осталих побољшања.
Свет Јава програмирања се стално развија, захтевајући од вас да будете у току да бисте се истакли у свом занату.
Јава 21 доноси талас узбудљивих побољшања која револуционишу начин на који приступате истовремености, операцијама прикупљања и раду са записима.
Представљамо виртуелне нити
Скалирање серверских апликација је увек представљало изазове, са нитима које често постају уска грла. Ограничен број нити, у комбинацији са честим чекањем догађаја или закључавања за деблокирање, омета свеукупне перформансе.
У прошлости је решавање овог проблема укључивало коришћење конструкција попут ЦомплетаблеФутуре или реактивни оквири, што је резултирало замршеним кодом који је било тешко разумети и одржавати.
На срећу, Јава 19 је увела виртуелне нити као функцију за преглед, коју је Јава 21 побољшала и учврстила преко ЈДК Енханцемент Пропосал 444.
Виртуелне нити нуде веома обећавајућу алтернативу, омогућавајући вам да се ефикасније носите са изазовима скалабилности. Ово доводи до побољшаних перформанси и побољшаног одзива серверских апликација.
Секвенциране колекције су употребљивије
традиционално, користећи повезане листе у вашем Јава програмирању захтева прилично опсежан код. На пример, да бисте преузели последњи елемент, морате да користите овај гломазан приступ:
вар ласт = лист.гет (лист.сизе() - 1);
Међутим, Јава 21 уводи концизну и елегантну алтернативу:
вар ласт = лист.гетЛаст();
Слично томе, приступ првом елементу ЛинкедХасхСет-а захтева кружну руту:
вар први = линкедХасхСет.итератор().нект();
Али са Јава 21, овај задатак постаје много једноставнији:
вар фирст = линкедХасхСет.гетФирст();
Такође можете приступити последњем елементу ЛинкедХасхСет-а помоћу новог гетЛаст метод који избегава понављање кроз цео скуп.
Ова побољшања у секвенцираним збиркама не само да побољшавају читљивост кода већ и поједностављују проналажење елемената, чинећи Јава програмирање ефикаснијим и погоднијим за програмере.
Обрасци снимања за практичност
Обрасци записа, уведени као функција прегледа у Јави 19, нуде згодан механизам за приступ пољима записа у Јави без потребе за експлицитним пребацивањем или методама приступа.
Они синергишу са Усклађивање са узорком, на пример и Паттерн Матцхинг фор свитцх, значајно поједностављујући код и побољшавајући укупну читљивост.
Ево илустрације овог концепта, са једноставним записом под називом Положај:
јавности запис Положај(инт Икс, инт и){}
Раније је извођење различитих радњи на основу класе објекта захтевало коришћење Усклађивање са узорком, на пример, као што је приказано у следећем исечку кода:
јавностипразнинапринт(Објекат о){
ако (о инстанцеоф Позиција п) {
Систем.оут.принтф(„о је позиција: %д/%д%н“, п.к(), п.и());
} другоако (о инстанцеоф Стринг с) {
Систем.оут.принтф("о је стринг: %с%н", с);
} друго {
Систем.оут.принтф("о је нешто друго: %с%н", о);
}
}
Витх Рецорд Паттернс, сада можете директно да ускладите образац записа као што је Положај (инт к, инт и) уместо да се користи Положај стр шаблон. Ово вам омогућава да приступите променљивим Икс и и директно у коду, елиминишући потребу за п.к() и п.и():
јавностипразнинапринт(Објекат о){
ако (о инстанцеофПоложај(инт Икс, инт и)) {
Систем.оут.принтф(„о је позиција: %д/%д%н“, к, и);
} другоако (о инстанцеоф Стринг с) {
Систем.оут.принтф("о је стринг: %с%н", с);
} друго {
Систем.оут.принтф("о је нешто друго: %с%н", о);
}
}
Штавише, можете користити Рецорд Паттернс у споју са Паттерн Матцхинг фор свитцх, да додатно поједноставите свој код:
јавностипразнинапринт(Објекат о){
прекидач (о) {
случајПоложај(инт Икс, инт и) - > Систем.оут.принтф(„о је позиција: %д/%д%н“, к, и);
случај Стринг с - > Систем.оут.принтф("о је стринг: %с%н", с);
Уобичајено - > Систем.оут.принтф("о је нешто друго: %с%н", о);
}
}
Угнежђени обрасци записа омогућавају вам да упарите записе чија су поља и сама записи. На пример, размотрите запис под називом Пут који обухвата а из и до позиција:
јавности запис Пут(Позиција од, Положај до){}
Коришћењем шаблона записа, штампање а Пут објекат постаје сажетији:
јавностипразнинапринт(Објекат о){
прекидач (о) {
случајПут(Позиција од, Положај до) - > Систем.оут.принтф("о је путања: %д/%д -> %д/%д%н", фром.к(), од.и(), до.Икс(), до.и());
// други случајеви
}
}
Уз помоћ Рецорд Паттернс, руковање записима са пољима различитих типова постаје очигледније и читљивије. Претпоставимо да сте изменили записе, Поситион2Д и Поситион3Д, где Положајје Јава интерфејс да обоје имплементирају:
јавности запечаћена интерфејсПоложајдозволеПоситион2Д, Поситион3Д{}
јавности запис Поситион2Д(инт Икс, инт и) имплементира Положај {}
јавности запис Поситион3Д(инт Икс, инт и, инт з) имплементира Положај {}
јавности путања записа < П проширује позицију > (П од, П до) {}
Да бисте разликовали понашање штампања за 2Д и 3Д путање, можете користити обрасце записа:
јавностипразнинапринт(Објекат о){
прекидач (о) {
случајПут(Позиција2Д од, Положај2Д до) - > Систем.оут.принтф("о је 2Д путања: %д/%д -> %д/%д%н", фром.к(), од.и(), до.Икс(), до.и());
случајПут(Позиција3Д од, Поситион3Д до) - > Систем.оут.принтф("о је 3Д путања: %д/%д/%д -> %д/%д/%д%н", фром.к(), од.и(), од.з(), до.Икс(), до.и(), до.з());
// други случајеви
}
}
Обрасци записа значајно смањују опширност и побољшавају читљивост кода када се ради са записима који садрже поља различитих типова.
Откључајте нове могућности са Јавом 21
Јава 21 уводи мноштво моћних функција које повећавају могућности програмског језика Јава. Прихватајући ова побољшања, можете да поједноставите своје развојне процесе и откључате нове могућности за своје апликације.
Бити у току са најновијим језичким функцијама и Јава оквирима омогућава вам да одржавате ефикасан код који се може одржавати, обезбеђујући да останете на челу Јава програмирања.