<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Sealed Classes on SoftwareGarden.dev</title><link>https://softwaregarden.dev/en/tags/sealed-classes/</link><description>Recent content in Sealed Classes on SoftwareGarden.dev</description><generator>Hugo -- gohugo.io</generator><language>en_GB</language><copyright>© Piotr Przybył SoftwareGarden.dev CC BY-NC-SA 4.0</copyright><lastBuildDate>Tue, 12 Oct 2021 10:00:00 +0200</lastBuildDate><atom:link href="https://softwaregarden.dev/en/tags/sealed-classes/index.xml" rel="self" type="application/rss+xml"/><item><title>Java 16 &amp; 17. What's new and noteworthy??</title><link>https://softwaregarden.dev/en/talks/java-17-new-and-noteworthy/</link><pubDate>Tue, 12 Oct 2021 10:00:00 +0200</pubDate><guid>https://softwaregarden.dev/en/talks/java-17-new-and-noteworthy/</guid><description>&lt;p&gt;Another (half a) year has passed, another major Java™ version has been released.
Java was supposed &amp;ldquo;to be slow&amp;rdquo;. However, Java turns out to evolve so fast, that next releases aren&amp;rsquo;t just version bumps, but might significantly change the rules of the game. That&amp;rsquo;s a good reason to check out what&amp;rsquo;s new in Java.
We&amp;rsquo;re going to cover:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Records, where and how to use them, apart from DTO/VO&lt;/li&gt;
&lt;li&gt;Pattern matching with instanceof A.K.A. Smart casting&lt;/li&gt;
&lt;li&gt;Sealed classes, new dimension of types extensibility (for inheritance)&lt;/li&gt;
&lt;li&gt;Warnings from Jigsaw (&amp;ndash;illegal-access strikes back!)&lt;/li&gt;
&lt;li&gt;And Valhalla (for value-based classes abuse)&lt;/li&gt;
&lt;li&gt;Talking to native stuff from Panama&lt;/li&gt;
&lt;li&gt;and more.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All visualised in actual code, not just slides.&lt;/p&gt;
&lt;p&gt;I was able to talk on Java 16 and 17 for more almost 3 hours at &lt;a href="https://www.devoxx.fr/"&gt;Devoxx France&lt;/a&gt; and also at &lt;a href="http://2022.devoxx.pl/speakers/speaker-details%3Fid=6201.html"&gt;Devoxx Poland&lt;/a&gt; (but the video hasn&amp;rsquo;t been released yet.)
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube-nocookie.com/embed/wUinQWbTdFE?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;/p&gt;</description></item><item><title>Java 16. What's new and noteworthy?</title><link>https://softwaregarden.dev/en/talks/java-16-new-and-noteworthy/</link><pubDate>Thu, 06 May 2021 10:00:00 +0200</pubDate><guid>https://softwaregarden.dev/en/talks/java-16-new-and-noteworthy/</guid><description>&lt;p&gt;Another (half a) year has passed, another major Java™ version has been released.
Java was supposed &amp;ldquo;to be slow&amp;rdquo;. However, Java turns out to evolve so fast, that next releases aren&amp;rsquo;t just version bumps, but might significantly change the rules of the game. That&amp;rsquo;s a good reason to check out what&amp;rsquo;s new in Java.
We&amp;rsquo;re going to cover:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Records, where and how to use them, apart from DTO/VO&lt;/li&gt;
&lt;li&gt;Pattern matching with instanceof A.K.A. Smart casting&lt;/li&gt;
&lt;li&gt;Sealed classes, new dimension of types extensibility (for inheritance)&lt;/li&gt;
&lt;li&gt;Warnings from Jigsaw (&amp;ndash;illegal-access strikes back!)&lt;/li&gt;
&lt;li&gt;And Valhalla (for value-based classes abuse)&lt;/li&gt;
&lt;li&gt;Talking to native stuff from Panama&lt;/li&gt;
&lt;li&gt;and more.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All visualised in actual code, not just slides.&lt;/p&gt;
&lt;p&gt;I was able to talk on Java 16 for more than 3 hours is total thanks to joined initiative of &lt;a href="https://wroclaw.jug.pl/"&gt;WroclawJUG&lt;/a&gt; and &lt;a href="https://silesia.jug.pl/"&gt;SilesiaJUG&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Part one (covering almost everything except records and trivia):&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube-nocookie.com/embed/OLcFpWEzf9c?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;Part two (covering records and some trivia):&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube-nocookie.com/embed/QHT4xosL97w?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Surfing Java™ 12-16</title><link>https://softwaregarden.dev/en/talks/surfing-java-12-16/</link><pubDate>Thu, 15 Oct 2020 10:00:00 +0200</pubDate><guid>https://softwaregarden.dev/en/talks/surfing-java-12-16/</guid><description>&lt;p&gt;In the dark ages, we had to wait for 3-4 years to see the new Java version with some new features. Now there are two major releases every year! Can we benefit from the new features before the next LTS release?&lt;/p&gt;
&lt;p&gt;We don’t have to wait 3 years or so for new features any more. Isn’t that cool? 😉 So… you’d like to check what has happened since Java 11? Record types? Switch expressions? Pattern matching? No more NPE? String blocks? New functions in APIs? What are the Shenandoah and ZGC about? AppCDS to speed up spin-off?&lt;/p&gt;
&lt;p&gt;If you find them interesting, let’s check out together new interesting stuff.&lt;/p&gt;
&lt;p&gt;In this talk (because it&amp;rsquo;s limited to 45 minutes) I&amp;rsquo;m able to merely scratch the surface of the changes. Please don&amp;rsquo;t confuse it with a deep dive.&lt;/p&gt;
&lt;p&gt;I was able to give this talk at e.g. Java Developer Days, Od Kodera do Developera, CodeMotion Spain.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube-nocookie.com/embed/baATb3B7NW8?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Java 15. What's new and noteworthy?</title><link>https://softwaregarden.dev/en/talks/java-15-new-and-noteworthy/</link><pubDate>Fri, 09 Oct 2020 10:00:00 +0200</pubDate><guid>https://softwaregarden.dev/en/talks/java-15-new-and-noteworthy/</guid><description>&lt;p&gt;Another (half a) year has passed, another major Java™ version has been released.
Java was supposed &amp;ldquo;to be slow&amp;rdquo;. However, Java turns out to evolve so fast, that next releases aren&amp;rsquo;t just version bumps, but might significantly change the game rules. That&amp;rsquo;s a good reason for another deep dive in Java.
We&amp;rsquo;re going to cover:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Production ready GCs: ZGC and Shenandoah, if you don&amp;rsquo;t like ice ages&lt;/li&gt;
&lt;li&gt;Text blocks, which make Strings easy to declare also for non-liners&lt;/li&gt;
&lt;li&gt;Pattern matching with instanceof A.K.A. Smart casting&lt;/li&gt;
&lt;li&gt;Records, where and how to use them, apart from DTO/VO&lt;/li&gt;
&lt;li&gt;Sealed classes, new dimension of types visibility (for inheritance)&lt;/li&gt;
&lt;li&gt;Hidden classes, which are so hidden, that they can&amp;rsquo;t even use themselves&lt;/li&gt;
&lt;li&gt;Foreign memory access, for some off-the-heap data&lt;/li&gt;
&lt;li&gt;Helpful NPE messages, which make chasing nulls easier than ever&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And of course removed, deprecated and tuned stuff (bye bye Nashorn). All visualised in actual code, not just slides.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube-nocookie.com/embed/SfcBxnsyaME?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;So far this presentation has been delivered (as a Deep Dive) in Polish only, for WarszawaJUG.
Unfortunately, during the streaming there were some&amp;hellip; resolution challenges ;-)&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s why if you&amp;rsquo;d like to see my screen only (no organisers&amp;rsquo; slides and talking heads), it&amp;rsquo;s possible as well: the FullHD &lt;a href="https://youtu.be/QncF-yLjYTc"&gt;recording&lt;/a&gt; has been published on YT.&lt;/p&gt;</description></item></channel></rss>