devnews.pl

Main Menu

  • Informacje
    • Systemy i przeglądarki
    • Gadżety
  • Narzędzia
  • Frontend
  • Backend
  • QA
  • Języki programowania

logo

devnews.pl

  • Informacje
    • Systemy i przeglądarki
    • Gadżety
  • Narzędzia
  • Frontend
  • Backend
  • QA
  • Języki programowania
Języki programowania
Home›Języki programowania›Java 15 z blokami tekstu oraz ukrytymi klasami

Java 15 z blokami tekstu oraz ukrytymi klasami

By Bernadeta Zapała
21 września 2020
187
0
Share:

W maju pisaliśmy o wydaniu Java Development Kit 15 (JDK 15) – podstawy dla kolejnej stabilnej wersji Java SE. Dzisiaj, twórcy Javy wydali nową wersję swojej technologii. Java 15 jest kolejnym wydaniem bez wsparcia długoterminowego. Oznacza to, że na razie nowa wersja będzie wspierana przez pół roku, do wydania kolejnej stabilnej wersji. Piętnaste wydanie Javy zawiera nowe funkcje, tj. bloki tekstu oraz zmiany w odśmiecaniu.

Java 15

Bloki tekstu

Przede wszystkim jest to funkcja, która w poprzednich wydaniach była w fazie preview, a twórcy Java 15 domyślnie ją włączyli. Dzięki blokom tekstu programiści mogą tworzyć wieloliniowe literały. Nie ma już konieczności używania do formatowania tekstu znaków ucieczki. Bloki tekstu umieszcza się między znakami cudzysłowów (“”“).

String html = """ 
              <html> 
                  <body> 
                      <p>Hello, world</p> 
                  </body> 
               </html> 
              """;

Natomiast w ten sposób tekst będzie przechowywany:

<html> 
    <body> 
        <p>Hello, world</p> 
    </body> 
</html>

Java 15: Garbage Collectory

Fazę testów ukończyły także dwa wieloplatformowe garbage collectory. Pierwszy z nich, ZGC zaprojektowano z myślą o małych opóźnieniach przy odśmiecaniu. Obecnie twórcy liczą na redukcję opóźnień na poziom poniżej 1 ms. Jest to możliwe, dzięki usprawnieniom głównych platform – Windowsa, Linuxa, a także macOS. Drugi z kolei, Shenandoah, stawia na wykonywanie jak największej pracy równolegle. Dzięki temu niezależnie od wielkości sterty osiąga krótkie czasy odśmiecania.

Ukryte klasy

Ukrytą klasą nazywa się klasę, której nie można użyć wprost przez kod bajtowy innej klasy. Jedyną opcją skorzystania z takiej klasy jest użycie refleksji. W założeniu całość mają przeprowadzać frameworki, które tworzą klasy w trakcie wykonania. Ukryte klasy w Java 15 rozszerzają Lookup API o metodę Lookup::defineHiddenClass.

Zapieczętowane klasy w Java 15

Kolejną nowością w dziale klas są także klasy zapieczętowane. Na razie znajdują się w fazie preview. Pozwalają one ograniczyć to, jakie inne klasy czy interfejsy mogą je rozszerzyć. Przede wszystkim celem jest tu większa kontrola programisty nad tym, gdzie ma znajdować się odpowiedzialność za implementację. Ponadto, może on ograniczyć używanie nadklas.

Przykład zapieczętowanych klas

Przykładowo, dodanie słowa kluczowego sealed, a następnie permits ograniczy możliwości rozszerzania klasy Shape do wymienionych niżej (Circle, Rectangle, a także Square). W przedstawionej dokumentacji znajduje się poniższy przykład:

package com.example.geometry;
public abstract sealed class Shape
    permits Circle, Rectangle, Square {...}

Przede wszystkim wymienione w permits klasy powinny znajdować się w tym samym pakiecie lub module.

Kolejne preview – dopasowanie do wzorca oraz rekordy

Dwie funkcje wprowadzone w Java 14 jako preview zostały oznaczone „second preview”. Mowa o rekordach, a także dopasowaniu do wzorca.

Rekordy

Rekordy to skrócona notacja dla klas służących jako niemutowane kontenery danych. W nowej wersji Java 15 rozwinięto jej integrację z innymi koncepcjami języka. Ponadto dodano możliwość tworzenia lokalnych rekordów.

Dopasowanie do wzorca

Przede wszystkim Pattern matching for instanceof w przyszłości ma się stać jednym z centralnych konceptów w języku. W Java 15 ta funkcja nie otrzymała żadnych nowości, przedstawiono ją jako preview, by zebrać więcej informacji zwrotnych.

Źródło: Bulldogjob, Open JDK

TagsclassGarbage CollectorJavaJava 15

Share:

  • Narzędzia

    ReScript 8.4 z przypiętymi zależnościami

  • Systemy i przeglądarki

    Chrome 84 – zmiany w powiadomieniach i cookies

  • Snowpack 3.0 RC
    Informacje

    Snowpack 2.0 z szybszym środowiskiem programistycznym

  • 25 lutego 2021

    ReacType 5.0 – zmiany we wprowadzaniu komponentów

  • 23 lutego 2021

    Dapr v.1.0 gotowy do fazy produkcji

  • 22 lutego 2021

    ReScript 9.0 z zewnętrzną konfiguracją stdlib

  • 22 lutego 2021

    One UI 3.1 z ciekawymi nowościami dla urządzeń Samsunga

  • 22 lutego 2021

    Windows Terminal Preview 1.6 z nową sekcją ustawień

  • 15 lutego 2021

    Visual Studio Code 1.53 z ulepszeniami debugowania

  • 8 lutego 2021

    Edge 89 beta, Edge Dev 90 i nowości na kanale Canary

  • 2 lutego 2021

    Firefox 85 i Firefox Nightly – nowe wersje przeglądarki Mozilli

  • 29 stycznia 2021

    Billboard.js 2.2.0 z nowymi funkcjami wykresów

  • 26 stycznia 2021

    Kendo UI R1 2021 – nowości dla bibliotek

  • 21 stycznia 2021

    Narzędzie Vno – połączenie Vue i Deno

  • 19 stycznia 2021

    GitHub Enterprise Server 3.0 RC – kandydat do wydania

  • 15 stycznia 2021

    TypeScript 4.2 Beta z ulepszeniami typów krotek

  • 13 stycznia 2021

    Styczniowy Patch Tuesday z luką 0-day

  • 11 stycznia 2021

    Safari Technology Preview 118 dostępne dla programistów

  • 8 stycznia 2021

    Microsoft Launcher na Androida z usprawnionym dotykiem

  • 7 stycznia 2021

    WebStorm 2020.3.1 dostępny dla urządzeń z Apple Silicon

  • 22 grudnia 2020

    ReScript 8.4 z przypiętymi zależnościami

  • 14 grudnia 2020

    Edge 88 beta i przeglądarka na kanale Canary dostępne!

  • 9 grudnia 2020

    Chrome 88 Beta z nowościami w WebXR

  • 9 grudnia 2020

    Snowpack 3.0 RC z eksperymentalnymi funkcjami

  • 4 grudnia 2020

    Android Studio Arctic Fox – nowe wydanie narzędzia Google

  • 4 grudnia 2020

    The Hack Summit 2020 – konferencja IT Security

  • 2 grudnia 2020

    PowerToys 0.27 z poprawkami błędów

  • 2 grudnia 2020

    Aleph.js alfa z funkcją importowania map

  • 27 listopada 2020

    Cypress 6.0 zwiększa zakres możliwości obsługi sieci

  • 26 listopada 2020

    Firefox 83 przyspiesza i wprowadza tryb HTTPS-Only

  • 25 listopada 2020

    Electron 11.0 z obsługą Apple Silicon

  • 25 listopada 2020

    Prettier 2.2 z obsługą najnowszego TypeScript 4.1

  • 24 listopada 2020

    Tailwind CSS 2.0 z narzędziami kontroli tekstu

 

 

Jesteśmy pasjonatami najnowszych technologii w świecie programowania. Zbieramy dla Was informacje i porady z całego świata, które sprawią, że Twoja praca stanie się jeszcze bardziej efektywna.

Obserwuj nas codziennie, aby być na bieżąco oraz śmiało udostępniaj nasze posty.

Zespół DevNews

Kategorie

  • Backend
  • Bez kategorii
  • Frontend
  • Gadżety
  • Informacje
  • Języki programowania
  • Narzędzia
  • QA
  • Systemy i przeglądarki

OBSERWUJ NAS

KONTAKT

Chcesz się z nami skontaktować?

Napisz do nas wiadomość: kontakt@devnews.pl

www.devnews.pl | DEVNEWS 2020 | Newsy i ciekawostki ze świata IT