{"id":312854,"date":"2021-11-03T19:48:27","date_gmt":"2021-11-03T19:48:27","guid":{"rendered":"https:\/\/www.baeldung.com\/?p=111744"},"modified":"2021-11-03T19:48:27","modified_gmt":"2021-11-03T19:48:27","slug":"java-weekly-issue-410","status":"publish","type":"post","link":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/2021\/11\/03\/java-weekly-issue-410\/","title":{"rendered":"Java Weekly, Issue 410"},"content":{"rendered":"<p class=\"syndicated-attribution\"><meta name= \\\"keywords \\\" content= \\\"\u96fb\u5b50\u8a08\u7b97\u6a5f, \u6559\u80b2, IT \u96fb\u8166\u73ed,\u96fb\u8166\u88dc\u7fd2\uff0c \u96fb\u8166\u73ed\uff0c \u5bb6\u6559\uff0c \u79c1\u4eba\u8001\u5e2b\uff0c \u8cc7\u8a0a\u6280\u8853\uff0c \u7a0b\u5e8f\u8a2d\u8a08\uff0c \u96fb\u5b50\u8a08\u7b97\u6a5f\uff0c \u904a\u6232\uff0c \u860b\u679c\uff0c \u96fb\u5f71\uff0c \u8a08\u7b97\u6a5f\uff0c\u7de8\u78bc\uff0c Java\uff0c C\/C++\uff0c JavaScript\uff0c PHP\uff0c HTML\uff0c CSS\uff0c MySQL\uff0c mobile\uff0c Android\uff0c \u52d5\u6f2b\uff0c Python\uff0c teacher\uff0c \u88dc\u7fd2\uff0c \u96fb\u8166\u88dc\u7fd2 \u8cc7\u8a0a, \u7535\u5b50\u8ba1\u7b97\u673a, IT ,Game, apple, movie, Computer,student,Java,\u6559\u80b2, ,\u5b66\u751f, \u5b66\u4e60, learn, \u6559\u5b66,  Android, apple,anime, animation, \u4fe1\u606f\u6280\u672f, \u7a0b\u5e8f\u8bbe\u8ba1, \u79fb\u52a8\u7535\u8bdd, \u8cc7\u8a0a\u79d1\u6280,Game, Jeu, Juego,Call Of Duty ,\u4f7f\u547d\u53ec\u559a , \u6e38\u620f, \u7535\u5b50\u6e38\u620f,, \u591a\u4eba\u7535\u5b50\u6e38\u620f, \u7f51\u7edc\u6e38\u620f\uff0conline\uff0conline game, \u624b\u673a\u6e38\u620f, mobile \\\"><\/p>\n<h2 data-id=\"spring-and-java\"><strong>1. Spring and Java<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"spring-and-java\"><\/div>\n<p><a href=\"https:\/\/openjdk.java.net\/jeps\/421\"  rel=\"noopener\"><strong>&gt;&gt; JEP 421: Deprecate Finalization for Removal<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">openjdk.java.net<\/span>]<\/p>\n<p>A proposal to <strong>deprecate and then remove the infamous\u00a0<em>finalize\u00a0<\/em>method from the Java platform<\/strong>\u00a0\u2013 a detailed JEP describing the motivation, flaws, and alternatives.<\/p>\n<p><a href=\"https:\/\/www.javaspecialists.eu\/archive\/Issue294-String.format-3x-faster-in-Java-17.html\"  rel=\"noopener\"><strong>&gt;&gt; String.format() 3x faster in Java 17<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">javaspecialists.eu<\/span>]<\/p>\n<p>Let&#8217;s see how much and under what circumstances<strong> the\u00a0<em>format\u00a0<\/em>method in Java 17 performs faster than previous versions<\/strong> \u2013 quite detailed and insightful!<\/p>\n<p><a href=\"https:\/\/developers.googleblog.com\/2021\/11\/announcing-kotlin-support-for-protocol.html\"  rel=\"noopener\"><strong>&gt;&gt; Announcing Kotlin support for protocol buffers<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">developers.googleblog.com<\/span>]<\/p>\n<p>Another good news for Kotlin developers: after official gRPC support, now <strong>Kotlin is supported by the protocol buffer compiler<\/strong>.<\/p>\n<h4><strong>Also worth reading:<\/strong><\/h4>\n<ul>\n<li><a href=\"https:\/\/blog.payara.fish\/jakarta-concurrency-present-and-future\"  rel=\"noopener\"><strong>&gt;&gt; Jakarta Concurrency: Present and Future<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">blog.payara.fish<\/span>]<\/li>\n<li><a href=\"https:\/\/blog.frankel.ch\/choose-cache\/2\/\"  rel=\"noopener\"><strong>&gt;&gt; A list of cache providers<\/strong><\/a> [<span style=\"color: #800000;\">blog.frankel.ch<\/span>]<\/li>\n<li><a href=\"https:\/\/vladmihalcea.com\/polymorphic-json-objects-hibernate\/\"  rel=\"noopener\"><strong>&gt;&gt; How to map polymorphic JSON objects with JPA and Hibernate<\/strong><\/a> [<span style=\"color: #800000;\">vladmihalcea.com<\/span>]<\/li>\n<li><a href=\"https:\/\/blog.jooq.org\/javas-checked-exceptions-are-just-weird-union-types\/\"  rel=\"noopener\"><strong>&gt;&gt; Java\u2019s Checked Exceptions Are Just Weird Union Types<\/strong><\/a> [<span style=\"color: #800000;\">blog.jooq.org<\/span>]<\/li>\n<li><a href=\"https:\/\/arnoldgalovics.com\/using-native-queries-with-jpa-heres-the-catch\/\"  rel=\"noopener\"><strong>&gt;&gt; Using Native Queries With JPA? Here\u2019s The Catch<\/strong><\/a> [<span style=\"color: #800000;\">arnoldgalovics.com<\/span>]<\/li>\n<li><a href=\"https:\/\/www.infoq.com\/news\/2021\/10\/oracle-jdk-free-again\/\"  rel=\"noopener\"><strong>&gt;&gt; Oracle&#8217;s JDK 17 &#8211; Free Again for Commercial Use<\/strong><\/a> [<span style=\"color: #800000;\">infoq.com<\/span>]<\/li>\n<li><a href=\"https:\/\/openjdk.java.net\/jeps\/418\"  rel=\"noopener\"><strong>&gt;&gt; JEP 418: Internet-Address Resolution SPI<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">openjdk.java.net<\/span>]<\/li>\n<li><a href=\"http:\/\/minborgsjavapot.blogspot.com\/2021\/11\/did-you-know-you-can-create-mappers.html\"  rel=\"noopener\"><strong><span class=\"t-bg-white l-pa2 l-d-i\">&gt;&gt; Did You Know You Can Create Mappers Without Creating Underlying Objects in Java?<\/span><\/strong><\/a><span class=\"t-bg-white l-pa2 l-d-i\"> [<span style=\"color: #800000;\">minborgsjavapot.com<\/span>]<\/span><\/li>\n<\/ul>\n<p><strong>Webinars and presentations:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/inside.java\/2021\/10\/28\/insidejava-newscast-014\/\"  rel=\"noopener\"><strong>&gt;&gt; 11 Tricks From dev.java &#8211; Inside Java Newscast #14<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">inside.java<\/span>]<\/li>\n<li><a href=\"https:\/\/inside.java\/2021\/10\/26\/why-user-mode-thread-video\/\"  rel=\"noopener\"><strong>&gt;&gt; Why user-mode threads are (often) the right answer<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">inside.java<\/span>]<\/li>\n<li><a href=\"https:\/\/spring.io\/blog\/2021\/10\/28\/bootiful-podcast-daniel-mikusa-on-buildpacks-paketo-upx-tilt-graalvm-native-images-docker-containers-and-more\"  rel=\"noopener\"><strong>&gt;&gt; Bootiful Podcast: Daniel Mikusa on Buildpacks, Paketo, UPX, Tilt, GraalVM Native Images, Docker Containers and more<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/li>\n<li><a href=\"https:\/\/spring.io\/blog\/2021\/10\/27\/spring-tips-controllers-pt-1-the-c-in-model-2-mvc\"  rel=\"noopener\"><strong>&gt;&gt; Spring Tips: @Controllers (pt. 1): the &#8220;C&#8221; in Model 2 MVC<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/li>\n<li><a href=\"https:\/\/blog.sebastian-daschner.com\/entries\/jacoco-system-test-coverage\"  rel=\"noopener\"><strong>&gt;&gt; Using JaCoCo to measure system test coverage<\/strong><\/a> [<span style=\"color: #800000;\">blog.sebastian-daschner.com<\/span>]<\/li>\n<\/ul>\n<p><strong>Time to upgrade:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/quarkus.io\/blog\/quarkus-2-4-0-final-released\/\"  rel=\"noopener\"><strong>&gt;&gt; Quarkus 2.4.0.Final released<\/strong><\/a> [<span style=\"color: #800000;\">quarkus.io<\/span>]<\/li>\n<li><a href=\"https:\/\/in.relation.to\/2021\/11\/01\/hibernate-reactive-1_0_1_Final\/\"  rel=\"noopener\"><strong>&gt;&gt; Hibernate Reactive 1.0.1.Final released<\/strong><\/a> [<span style=\"color: #800000;\">in.relation.to<\/span>]<\/li>\n<li><a href=\"https:\/\/github.com\/oracle\/helidon\/releases\"  rel=\"noopener\"><strong>&gt;&gt; Helidon 2.4.0<\/strong><\/a> [<span style=\"color: #800000;\">github.com<\/span>]<\/li>\n<li><a href=\"https:\/\/www.infoq.com\/news\/2021\/10\/grails-5-released\/\"  rel=\"noopener\"><strong>&gt;&gt; Grails 5.0 Updates Underlying Frameworks and Consolidates Features<\/strong><\/a> [<span style=\"color: #800000;\">infoq.com<\/span>]<\/li>\n<li><a href=\"https:\/\/spring.io\/blog\/2021\/10\/28\/spring-graphql-1-0-0-m3-released\"  rel=\"noopener\"><strong>&gt;&gt; Spring GraphQL 1.0.0-M3 Released<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/li>\n<li><a href=\"https:\/\/andresalmiray.com\/jreleaser-0-8-0-has-been-released\/\"  rel=\"noopener\"><strong>&gt;&gt; JReleaser 0.8.0 has been released!<\/strong><\/a> [<span style=\"color: #800000;\">andresalmiray.com<\/span>]<\/li>\n<li><a href=\"https:\/\/spring.io\/blog\/2021\/10\/27\/spring-tools-4-12-1-released\"  rel=\"noopener\"><strong>&gt;&gt; Spring Tools 4.12.1 released<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/li>\n<\/ul>\n<h2 data-id=\"technical-amp-musings\"><strong>2. Technical &#038; Musings<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"technical-amp-musings\"><\/div>\n<p><a href=\"https:\/\/reflectoring.io\/laws-and-principles-of-software-development\/\"  rel=\"noopener\"><strong>&gt;&gt; Laws and Principles of Software Development<\/strong><\/a> [<span style=\"color: #800000;\">reflectoring.io<\/span>]<\/p>\n<p>A good overview of some useful <strong>patterns and principles in Software Engineering<\/strong> \u2013 a quick but useful refresher.<\/p>\n<p><strong>Also worth reading:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/netflixtechblog.com\/netflix-video-quality-at-scale-with-cosmos-microservices-552be631c113\"  rel=\"noopener\"><strong>&gt;&gt; Netflix Video Quality at Scale with Cosmos Microservices<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">netflixtechblog.com<\/span>]<\/li>\n<li><a href=\"http:\/\/blog.cleancoder.com\/uncle-bob\/2021\/10\/28\/functional-duplication.html\"  rel=\"noopener\"><strong>&gt;&gt; Functional Duplications<\/strong><\/a> [<span style=\"color: #800000;\">blog.cleancoder.com<\/span>]<\/li>\n<li><a href=\"http:\/\/www.java-allandsundry.com\/2021\/10\/service-to-service-call-patterns-in.html\"  rel=\"noopener\"><strong>&gt;&gt; Service to Service call patterns in Google Cloud &#8211; GKE<\/strong><\/a> [<span style=\"color: #800000;\">java-allandsundry.com<\/span>]<\/li>\n<li><a href=\"https:\/\/www.mscharhag.com\/architecture\/leaking-domain-logic\"  rel=\"noopener\"><strong>&gt;&gt; Avoid leaking domain logic<\/strong><\/a> [<span style=\"color: #800000;\">mscharhag.com<\/span>]<\/li>\n<li><a href=\"https:\/\/advancedweb.hu\/foreign-key-constraints-in-dynamodb\/\"  rel=\"noopener\"><strong>&gt;&gt; Foreign key constraints in DynamoDB <\/strong><\/a>[<span style=\"color: #800000;\">advancedweb.hu<\/span>]<\/li>\n<li><a href=\"https:\/\/martinfowler.com\/articles\/art-agile-foreword.html\"  rel=\"noopener\"><strong>&gt;&gt; My Foreword to &#8220;The Art of Agile Development&#8221;<\/strong><\/a> [<span style=\"color: #800000;\">martinfowler.com<\/span>]<\/li>\n<\/ul>\n<h2 data-id=\"comics\"><strong>3. Comics<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"comics\"><\/div>\n<p>And my favorite Dilberts of the week:<\/p>\n<p><a href=\"https:\/\/dilbert.com\/strip\/2021-11-03\"  rel=\"noopener\"><strong>&gt;&gt; Makes Everything Sound Bad <\/strong><\/a>[<span style=\"color: #800000;\">dilbert.com<\/span>]<\/p>\n<p><a href=\"https:\/\/dilbert.com\/strip\/2021-11-02\"  rel=\"noopener\"><strong>&gt;&gt; Boss Writes His Autobiography <\/strong><\/a>[<span style=\"color: #800000;\">dilbert.com<\/span>]<\/p>\n<p><a href=\"https:\/\/dilbert.com\/strip\/2021-10-29\"  rel=\"noopener\"><strong>&gt;&gt; Shoulders Of Giants <\/strong><\/a>[<span style=\"color: #800000;\">dilbert.com<\/span>]<\/p>\n<h2 data-id=\"pick-of-the-week\"><strong>4. Pick of the Week<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"pick-of-the-week\"><\/div>\n<p><strong><a href=\"https:\/\/www.kalzumeus.com\/2010\/08\/25\/the-hardest-adjustment-to-self-employment\/\">&gt;&gt; The Hardest Adjustment To Self Employment<\/a> <\/strong>[<span style=\"color: #993300;\">kalzumeus.com<\/span>]<\/p>\n\n<p class=\"syndicated-attribution\"><figure class= \\\"wp-block-image alignnone \\\"><img src= \\\"http:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-content\/uploads\/2016\/05\/logo2-2.png\\\" alt=\\\"IT\u96fb\u8166\u88dc\u7fd2 java\u88dc\u7fd2 \u70ba\u5927\u5bb6\u914d\u5c0d\u96fb\u8166\u88dc\u7fd2,IT freelance, \u79c1\u4eba\u8001\u5e2b, PHP\u88dc\u7fd2,CSS\u88dc\u7fd2,XML,Java\u88dc\u7fd2,MySQL\u88dc\u7fd2,graphic design\u88dc\u7fd2,\u4e2d\u5c0f\u5b78ICT\u88dc\u7fd2,\u4e00\u5c0d\u4e00\u79c1\u4eba\u88dc\u7fd2\u548cFreelance\u81ea\u7531\u5de5\u4f5c\u914d\u5c0d\u3002\\\"\/><figcaption>\u7acb\u523b\u8a3b\u518a\u53ca\u5831\u540d\u96fb\u8166\u88dc\u7fd2\u8ab2\u7a0b\u5427!<\/figcaption><\/figure>\r\n<\/br>Find A Teacher Form:\r\n<\/br>https:\/\/docs.google.com\/forms\/d\/1vREBnX5n262umf4wU5U2pyTwvk9O-JrAgblA-wH9GFQ\/viewform?edit_requested=true#responses\r\n<\/br><\/br>Email:\r\n<\/br>public1989two@gmail.com<br><br><br><br><br><br><br>\r\n<a href=www.itsec.hk style=color:#FFFFFF;>www.itsec.hk<\/a><br>\r\n<a href=\\\"www.itsec.vip\\\" style=color:#FFFFFF;>www.itsec.vip<\/a><br>\r\n<a href=\\\"www.itseceu.uk\\\" style=color:#FFFFFF;>www.itseceu.uk<\/a><br><\/p>","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>Finalizer deprecation, string improvements in Java 17, Kotlin support in protocol buffers, cache libraries on JVM, and software engineering principles.\u00a0<a href=\"https:\/\/www.baeldung.com\/java-weekly-410\" title=\"Java Weekly, Issue 410\" class=\"more\">&gt;&gt;&gt;<\/a><\/p>\n<\/div>","protected":false},"author":214,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"slim_seo":{"title":"Java Weekly, Issue 410 - ITTeacherITFreelance.hk","description":"Finalizer deprecation, string improvements in Java 17, Kotlin support in protocol buffers, cache libraries on JVM, and software engineering principles.\u00a0 &gt;&gt"},"footnotes":""},"categories":[6],"tags":[],"_links":{"self":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/312854"}],"collection":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/users\/214"}],"replies":[{"embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/comments?post=312854"}],"version-history":[{"count":2,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/312854\/revisions"}],"predecessor-version":[{"id":313806,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/312854\/revisions\/313806"}],"wp:attachment":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/media?parent=312854"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/categories?post=312854"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/tags?post=312854"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}