{"id":191445,"date":"2021-02-11T05:56:02","date_gmt":"2021-02-11T05:56:02","guid":{"rendered":"https:\/\/www.baeldung.com\/?p=97229"},"modified":"2021-02-11T05:56:02","modified_gmt":"2021-02-11T05:56:02","slug":"java-weekly-issue-372","status":"publish","type":"post","link":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/2021\/02\/11\/java-weekly-issue-372\/","title":{"rendered":"Java Weekly, Issue 372"},"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:\/\/inside.java\/2021\/02\/03\/jep380-unix-domain-sockets-channels\/\"  rel=\"noopener\"><strong>&gt;&gt; JEP-380: Unix domain socket channels<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">inside.java<\/span>]<\/p>\n<p><strong>Performant, secure, and convenient<\/strong> inter-process communications with Unix domain socket support in\u00a0Java 16!<\/p>\n<p><a href=\"https:\/\/spring.io\/blog\/2021\/02\/09\/metrics-and-tracing-better-together\"  rel=\"noopener\"><strong>&gt;&gt; Metrics and Tracing: Better Together<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/p>\n<p>Tracing meets metrics \u2013 <strong>linking Spring Boot metrics and open tracing<\/strong> data for better observability.<\/p>\n<p><a href=\"https:\/\/medium.com\/graalvm\/graalvm-native-image-quick-reference-4ceb84560fd8\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0GraalVM Native Image Quick Reference<\/strong><\/a> [<span style=\"color: #800000;\">medium.com<\/span>]<\/p>\n<p>A highlight of the most commonly used and useful options for<strong> creating native images with GraalVM<\/strong>.<\/p>\n<h4><strong>Also worth reading:<\/strong><\/h4>\n<ul>\n<li><a href=\"http:\/\/andresalmiray.com\/building-a-layered-modular-java-application-watch-out-for-these\/\"  rel=\"noopener\"><strong>&gt;&gt; Building a layered modular Java application? Watch out for these!<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">andresalmiray.com<\/span>]<\/li>\n<li><a href=\"https:\/\/thorben-janssen.com\/jdbc-connection-and-dialect-in-hibernate\/\"  rel=\"noopener\"><strong>&gt;&gt; JDBC Connection and Dialect Configuration in Hibernate<\/strong><\/a> [<span style=\"color: #800000;\">thorben-janssen.com<\/span>]<\/li>\n<li><a href=\"https:\/\/reflectoring.io\/spring-boot-s3\/\"  rel=\"noopener\"><strong>&gt;&gt; Getting Started with AWS S3 and Spring Boot<\/strong><\/a> [<span style=\"color: #800000;\">reflectoring.io<\/span>]<\/li>\n<li><a href=\"https:\/\/blog.jooq.org\/2021\/02\/04\/jooq-internals-pushing-up-sql-fragments\/\"  rel=\"noopener\"><strong>&gt;&gt; jOOQ Internals: Pushing up SQL fragments<\/strong><\/a> [<span style=\"color: #800000;\">blog.jooq.org<\/span>]<\/li>\n<li><a href=\"https:\/\/spring.io\/blog\/2021\/02\/03\/demystifying-spring-cloud-stream-producers-with-apache-kafka-partitions\"  rel=\"noopener\"><strong>&gt;&gt; Demystifying Spring Cloud Stream producers with Apache Kafka partitions<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/li>\n<li><a href=\"https:\/\/www.infoq.com\/news\/2021\/02\/jfrog-jcenter-bintray-closure\/\"  rel=\"noopener\"><strong>&gt;&gt; JFrog to Shut down JCenter and Bintray<\/strong><\/a> [<span style=\"color: #800000;\">infoq.com<\/span>]<\/li>\n<li><strong><a href=\"https:\/\/blog.jetbrains.com\/idea\/2021\/02\/tutorial-spock-part-3-data-driven-testing\/\">&gt;&gt; Data-Driven Testing and<\/a> <a href=\"https:\/\/blog.jetbrains.com\/idea\/2021\/02\/tutorial-spock-part-4-mocking-and-stubbing\/\">Mocking in Spock<\/a><\/strong> [<span style=\"color: #800000;\">blog.jetbrains.com<\/span>]<\/li>\n<li><a href=\"https:\/\/blog.frankel.ch\/state-jvm-desktop-frameworks\/5\/\"  rel=\"noopener\"><strong>&gt;&gt; The state of JVM desktop frameworks: Jetpack Compose for Desktop<\/strong><\/a> [<span style=\"color: #800000;\">blog.frankel.ch<\/span>]<\/li>\n<li><a href=\"https:\/\/rieckpil.de\/record-spring-events-when-testing-spring-boot-applications\/\"  rel=\"noopener\"><strong>&gt;&gt; Record Spring Events When Testing Spring Boot Applications<\/strong><\/a> [<span style=\"color: #800000;\">rieckpil.de<\/span>]<\/li>\n<li><a href=\"https:\/\/info.michael-simons.eu\/2021\/02\/05\/releasing-maven-based-projects-to-maven-central\/\"  rel=\"noopener\"><strong><span class=\"t-bg-white l-pa2 l-d-i\">&gt;&gt; Releasing Maven Based Projects to Maven Central<\/span><\/strong><\/a><span class=\"t-bg-white l-pa2 l-d-i\"> [<span style=\"color: #800000;\">info.michael-simons.eu<\/span>]<\/span><\/li>\n<\/ul>\n<p><strong>Webinars and presentations:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/spring.io\/blog\/2021\/02\/04\/a-bootiful-podcast-rsocket-legend-and-new-reactor-team-member-oleh-dokuka\"  rel=\"noopener\"><strong>&gt;&gt; A Bootiful Podcast: RSocket legend and new Reactor team member Oleh Dokuka<\/strong><\/a> [<span style=\"color: #800000;\">spring.io<\/span>]<\/li>\n<li><a href=\"https:\/\/open.spotify.com\/episode\/3a6zZKPhiHnDIQdLAWyUOs?si=obyIclVKTOyeL8yG0hnv1Q&#038;nd=1\"  rel=\"noopener\"><strong>&gt;&gt; Devpod &#8211; Conversation on Software Technologies with Josh Long<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">spotify.com<\/span>]<\/li>\n<\/ul>\n<p><strong>Time to upgrade:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/jdk-dev\/2021-February\/005062.html\"  rel=\"noopener\"><strong>&gt;&gt; JDK 16: First Release Candidate<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">mail.openjdk.java.net<\/span>]<\/li>\n<li><a href=\"https:\/\/tomcat.apache.org\/tomcat-10.0-doc\/changelog.html#Tomcat_10.0.2_(markt)\"  rel=\"noopener\"><strong>&gt;&gt; Tomcat 10.0.2 released<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">tomcat.apache.org<\/span>]<\/li>\n<li><a href=\"https:\/\/netty.io\/news\/2021\/02\/08\/4-1-59-Final.html\"  rel=\"noopener\"><strong>&gt;&gt; Netty 4.1.59.Final released<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">netty.io<\/span>]<\/li>\n<li><a href=\"https:\/\/in.relation.to\/2021\/02\/09\/hibernate-orm-5428-final-release\/\"  rel=\"noopener\"><strong>&gt;&gt; Hibernate ORM 5.4.28.Final released<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">in.relation.to<\/span>]<\/li>\n<li><a href=\"https:\/\/in.relation.to\/2021\/02\/09\/hibernate-search-6-0-1-Final\/\"  rel=\"noopener\"><strong>&gt;&gt; Hibernate Search 6.0.1.Final released<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">in.relation.to<\/span>]<\/li>\n<\/ul>\n<h2 data-id=\"technical\"><strong>2. Technical<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"technical\"><\/div>\n<p><a href=\"https:\/\/vladmihalcea.com\/hash-join-algorithm\/\"  rel=\"noopener\"><strong>&gt;&gt; Hash Join Algorithm<\/strong><\/a> [<span style=\"color: #800000;\">vladmihalcea.com<\/span>]<\/p>\n<p><strong>Joining tables using hashtables:<\/strong> a linear alternative to nested loops for joining two tables.<\/p>\n<p><strong>Also worth reading:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/netflixtechblog.com\/edge-authentication-and-token-agnostic-identity-propagation-514e47e0b602\"  rel=\"noopener\"><strong>&gt;&gt; Edge Authentication and Token-Agnostic Identity Propagation<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">netflixtechblog.com<\/span>]<\/li>\n<li><a href=\"https:\/\/www.infoq.com\/news\/2021\/02\/pinterest-efficient-retrieval\/\"  rel=\"noopener\"><strong>&gt;&gt; Pinterest Describes an Architecture for Efficient Retrieval of Hierarchical Documents<\/strong><\/a> [<span style=\"color: #800000;\">infoq.com<\/span>]<\/li>\n<li><a href=\"https:\/\/netflixtechblog.medium.com\/growth-engineering-at-netflix-creating-a-scalable-offers-platform-69330136dd87\"  rel=\"noopener\"><strong>&gt;&gt; Growth Engineering at Netflix- Creating a Scalable Offers Platform<\/strong><\/a> [<span style=\"color: #800000;\">netflixtechblog.com<\/span>]<\/li>\n<li><a href=\"https:\/\/musigma.blog\/2021\/02\/06\/chacha.html\"  rel=\"noopener\"><strong>&gt;&gt; Exploring the ChaCha stream cipher<\/strong><\/a> [<span style=\"color: #800000;\">musigma.blog<\/span>]<\/li>\n<li><a href=\"http:\/\/blog.tremblay.pro\/2021\/02\/archunit.html\"  rel=\"noopener\"><strong>&gt;&gt; ArchUnit<\/strong><\/a> [<span style=\"color: #800000;\">blog.tremblay.pro<\/span>]<\/li>\n<li><a href=\"https:\/\/advancedweb.hu\/how-to-properly-implement-unique-constraints-in-dynamodb\/\"  rel=\"noopener\"><strong>&gt;&gt; How to properly implement unique constraints in DynamoDB<\/strong><\/a> [<span style=\"color: #800000;\">advancedweb.hu<\/span>]<\/li>\n<\/ul>\n<h2 data-id=\"musings\"><strong>3. Musings<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"musings\"><\/div>\n<p><a href=\"https:\/\/benjiweber.co.uk\/blog\/2021\/02\/06\/meetings-ugh-lets-change-our-language\/\"  rel=\"noopener\"><strong>&gt;&gt; Meetings, ugh! Let\u2019s change our language<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">benjiweber.co.uk<\/span>]<\/p>\n<p>Make meetings great again \u2013 <strong>debugging ineffective meetings<\/strong> by answering a few simple questions.<\/p>\n<p><strong>Also worth reading:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/lucumr.pocoo.org\/2021\/2\/5\/be-humble\/\"  rel=\"noopener\"><strong>&gt;&gt; Be Humble<\/strong><\/a> [<span style=\"color: #800000;\">lucumr.pocoo.org<\/span>]<\/li>\n<li><a href=\"https:\/\/pointersgonewild.com\/2021\/02\/07\/on-insurmountable-technical-obstacles\/\"  rel=\"noopener\"><strong>&gt;&gt; On Insurmountable Technical Obstacles<\/strong><\/a> [<span style=\"color: #800000;\">pointersgonewild.com<\/span>]<\/li>\n<\/ul>\n<h2 data-id=\"comics\"><strong>4. 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-02-06\"  rel=\"noopener\"><strong>&gt;&gt; The Boss Has An Idea<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">dilbert.com<\/span>]<\/p>\n<p><a href=\"https:\/\/dilbert.com\/strip\/2021-02-09\"  rel=\"noopener\"><strong>&gt;&gt; Disagree With Experts<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">dilbert.com<\/span>]<\/p>\n<p><a href=\"https:\/\/dilbert.com\/strip\/2021-02-08\"  rel=\"noopener\"><strong>&gt;&gt; Fraud Presenter<\/strong><\/a>\u00a0[<span style=\"color: #800000;\">dilbert.com<\/span>]<\/p>\n<h2 data-id=\"pick-of-the-week\"><strong>5. Pick of the Week<\/strong><\/h2>\n<div class=\"bd-anchor\" id=\"pick-of-the-week\"><\/div>\n<p data-inc=\"2\">The pick this week is the interesting Cassandra cloud from DataStax:<\/p>\n<p><strong><a href=\"https:\/\/www.baeldung.com\/datastax\">&gt;&gt; Cassandra on Astra<\/a><\/strong><\/p>\n<p>If you&#8217;re running or planning to run Cassandra in production, definitely register and use the forever-free 5Gb tier there to try it out.<\/p>\n<p>The post <a href=\"https:\/\/www.baeldung.com\/java-weekly-372\">Java Weekly, Issue 372<\/a> first appeared on <a href=\"https:\/\/www.baeldung.com\/\">Baeldung<\/a>.<\/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>Java 16 goes RC1, Unix-domain sockets, native images, jOOQ internals, metrics meets open tracing, joining tables with a hash-join algorithm, and having more effective meetings!\u00a0<a href=\"https:\/\/www.baeldung.com\/java-weekly-372\" title=\"Java Weekly, Issue 372\" class=\"more\">&gt;&gt;&gt;<\/a><\/p>\n<p>The post <a href=\"https:\/\/www.baeldung.com\/java-weekly-372\">Java Weekly, Issue 372<\/a> first appeared on <a href=\"https:\/\/www.baeldung.com\/\">Baeldung<\/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 372 - ITTeacherITFreelance.hk","description":"Java 16 goes RC1, Unix-domain sockets, native images, jOOQ internals, metrics meets open tracing, joining tables with a hash-join algorithm, and having more eff"},"footnotes":""},"categories":[6],"tags":[],"_links":{"self":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/191445"}],"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=191445"}],"version-history":[{"count":4,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/191445\/revisions"}],"predecessor-version":[{"id":225019,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/191445\/revisions\/225019"}],"wp:attachment":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/media?parent=191445"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/categories?post=191445"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/tags?post=191445"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}