<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Java Code Geeks</title>
    <link>https://www.javacodegeeks.com/feed/</link>
    <description>Java Developers Resource Center</description>
    <pubDate>Fri, 17 Apr 2026 09:19:47 +0000</pubDate>
    <lastBuildDate>Fri, 17 Apr 2026 09:19:47 +0000</lastBuildDate>
    <image>
      <url>https://www.javacodegeeks.com/wp-content/uploads/2012/12/JavaCodeGeeks-favIcon.png</url>
      <title>Java Code Geeks</title>
      <link>https://www.javacodegeeks.com/</link>
    </image>
    <item>
      <title>Level up your penetration testing skills with this 9-course bundle</title>
      <link>https://www.javacodegeeks.com/2026/04/level-up-your-penetration-testing-skills-with-this-9-course-bundle.html</link>
      <description>&lt;header class=entry-header-outer&gt;&lt;nav id=breadcrumb&gt;&lt;a href=https://www.javacodegeeks.com/&gt;&lt;span class=tie-icon-home aria-hidden=true&gt;&lt;/span&gt;Home&lt;/a&gt;&lt;em class=delimiter&gt;»&lt;/em&gt;&lt;a href=https://www.javacodegeeks.com/category/meta-jcg&gt;Meta JCG&lt;/a&gt;&lt;em class=delimiter&gt;»&lt;/em&gt;&lt;span class=current&gt;Level up your penetration testing skills with this 9-course bundle&lt;/span&gt;&lt;/nav&gt;&lt;div class=entry-header&gt;&lt;span class=post-cat-wrap&gt;&lt;a class=&#34;post-cat tie-cat-16&#34; href=https://www.javacodegeeks.com/category/meta-jcg&gt;Meta JCG&lt;/a&gt;&lt;/span&gt;&lt;h1 class=&#34;post-title entry-title&#34;&gt;Level up your penetration testing skills with this 9-course bundle&lt;/h1&gt;&lt;/div&gt;&lt;/header&gt;&lt;div class=&#34;entry-content entry clearfix&#34;&gt;&lt;figure class=&#34;wp-block-stack-hive-sale-image wp-block-image wp-block-stack-hive-sale-image&#34;&gt;&lt;a data-hive-link=true href=&#34;https://deals.javacodegeeks.com/sales/the-2025-complete-offensive-cyber-security-bundle?utm_source=Javacodegeeks.com&amp;amp;utm_content=PS-14199&amp;amp;utm_medium=Referral&amp;amp;utm_campaign=the-2026-complete-offensive-cyber-security-bundle&amp;amp;utm_term=SALE-328327&#34;&gt;&lt;img data-lazyloaded=1 src=https://cdnp1.stackassets.com/c8cb8040ac6ffb6ae125c1d3dbeb7ecea7a14348/store/8c94c1b6dd5cc3114993375ee5c6704d70af1eb064485151a07dbd1df5fb/sale_328327_article_image.jpg decoding=async loading=lazy data-src=https://cdnp1.stackassets.com/c8cb8040ac6ffb6ae125c1d3dbeb7ecea7a14348/store/8c94c1b6dd5cc3114993375ee5c6704d70af1eb064485151a07dbd1df5fb/sale_328327_article_image.jpg width=823 height=548 alt=&#34;Launch Your Career in Cyber Security &amp;amp; Tackle Threats Like a Pro with 9 Courses on Ethical Hacking, Pentesting, Social Engineering, and More&#34;&gt;&lt;noscript&gt;&lt;img decoding=async loading=lazy src=https://cdnp1.stackassets.com/c8cb8040ac6ffb6ae125c1d3dbeb7ecea7a14348/store/8c94c1b6dd5cc3114993375ee5c6704d70af1eb064485151a07dbd1df5fb/sale_328327_article_image.jpg width=823 height=548 alt=&#34;Launch Your Career in Cyber Security &amp;amp; Tackle Threats Like a Pro with 9 Courses on Ethical Hacking, Pentesting, Social Engineering, and More&#34;&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;br&gt;&lt;/figure&gt;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; The 2026 Complete Offensive Cyber Security Bundle packs 9 courses and 78 hours of hands-on &lt;a href=&#34;https://deals.javacodegeeks.com/sales/the-2025-complete-offensive-cyber-security-bundle?utm_source=Javacodegeeks.com&amp;amp;utm_content=PS-14199&amp;amp;utm_medium=Referral&amp;amp;utm_campaign=the-2026-complete-offensive-cyber-security-bundle-2026-04-07&amp;amp;utm_term=SALE-328327&#34;&gt;online security training&lt;/a&gt;, covering Kali Linux, Metasploit, Burp Suite, and more, for just $29.99 (reg. $180).&lt;p&gt;Whether you’re a junior developer looking to break into security or a senior engineer who wants to formalize offensive techniques you’ve already been using, quality training is essential.&lt;p&gt;The &lt;a href=&#34;https://deals.javacodegeeks.com/sales/the-2025-complete-offensive-cyber-security-bundle?utm_source=Javacodegeeks.com&amp;amp;utm_content=PS-14199&amp;amp;utm_medium=Referral&amp;amp;utm_campaign=the-2026-complete-offensive-cyber-security-bundle-2026-04-07&amp;amp;utm_term=SALE-328327&#34;&gt;2026 Complete Offensive Cyber Security Bundle&lt;/a&gt; gives you a structured, comprehensive path through the core tools and methodologies that define modern ethical hacking. It’s on sale for $29.99 (reg. $180).&lt;p&gt;Put together by Oak Academy, the bundle covers 78 hours of curriculum across 9 full courses. You get practical, tool-focused training on the platforms and frameworks that actually show up in professional penetration testing engagements: Nmap and Nessus for network scanning, Metasploit for exploitation, Kali Linux for your primary attack environment, and Burp Suite for web application bug bounty workflows.&lt;h2 class=wp-block-heading id=what-the-curriculum-covers&gt;What the curriculum covers&lt;/h2&gt;&lt;p&gt;The web application coverage is especially thorough. Two dedicated courses walk through hacking web apps and conducting penetration tests against them, with a third course zeroing in on Burp Suite specifically for bug bounty hunters. For anyone targeting certifications like CEH, OSCP, or CompTIA PenTest+, this breadth of coverage across tooling, techniques, and environments is exactly the kind of self-paced prep material that complements more formal study.&lt;p&gt;Beyond the technical tooling, the bundle also includes courses on Wi-Fi hacking and wireless penetration testing, plus a course dedicated to social engineering, phishing, OSINT, and malware, which rounds out the human-layer attack surface that often gets overlooked in more tool-centric training.&lt;p&gt;All 9 courses come with lifetime access, so you can work through the material at your own pace and return to specific modules as your projects evolve.&lt;p&gt;At $29.99 for 78 hours of content across 9 courses, the per-hour value here is hard to beat for anyone serious about building out offensive security skills.&lt;p&gt;You can grab &lt;a href=&#34;https://deals.javacodegeeks.com/sales/the-2025-complete-offensive-cyber-security-bundle?utm_source=Javacodegeeks.com&amp;amp;utm_content=PS-14199&amp;amp;utm_medium=Referral&amp;amp;utm_campaign=the-2026-complete-offensive-cyber-security-bundle-2026-04-07&amp;amp;utm_term=SALE-328327&#34;&gt;The 2026 Complete Offensive Cyber Security Bundle&lt;/a&gt; today for $29.99 (reg. $180).&lt;p&gt;&lt;a href=https://www.stacksocial.com/&gt;&lt;em&gt;StackSocial&lt;/em&gt;&lt;/a&gt;&lt;em&gt; prices subject to change.&lt;/em&gt;&lt;/p&gt;&lt;style&gt;.lepopup-progress-60 div.lepopup-progress-t1&gt;div{background-color:#e0e0e0;}.lepopup-progress-60 div.lepopup-progress-t1&gt;div&gt;div{background-color:#bd4070;}.lepopup-progress-60 div.lepopup-progress-t1&gt;div&gt;div{color:#ffffff;}.lepopup-progress-60 div.lepopup-progress-t1&gt;label{color:#444444;}.lepopup-form-60, .lepopup-form-60 *, .lepopup-progress-60 {font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-signature-box span i{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#555555;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-signature-box,.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;text&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;email&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;password&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input select,.lepopup-form-60 .lepopup-element div.lepopup-input select option,.lepopup-form-60 .lepopup-element div.lepopup-input textarea{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#555555;font-style:normal;text-decoration:none;text-align:left;background-color:rgba(255, 255, 255, 0.7);background-image:none;border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow: inset 0px 0px 15px -7px #000000;}.lepopup-form-60 .lepopup-element div.lepopup-input ::placeholder{color:#555555; opacity: 0.9;} .lepopup-form-60 .lepopup-element div.lepopup-input ::-ms-input-placeholder{color:#555555; opacity: 0.9;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect::-webkit-scrollbar-thumb{background-color:#cccccc;}.lepopup-form-60 .lepopup-element div.lepopup-input&gt;i.lepopup-icon-left, .lepopup-form-60 .lepopup-element div.lepopup-input&gt;i.lepopup-icon-right{font-size:20px;color:#444444;border-radius:0px;}.lepopup-form-60 .lepopup-element .lepopup-button,.lepopup-form-60 .lepopup-element .lepopup-button:visited{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#ffffff;font-weight:700;font-style:normal;text-decoration:none;text-align:center;background-color:#326693;background-image:none;border-width:1px;border-style:solid;border-color:#326693;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element div.lepopup-input .lepopup-imageselect+label{border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element div.lepopup-input .lepopup-imageselect+label span.lepopup-imageselect-label{font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl:checked+label:after{background-color:rgba(255, 255, 255, 0.7);}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-classic+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-fa-check+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-square+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl+label{background-color:rgba(255, 255, 255, 0.7);border-color:#cccccc;color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-square:checked+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl:checked+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-classic+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-fa-check+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-dot+label{background-color:rgba(255, 255, 255, 0.7);border-color:#cccccc;color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-dot:checked+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect&gt;input[type=&#39;checkbox&#39;]+label:hover{background-color:#bd4070;color:#ffffff;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect&gt;input[type=&#39;checkbox&#39;]:checked+label{background-color:#a93a65;color:#ffffff;}.lepopup-form-60 .lepopup-element input[type=&#39;checkbox&#39;].lepopup-tile+label, .lepopup-form-60 .lepopup-element input[type=&#39;radio&#39;].lepopup-tile+label {font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:center;background-color:#ffffff;background-image:none;border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element-error{font-size:15px;color:#ffffff;font-style:normal;text-decoration:none;text-align:left;background-color:#d9534f;background-image:none;}.lepopup-form-60 .lepopup-element-2 {background-color:rgba(226, 236, 250, 1);background-image:none;border-width:1px;border-style:solid;border-color:rgba(216, 216, 216, 1);border-radius:3px;box-shadow: 1px 1px 15px -6px #d7e1eb;}.lepopup-form-60 .lepopup-element-3 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:26px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-3 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:26px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-3 .lepopup-element-html-content {min-height:73px;}.lepopup-form-60 .lepopup-element-4 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:19px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-4 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:19px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-4 .lepopup-element-html-content {min-height:23px;}.lepopup-form-60 .lepopup-element-5 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-5 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-5 .lepopup-element-html-content {min-height:24px;}.lepopup-form-60 .lepopup-element-6 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-6 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-6 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-7 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-7 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-7 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-8 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-8 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-8 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-9 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-9 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-9 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-10 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-10 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-10 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-11 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-11 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-11 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-12 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-12 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-12 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-13 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-13 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-13 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-14 div.lepopup-input .lepopup-icon-left, .lepopup-form-60 .lepopup-element-14 div.lepopup-input .lepopup-icon-right {line-height:36px;}.lepopup-form-60 .lepopup-element-15 div.lepopup-input{height:auto;line-height:1;}.lepopup-form-60 .lepopup-element-16 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:14px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-16 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:14px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-16 .lepopup-element-html-content {min-height:5px;}.lepopup-form-60 .lepopup-element-19 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#333333;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-19 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#333333;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-19 .lepopup-element-html-content {min-height:363px;}.lepopup-form-60 .lepopup-element-0 * {font-size:15px;color:#ffffff;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-0 {font-size:15px;color:#ffffff;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:#5cb85c;background-image:none;border-width:0px;border-style:solid;border-color:#ccc;border-radius:5px;box-shadow: 1px 1px 15px -6px #000000;padding-top:40px;padding-right:40px;padding-bottom:40px;padding-left:40px;}.lepopup-form-60 .lepopup-element-0 .lepopup-element-html-content {min-height:160px;}&lt;/style&gt;&lt;div class=lepopup-inline style=&#34;margin: 0 auto;&#34;&gt;&lt;div class=&#34;lepopup-form lepopup-form-60 lepopup-form-hfMWnmvhqqpA1Sxf lepopup-form-icon-inside lepopup-form-position-middle-right&#34; data-session=0 data-id=hfMWnmvhqqpA1Sxf data-form-id=60 data-slug=7lQM6oyWL5bTm5lw data-title=&#34;Under the Post Inline&#34; data-page=1 data-xd=off data-width=820 data-height=430 data-position=middle-right data-esc=off data-enter=on data-disable-scrollbar=off style=display:none;width:820px;height:430px; onclick=event.stopPropagation();&gt;&lt;div class=lepopup-form-inner style=width:820px;height:430px;&gt;&lt;div class=&#34;lepopup-element lepopup-element-2 lepopup-element-rectangle&#34; data-type=rectangle data-top=0 data-left=0 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:501;top:0px;left:0px;width:820px;height:430px;&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-3 lepopup-element-html&#34; data-type=html data-top=7 data-left=10 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:502;top:7px;left:10px;width:797px;height:73px;&gt;&lt;div class=lepopup-element-html-content&gt;Do you want to know how to develop your skillset to become a &lt;span style=&#34;color: #CAB43D; text-shadow: 1px 1px #835D5D;&#34;&gt;Java Rockstar?&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-4 lepopup-element-html&#34; data-type=html data-top=83 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:503;top:83px;left:308px;width:473px;height:23px;&gt;&lt;div class=lepopup-element-html-content&gt;Subscribe to our newsletter to start Rocking &lt;span style=&#34;text-decoration: underline;&#34;&gt;right now!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-5 lepopup-element-html&#34; data-type=html data-top=107 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:504;top:107px;left:308px;width:473px;height:24px;&gt;&lt;div class=lepopup-element-html-content&gt;To get you started we give you our best selling eBooks for &lt;span style=&#34;color:#e01404; text-shadow: 1px 1px #C99924; font-size: 15px;&#34;&gt;FREE!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-6 lepopup-element-html&#34; data-type=html data-top=136 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:505;top:136px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;1.&lt;/span&gt; JPA Mini Book&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-7 lepopup-element-html&#34; data-type=html data-top=156 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:506;top:156px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;2.&lt;/span&gt; JVM Troubleshooting Guide&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-8 lepopup-element-html&#34; data-type=html data-top=176 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:507;top:176px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;3.&lt;/span&gt; JUnit Tutorial for Unit Testing&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-9 lepopup-element-html&#34; data-type=html data-top=196 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:508;top:196px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;4.&lt;/span&gt; Java Annotations Tutorial&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-10 lepopup-element-html&#34; data-type=html data-top=216 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:509;top:216px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;5.&lt;/span&gt; Java Interview Questions&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-11 lepopup-element-html&#34; data-type=html data-top=236 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:510;top:236px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;6.&lt;/span&gt; Spring Interview Questions&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-12 lepopup-element-html&#34; data-type=html data-top=256 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:511;top:256px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;7.&lt;/span&gt; Android UI Design&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-13 lepopup-element-html&#34; data-type=html data-top=282 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:512;top:282px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;and many more ....&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-14&#34; data-type=email data-deps data-id=14 data-top=305 data-left=308 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:513;top:305px;left:308px;width:473px;height:36px;&gt;&lt;div class=lepopup-input&gt;&lt;input type=email name=lepopup-14 class=lepopup-ta-left placeholder=&#34;Enter your e-mail...&#34; autocomplete=email data-default aria-label=&#34;Email Field&#34; oninput=lepopup_input_changed(this); onfocus=lepopup_input_error_hide(this);&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-15&#34; data-type=checkbox data-deps data-id=15 data-top=344 data-left=308 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:514;top:344px;left:308px;width:160px;&gt;&lt;div class=&#34;lepopup-input lepopup-cr-layout-1 lepopup-cr-layout-left&#34;&gt;&lt;div class=&#34;lepopup-cr-container lepopup-cr-container-medium lepopup-cr-container-left&#34;&gt;&lt;div class=lepopup-cr-box&gt;&lt;input class=&#34;lepopup-checkbox lepopup-checkbox-classic lepopup-checkbox-medium&#34; type=checkbox name=lepopup-15[] id=lepopup-checkbox-JaaAzAowxFGbo5GL-14-0 value=on data-default=off onchange=lepopup_input_changed(this);&gt;&lt;label for=lepopup-checkbox-JaaAzAowxFGbo5GL-14-0 onclick=lepopup_input_error_hide(this);&gt;&lt;/label&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-cr-label lepopup-ta-left&#34;&gt;&lt;label for=lepopup-checkbox-JaaAzAowxFGbo5GL-14-0 onclick=lepopup_input_error_hide(this);&gt;&lt;/label&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-16 lepopup-element-html&#34; data-type=html data-top=344 data-left=338 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:515;top:344px;left:338px;width:350px;height:5px;&gt;&lt;div class=lepopup-element-html-content&gt;I agree to the &lt;a href=https://www.javacodegeeks.com/about/terms-of-use target=_blank&gt;Terms&lt;/a&gt; and &lt;a href=https://www.javacodegeeks.com/about/privacy-policy target=_blank&gt;Privacy Policy&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-17&#34; data-type=button data-top=372 data-left=308 data-animation-in=bounceIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:516;top:372px;left:308px;width:85px;height:37px;&gt;&lt;a class=&#34;lepopup-button lepopup-button-zoom-out&#34; href=https://www.javacodegeeks.com/feed/ onclick=&#34;return lepopup_submit(this);&#34; data-label=&#34;Sign up&#34; data-loading=Loading...&gt;&lt;span&gt;Sign up&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-19 lepopup-element-html&#34; data-type=html data-top=67 data-left=-15 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:518;top:67px;left:-15px;width:320px;height:363px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;img data-lazyloaded=1 src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png fetchpriority=high decoding=async data-src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png alt width=320 height=363&gt;&lt;noscript&gt;&lt;img fetchpriority=high decoding=async src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png alt width=320 height=363&gt;&lt;/noscript&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-form lepopup-form-60 lepopup-form-hfMWnmvhqqpA1Sxf lepopup-form-icon-inside lepopup-form-position-middle-right&#34; data-session=0 data-id=hfMWnmvhqqpA1Sxf data-form-id=60 data-slug=7lQM6oyWL5bTm5lw data-title=&#34;Under the Post Inline&#34; data-page=confirmation data-xd=off data-width=420 data-height=320 data-position=middle-right data-esc=off data-enter=on data-disable-scrollbar=off style=display:none;width:420px;height:320px; onclick=event.stopPropagation();&gt;&lt;div class=lepopup-form-inner style=width:420px;height:320px;&gt;&lt;div class=&#34;lepopup-element lepopup-element-0 lepopup-element-html&#34; data-type=html data-top=80 data-left=70 data-animation-in=bounceInDown data-animation-out=fadeOutUp style=animation-duration:1000ms;animation-delay:0ms;z-index:500;top:80px;left:70px;width:280px;height:160px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;h4 style=&#34;text-align: center; font-size: 18px; font-weight: bold;&#34;&gt;Thank you!&lt;/h4&gt;&lt;p style=&#34;text-align: center;&#34;&gt;We will contact you soon.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;input type=hidden id=lepopup-logic-hfMWnmvhqqpA1Sxf value=[]&gt;&lt;/div&gt;&lt;div class=&#34;post-bottom-meta post-bottom-tags post-tags-classic&#34;&gt;&lt;div class=post-bottom-meta-title&gt;&lt;span class=tie-icon-tags aria-hidden=true&gt;&lt;/span&gt;Tags&lt;/div&gt;&lt;span class=tagcloud&gt;&lt;a href=https://www.javacodegeeks.com/tag/deals rel=tag&gt;Deals&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=post-extra-info&gt;&lt;div class=theiaStickySidebar&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=clearfix&gt;&lt;/div&gt;</description>
      <author>Java Code Geeks</author>
      <guid>https://www.javacodegeeks.com/2026/04/level-up-your-penetration-testing-skills-with-this-9-course-bundle.html</guid>
      <pubDate>Sat, 18 Apr 2026 10:30:30 +0000</pubDate>
    </item>
    <item>
      <title>[FREE EBOOKS] Ransomware Protection Playbook, Job Architecture &amp; Four More Best Selling Titles</title>
      <link>https://www.javacodegeeks.com/2026/04/free-ebooks-ransomware-protection-playbook-job-architecture-four-more-best-selling-titles.html</link>
      <description>&lt;header class=entry-header-outer&gt;&lt;nav id=breadcrumb&gt;&lt;a href=https://www.javacodegeeks.com/&gt;&lt;span class=tie-icon-home aria-hidden=true&gt;&lt;/span&gt;Home&lt;/a&gt;&lt;em class=delimiter&gt;»&lt;/em&gt;&lt;a href=https://www.javacodegeeks.com/category/meta-jcg&gt;Meta JCG&lt;/a&gt;&lt;em class=delimiter&gt;»&lt;/em&gt;&lt;span class=current&gt;[FREE EBOOKS] Ransomware Protection Playbook, Job Architecture &amp;amp; Four More Best Selling Titles&lt;/span&gt;&lt;/nav&gt;&lt;div class=entry-header&gt;&lt;span class=post-cat-wrap&gt;&lt;a class=&#34;post-cat tie-cat-16&#34; href=https://www.javacodegeeks.com/category/meta-jcg&gt;Meta JCG&lt;/a&gt;&lt;/span&gt;&lt;h1 class=&#34;post-title entry-title&#34;&gt;[FREE EBOOKS] Ransomware Protection Playbook, Job Architecture &amp;amp; Four More Best Selling Titles&lt;/h1&gt;&lt;/div&gt;&lt;/header&gt;&lt;div class=&#34;entry-content entry clearfix&#34;&gt;&lt;p&gt;Hello fellow geeks,&lt;p&gt;Fresh offers await you on our &lt;a href=https://javacodegeeks.tradepub.com/ target=_blank&gt;Information Technology Research Library&lt;/a&gt;, please have a look!&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width=25% style=&#34;border: 0px;vertical-align: top&#34;&gt;&lt;a href=&#34;https://javacodegeeks.tradepub.com/c/pubRD.mpl?secure=1&amp;amp;sr=oc&amp;amp;_t=oc:&amp;amp;qf=w_wile865&amp;amp;ch=w_wile865-j&#34; target=_blank&gt;&lt;img data-lazyloaded=1 src=https://img.tradepub.com/free/w_wile865/images/w_wile865c4.gif decoding=async data-src=https://img.tradepub.com/free/w_wile865/images/w_wile865c4.gif&gt;&lt;noscript&gt;&lt;img decoding=async src=https://img.tradepub.com/free/w_wile865/images/w_wile865c4.gif&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;td style=&#34;vertical-align: top;border: 0px&#34;&gt;&lt;h2 style=&#34;text-align: center;background: #c8dbf7&#34;&gt;Ransomware Protection Playbook ($28.00 Value) FREE for a Limited Time&lt;/h2&gt;&lt;p&gt;Avoid becoming the next ransomware victim by taking practical steps today. Colonial Pipeline. CWT Global. Brenntag. Travelex. The list of ransomware victims is long, distinguished, and sophisticated. And it’s growing longer every day. In Ransomware Protection Playbook, computer security veteran and expert penetration tester Roger A. Grimes delivers an actionable blueprint for organizations seeking a robust defense against one of the most insidious and destructive IT threats currently in the wild. You’ll learn about concrete steps you can take now to protect yourself or your organization from ransomware attacks. In addition to walking you through the necessary technical preventative measures, this critical book will show you how to: Quickly detect an attack, limit the damage, and decide whether to pay the ransom. Implement a pre-set game plan in the event of a game-changing security breach to help limit the reputational and financial damage. Lay down a secure foundation of cybersecurity insurance and legal protection to mitigate the disruption to your life and business. A must-read for cyber and information security professionals, privacy leaders, risk managers, and CTOs, Ransomware Protection Playbook is an irreplaceable and timely resource for anyone concerned about the security of their, or their organization’s, data.&lt;p style=&#34;text-align: center;height: 65px;margin-top: 40px&#34;&gt;&lt;a class=download style=&#34;background-color: #c8dbf7;border-color: #b0c4de;padding-top: 19px;text-decoration: none&#34; href=&#34;https://javacodegeeks.tradepub.com/c/pubRD.mpl?secure=1&amp;amp;sr=oc&amp;amp;_t=oc:&amp;amp;qf=w_wile865&amp;amp;ch=w_wile865-j&#34; target=_blank&gt;&lt;span style=&#34;font-size: 20px;font-weight: bold;vertical-align: middle&#34;&gt;Get it FREE!&lt;/span&gt;&lt;/a&gt;&lt;tr&gt;&lt;td width=25% style=&#34;border: 0px;vertical-align: top&#34;&gt;&lt;a href=&#34;https://javacodegeeks.tradepub.com/c/pubRD.mpl?secure=1&amp;amp;sr=oc&amp;amp;_t=oc:&amp;amp;qf=w_wile863&amp;amp;ch=w_wile863-j&#34; target=_blank&gt;&lt;img data-lazyloaded=1 src=https://img.tradepub.com/free/w_wile863/images/w_wile863c4.gif decoding=async data-src=https://img.tradepub.com/free/w_wile863/images/w_wile863c4.gif&gt;&lt;noscript&gt;&lt;img decoding=async src=https://img.tradepub.com/free/w_wile863/images/w_wile863c4.gif&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;td style=&#34;vertical-align: top;border: 0px&#34;&gt;&lt;h2 style=&#34;text-align: center;background: #c8dbf7&#34;&gt;Job Architecture: Building a Language for Workforce Intelligence ($35.00 Value) FREE for a Limited Time&lt;/h2&gt;&lt;p&gt;Harness the power of taxonomies for better human capital management and employee wellbeing. In Job Architecture, economist and entrepreneur Ben Zweig offers a revolutionary approach to transforming human capital management through the power of taxonomies. The book follows the experience and ideas of key individuals-from the founders of Wall Street, to the original management consultant, to a young data scientist just out of grad school looking to make sense of the modern workforce-in order to illustrate why our current human capital infrastructure is not serving employees well and what we can do to change that. By categorizing and organizing workforce data, Zweig provides a practical roadmap for creating a more efficient and data-driven labor market. This book includes key insights on how to: Use AI and similar large language model technologies to support businesses with appropriate categorization and regimentation of data. Know whether or not a taxonomy can be useful and functional for an organization in their ability to be flexible, auditable, and adaptable. Build a taxonomy that meets the needs of a workforce or organization through clustering, labeling, and production. Combining storytelling with real-world examples, theoretical analysis, and a practical framework, Job Architecture is an essential guide for companies to manage a competitive, modern workforce that improves the working experience for all employees. Offer Expires 4/28/2026.&lt;p style=&#34;text-align: center;height: 65px;margin-top: 40px&#34;&gt;&lt;a class=download style=&#34;background-color: #c8dbf7;border-color: #b0c4de;padding-top: 19px;text-decoration: none&#34; href=&#34;https://javacodegeeks.tradepub.com/c/pubRD.mpl?secure=1&amp;amp;sr=oc&amp;amp;_t=oc:&amp;amp;qf=w_wile863&amp;amp;ch=w_wile863-j&#34; target=_blank&gt;&lt;span style=&#34;font-size: 20px;font-weight: bold;vertical-align: middle&#34;&gt;Get it FREE!&lt;/span&gt;&lt;/a&gt;&lt;tr&gt;&lt;td width=25% style=&#34;border: 0px;vertical-align: top&#34;&gt;&lt;a href=&#34;https://javacodegeeks.tradepub.com/c/pubRD.mpl?secure=1&amp;amp;sr=oc&amp;amp;_t=oc:&amp;amp;qf=w_wile864&amp;amp;ch=w_wile864-j&#34; target=_blank&gt;&lt;img data-lazyloaded=1 src=https://img.tradepub.com/free/w_wile864/images/w_wile864c4.gif decoding=async data-src=https://img.tradepub.com/free/w_wile864/images/w_wile864c4.gif&gt;&lt;noscript&gt;&lt;img decoding=async src=https://img.tradepub.com/free/w_wile864/images/w_wile864c4.gif&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;td style=&#34;vertical-align: top;border: 0px&#34;&gt;&lt;h2 style=&#34;text-align: center;background: #c8dbf7&#34;&gt;Coexisting with AI: Work, Love, and Play in a Changing World ($28.00 Value) FREE for a Limited Time&lt;/h2&gt;&lt;p&gt;Your comprehensive, easy-to-understand guide on AI’s impact in business and life. Coexisting with AI: Work, Love, and Play in a Changing Worldis an exploration of how AI can be used at each stage of our lives. It helps readers understand the positive impact of AI and where governance is needed from both an individual and business perspective. From childhood through to aging, this book delivers a holistic understanding of this exciting new technology in language that anyone can understand regardless of technical expertise. Written by Kay Firth-Butterfield, former inaugural Head of AI at the World Economic Forum and one of the most foremost experts in the world on the governance of AI, topics explored in this book include: An explanation of AI and Chatbots and their dependence on data. How to use AI wisely in business, with your children and in your life. How AI might be used in politics and war. The good, bad, and ugly of AI now and into the future. AI’s potential to solve some of humanity’s biggest problems, from human trafficking to disease. Essential governance considerations to make AI a beneficial technological development for all. Coexisting With AIearns a well-deserved spot on the bookshelves of all individuals, from tech executives to curious citizens, seeking expert insight on where AI can take us and how to plot the best path forward for your family and business. Offer Expires 4/28/2026.&lt;p style=&#34;text-align: center;height: 65px;margin-top: 40px&#34;&gt;&lt;a class=download style=&#34;background-color: #c8dbf7;border-color: #b0c4de;padding-top: 19px;text-decoration: none&#34; href=&#34;https://javacodegeeks.tradepub.com/c/pubRD.mpl?secure=1&amp;amp;sr=oc&amp;amp;_t=oc:&amp;amp;qf=w_wile864&amp;amp;ch=w_wile864-j&#34; target=_blank&gt;&lt;span style=&#34;font-size: 20px;font-weight: bold;vertical-align: middle&#34;&gt;Get it FREE!&lt;/span&gt;&lt;/a&gt;&lt;tr&gt;&lt;td width=25% style=&#34;border: 0px;vertical-align: top&#34;&gt;&lt;a href=&#34;https://javacodegeeks.tradepub.com/c/pubRD.mpl?secure=1&amp;amp;sr=oc&amp;amp;_t=oc:&amp;amp;qf=w_wile862&amp;amp;ch=w_wile862-j&#34; target=_blank&gt;&lt;img data-lazyloaded=1 src=https://img.tradepub.com/free/w_wile862/images/w_wile862c4.gif decoding=async data-src=https://img.tradepub.com/free/w_wile862/images/w_wile862c4.gif&gt;&lt;noscript&gt;&lt;img decoding=async src=https://img.tradepub.com/free/w_wile862/images/w_wile862c4.gif&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;td style=&#34;vertical-align: top;border: 0px&#34;&gt;&lt;h2 style=&#34;text-align: center;background: #c8dbf7&#34;&gt;The Art of Attack: Attacker Mindset for Security Professionals ($30.00 Value) FREE for a Limited Time&lt;/h2&gt;&lt;p&gt;Take on the perspective of an attacker with this insightful new resource for ethical hackers, pentesters, and social engineers. In The Art of Attack: Attacker Mindset for Security Professionals, experienced physical pentester and social engineer Maxie Reynolds untangles the threads of a useful, sometimes dangerous, mentality. The book shows ethical hackers, social engineers, and pentesters what an attacker mindset is and how to use it to their advantage. Adopting this mindset will result in the improvement of security, offensively and defensively, by allowing you to see your environment objectively through the eyes of an attacker. The book shows you the laws of the mindset and the techniques attackers use, from persistence to “start with the end” strategies and non-linear thinking, that make them so dangerous. You’ll discover: A variety of attacker strategies, including approaches, processes, reconnaissance, privilege escalation, redundant access, and escape techniques. The unique tells and signs of an attack and how to avoid becoming a victim of one. What the science of psychology tells us about amygdala hijacking and other tendencies that you need to protect against. Perfect for red teams, social engineers, pentesters, and ethical hackers seeking to fortify and harden their systems and the systems of their clients, The Art of Attack is an invaluable resource for anyone in the technology security space seeking a one-stop resource that puts them in the mind of an attacker.&lt;p style=&#34;text-align: center;height: 65px;margin-top: 40px&#34;&gt;&lt;a class=download style=&#34;background-color: #c8dbf7;border-color: #b0c4de;padding-top: 19px;text-decoration: none&#34; href=&#34;https://javacodegeeks.tradepub.com/c/pubRD.mpl?secure=1&amp;amp;sr=oc&amp;amp;_t=oc:&amp;amp;qf=w_wile862&amp;amp;ch=w_wile862-j&#34; target=_blank&gt;&lt;span style=&#34;font-size: 20px;font-weight: bold;vertical-align: middle&#34;&gt;Get it FREE!&lt;/span&gt;&lt;/a&gt;&lt;tr&gt;&lt;td width=25% style=&#34;border: 0px;vertical-align: top&#34;&gt;&lt;a href=&#34;https://javacodegeeks.tradepub.com/c/pubRD.mpl?secure=1&amp;amp;sr=oc&amp;amp;_t=oc:&amp;amp;qf=w_wile861&amp;amp;ch=w_wile861-j&#34; target=_blank&gt;&lt;img data-lazyloaded=1 src=https://img.tradepub.com/free/w_wile861/images/w_wile861c4.gif decoding=async data-src=https://img.tradepub.com/free/w_wile861/images/w_wile861c4.gif&gt;&lt;noscript&gt;&lt;img decoding=async src=https://img.tradepub.com/free/w_wile861/images/w_wile861c4.gif&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;td style=&#34;vertical-align: top;border: 0px&#34;&gt;&lt;h2 style=&#34;text-align: center;background: #c8dbf7&#34;&gt;Creative Machines: AI, Art &amp;amp; Us ($35.00 Value) FREE for a Limited Time&lt;/h2&gt;&lt;p&gt;A bold and thought-provoking journey into AI’s power to transform human creativity. In Creative Machines: AI, Art &amp;amp; Us, world-renowned AI researcher and generative AI pioneer, Maya Ackerman, takes you on a thrilling journey into the rise of creative AI, from its earliest pioneers to the cutting-edge tools shaping music, art, and human imagination today. Ackerman cuts through the hype, revealing the true capabilities and limitations of generative AI while championing its potential to amplify human creativity rather than replace it. Drawing on psychology, philosophy, and her own cutting-edge research, she reveals how generative AI exposes both the brilliance and the blind spots of human society-our ingenuity, our biases, our assumptions about intelligence and identity. The book contains: The hidden history and explosive growth of AI-generated creativity. Explorations of the true capabilities and limitations of creative AI. A visionary framework for using AI as a tool to enhance, rather than hinder, human creativity. A bold new perspective on AI ethics and why fixing AI is not enough. Perfect for entrepreneurs, tech leaders, developers, ethicists, and creative professionals, Creative Machines offers deep insights, compelling stories, and a visionary perspective on AI’s impact on human society. An essential read for anyone doing their best to navigate the rapidly evolving landscape of generative AI.&lt;p style=&#34;text-align: center;height: 65px;margin-top: 40px&#34;&gt;&lt;a class=download style=&#34;background-color: #c8dbf7;border-color: #b0c4de;padding-top: 19px;text-decoration: none&#34; href=&#34;https://javacodegeeks.tradepub.com/c/pubRD.mpl?secure=1&amp;amp;sr=oc&amp;amp;_t=oc:&amp;amp;qf=w_wile861&amp;amp;ch=w_wile861-j&#34; target=_blank&gt;&lt;span style=&#34;font-size: 20px;font-weight: bold;vertical-align: middle&#34;&gt;Get it FREE!&lt;/span&gt;&lt;/a&gt;&lt;tr&gt;&lt;td width=25% style=&#34;border: 0px;vertical-align: top&#34;&gt;&lt;a href=&#34;https://javacodegeeks.tradepub.com/c/pubRD.mpl?secure=1&amp;amp;sr=oc&amp;amp;_t=oc:&amp;amp;qf=w_wile860&amp;amp;ch=w_wile860-j&#34; target=_blank&gt;&lt;img data-lazyloaded=1 src=https://img.tradepub.com/free/w_wile860/images/w_wile860c4.gif decoding=async data-src=https://img.tradepub.com/free/w_wile860/images/w_wile860c4.gif&gt;&lt;noscript&gt;&lt;img decoding=async src=https://img.tradepub.com/free/w_wile860/images/w_wile860c4.gif&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;td style=&#34;vertical-align: top;border: 0px&#34;&gt;&lt;h2 style=&#34;text-align: center;background: #c8dbf7&#34;&gt;Risky is the New Safe: The Rules Have Changed…($45.00 Value) FREE for a Limited Time&lt;/h2&gt;&lt;p&gt;THE NEW YORK TIMES BESTSELLER and #1 WALL STREET JOURNAL BESTSELLER. Risky Is the New Safe is a different kind of book for a different kind of thinking-a thought-provoking manifesto for risk takers. It will challenge you to think laterally, question premises, and be a contrarian. Disruptive technology, accelerating speed of change and economic upheaval are changing the game. The same tired, old conventional thinking won’t get you to success today. Risky Is the New Safe will change the way you look at everything! You’ll view challenges-and the corresponding opportunities they provide-in entirely new and exciting ways. You’ll recognize powerful new gateways to creating wealth. In this mind-bending book you’ll discover: How mavericks like Steve Jobs, Richard Branson, and Mark Cuban think differently-and what you can learn from them;. The six-month online course that could allow you to earn more than a Ph.D.;. How social media changes branding and marketing forever, and what that means for you;. What happens when holo-suites and virtual-reality sex come about, and how you need to prepare;. The new religion of ideas: How to become an “idea generator” and declare as a free agent; and,. What will cause the Euro, precious metals, and oceanfront real estate to collapse-and how that can make you rich!.&lt;p style=&#34;text-align: center;height: 65px;margin-top: 40px&#34;&gt;&lt;a class=download style=&#34;background-color: #c8dbf7;border-color: #b0c4de;padding-top: 19px;text-decoration: none&#34; href=&#34;https://javacodegeeks.tradepub.com/c/pubRD.mpl?secure=1&amp;amp;sr=oc&amp;amp;_t=oc:&amp;amp;qf=w_wile860&amp;amp;ch=w_wile860-j&#34; target=_blank&gt;&lt;span style=&#34;font-size: 20px;font-weight: bold;vertical-align: middle&#34;&gt;Get it FREE!&lt;/span&gt;&lt;/a&gt;&lt;/table&gt;&lt;p&gt;That’s it for now, we hope you found them insightful. Stay tuned for more!&lt;p&gt;Till next time, keep geeking!&lt;/p&gt;&lt;style&gt;.lepopup-progress-60 div.lepopup-progress-t1&gt;div{background-color:#e0e0e0;}.lepopup-progress-60 div.lepopup-progress-t1&gt;div&gt;div{background-color:#bd4070;}.lepopup-progress-60 div.lepopup-progress-t1&gt;div&gt;div{color:#ffffff;}.lepopup-progress-60 div.lepopup-progress-t1&gt;label{color:#444444;}.lepopup-form-60, .lepopup-form-60 *, .lepopup-progress-60 {font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-signature-box span i{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#555555;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-signature-box,.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;text&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;email&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;password&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input select,.lepopup-form-60 .lepopup-element div.lepopup-input select option,.lepopup-form-60 .lepopup-element div.lepopup-input textarea{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#555555;font-style:normal;text-decoration:none;text-align:left;background-color:rgba(255, 255, 255, 0.7);background-image:none;border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow: inset 0px 0px 15px -7px #000000;}.lepopup-form-60 .lepopup-element div.lepopup-input ::placeholder{color:#555555; opacity: 0.9;} .lepopup-form-60 .lepopup-element div.lepopup-input ::-ms-input-placeholder{color:#555555; opacity: 0.9;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect::-webkit-scrollbar-thumb{background-color:#cccccc;}.lepopup-form-60 .lepopup-element div.lepopup-input&gt;i.lepopup-icon-left, .lepopup-form-60 .lepopup-element div.lepopup-input&gt;i.lepopup-icon-right{font-size:20px;color:#444444;border-radius:0px;}.lepopup-form-60 .lepopup-element .lepopup-button,.lepopup-form-60 .lepopup-element .lepopup-button:visited{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#ffffff;font-weight:700;font-style:normal;text-decoration:none;text-align:center;background-color:#326693;background-image:none;border-width:1px;border-style:solid;border-color:#326693;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element div.lepopup-input .lepopup-imageselect+label{border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element div.lepopup-input .lepopup-imageselect+label span.lepopup-imageselect-label{font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl:checked+label:after{background-color:rgba(255, 255, 255, 0.7);}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-classic+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-fa-check+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-square+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl+label{background-color:rgba(255, 255, 255, 0.7);border-color:#cccccc;color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-square:checked+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl:checked+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-classic+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-fa-check+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-dot+label{background-color:rgba(255, 255, 255, 0.7);border-color:#cccccc;color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-dot:checked+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect&gt;input[type=&#39;checkbox&#39;]+label:hover{background-color:#bd4070;color:#ffffff;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect&gt;input[type=&#39;checkbox&#39;]:checked+label{background-color:#a93a65;color:#ffffff;}.lepopup-form-60 .lepopup-element input[type=&#39;checkbox&#39;].lepopup-tile+label, .lepopup-form-60 .lepopup-element input[type=&#39;radio&#39;].lepopup-tile+label {font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:center;background-color:#ffffff;background-image:none;border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element-error{font-size:15px;color:#ffffff;font-style:normal;text-decoration:none;text-align:left;background-color:#d9534f;background-image:none;}.lepopup-form-60 .lepopup-element-2 {background-color:rgba(226, 236, 250, 1);background-image:none;border-width:1px;border-style:solid;border-color:rgba(216, 216, 216, 1);border-radius:3px;box-shadow: 1px 1px 15px -6px #d7e1eb;}.lepopup-form-60 .lepopup-element-3 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:26px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-3 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:26px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-3 .lepopup-element-html-content {min-height:73px;}.lepopup-form-60 .lepopup-element-4 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:19px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-4 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:19px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-4 .lepopup-element-html-content {min-height:23px;}.lepopup-form-60 .lepopup-element-5 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-5 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-5 .lepopup-element-html-content {min-height:24px;}.lepopup-form-60 .lepopup-element-6 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-6 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-6 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-7 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-7 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-7 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-8 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-8 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-8 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-9 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-9 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-9 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-10 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-10 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-10 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-11 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-11 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-11 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-12 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-12 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-12 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-13 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-13 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-13 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-14 div.lepopup-input .lepopup-icon-left, .lepopup-form-60 .lepopup-element-14 div.lepopup-input .lepopup-icon-right {line-height:36px;}.lepopup-form-60 .lepopup-element-15 div.lepopup-input{height:auto;line-height:1;}.lepopup-form-60 .lepopup-element-16 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:14px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-16 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:14px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-16 .lepopup-element-html-content {min-height:5px;}.lepopup-form-60 .lepopup-element-19 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#333333;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-19 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#333333;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-19 .lepopup-element-html-content {min-height:363px;}.lepopup-form-60 .lepopup-element-0 * {font-size:15px;color:#ffffff;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-0 {font-size:15px;color:#ffffff;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:#5cb85c;background-image:none;border-width:0px;border-style:solid;border-color:#ccc;border-radius:5px;box-shadow: 1px 1px 15px -6px #000000;padding-top:40px;padding-right:40px;padding-bottom:40px;padding-left:40px;}.lepopup-form-60 .lepopup-element-0 .lepopup-element-html-content {min-height:160px;}&lt;/style&gt;&lt;div class=lepopup-inline style=&#34;margin: 0 auto;&#34;&gt;&lt;div class=&#34;lepopup-form lepopup-form-60 lepopup-form-IfM78gcspW7Jau2Z lepopup-form-icon-inside lepopup-form-position-middle-right&#34; data-session=0 data-id=IfM78gcspW7Jau2Z data-form-id=60 data-slug=7lQM6oyWL5bTm5lw data-title=&#34;Under the Post Inline&#34; data-page=1 data-xd=off data-width=820 data-height=430 data-position=middle-right data-esc=off data-enter=on data-disable-scrollbar=off style=display:none;width:820px;height:430px; onclick=event.stopPropagation();&gt;&lt;div class=lepopup-form-inner style=width:820px;height:430px;&gt;&lt;div class=&#34;lepopup-element lepopup-element-2 lepopup-element-rectangle&#34; data-type=rectangle data-top=0 data-left=0 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:501;top:0px;left:0px;width:820px;height:430px;&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-3 lepopup-element-html&#34; data-type=html data-top=7 data-left=10 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:502;top:7px;left:10px;width:797px;height:73px;&gt;&lt;div class=lepopup-element-html-content&gt;Do you want to know how to develop your skillset to become a &lt;span style=&#34;color: #CAB43D; text-shadow: 1px 1px #835D5D;&#34;&gt;Java Rockstar?&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-4 lepopup-element-html&#34; data-type=html data-top=83 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:503;top:83px;left:308px;width:473px;height:23px;&gt;&lt;div class=lepopup-element-html-content&gt;Subscribe to our newsletter to start Rocking &lt;span style=&#34;text-decoration: underline;&#34;&gt;right now!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-5 lepopup-element-html&#34; data-type=html data-top=107 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:504;top:107px;left:308px;width:473px;height:24px;&gt;&lt;div class=lepopup-element-html-content&gt;To get you started we give you our best selling eBooks for &lt;span style=&#34;color:#e01404; text-shadow: 1px 1px #C99924; font-size: 15px;&#34;&gt;FREE!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-6 lepopup-element-html&#34; data-type=html data-top=136 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:505;top:136px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;1.&lt;/span&gt; JPA Mini Book&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-7 lepopup-element-html&#34; data-type=html data-top=156 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:506;top:156px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;2.&lt;/span&gt; JVM Troubleshooting Guide&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-8 lepopup-element-html&#34; data-type=html data-top=176 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:507;top:176px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;3.&lt;/span&gt; JUnit Tutorial for Unit Testing&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-9 lepopup-element-html&#34; data-type=html data-top=196 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:508;top:196px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;4.&lt;/span&gt; Java Annotations Tutorial&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-10 lepopup-element-html&#34; data-type=html data-top=216 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:509;top:216px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;5.&lt;/span&gt; Java Interview Questions&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-11 lepopup-element-html&#34; data-type=html data-top=236 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:510;top:236px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;6.&lt;/span&gt; Spring Interview Questions&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-12 lepopup-element-html&#34; data-type=html data-top=256 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:511;top:256px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;7.&lt;/span&gt; Android UI Design&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-13 lepopup-element-html&#34; data-type=html data-top=282 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:512;top:282px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;and many more ....&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-14&#34; data-type=email data-deps data-id=14 data-top=305 data-left=308 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:513;top:305px;left:308px;width:473px;height:36px;&gt;&lt;div class=lepopup-input&gt;&lt;input type=email name=lepopup-14 class=lepopup-ta-left placeholder=&#34;Enter your e-mail...&#34; autocomplete=email data-default aria-label=&#34;Email Field&#34; oninput=lepopup_input_changed(this); onfocus=lepopup_input_error_hide(this);&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-15&#34; data-type=checkbox data-deps data-id=15 data-top=344 data-left=308 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:514;top:344px;left:308px;width:160px;&gt;&lt;div class=&#34;lepopup-input lepopup-cr-layout-1 lepopup-cr-layout-left&#34;&gt;&lt;div class=&#34;lepopup-cr-container lepopup-cr-container-medium lepopup-cr-container-left&#34;&gt;&lt;div class=lepopup-cr-box&gt;&lt;input class=&#34;lepopup-checkbox lepopup-checkbox-classic lepopup-checkbox-medium&#34; type=checkbox name=lepopup-15[] id=lepopup-checkbox-b7qYpw45L1HJEPS2-14-0 value=on data-default=off onchange=lepopup_input_changed(this);&gt;&lt;label for=lepopup-checkbox-b7qYpw45L1HJEPS2-14-0 onclick=lepopup_input_error_hide(this);&gt;&lt;/label&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-cr-label lepopup-ta-left&#34;&gt;&lt;label for=lepopup-checkbox-b7qYpw45L1HJEPS2-14-0 onclick=lepopup_input_error_hide(this);&gt;&lt;/label&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-16 lepopup-element-html&#34; data-type=html data-top=344 data-left=338 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:515;top:344px;left:338px;width:350px;height:5px;&gt;&lt;div class=lepopup-element-html-content&gt;I agree to the &lt;a href=https://www.javacodegeeks.com/about/terms-of-use target=_blank&gt;Terms&lt;/a&gt; and &lt;a href=https://www.javacodegeeks.com/about/privacy-policy target=_blank&gt;Privacy Policy&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-17&#34; data-type=button data-top=372 data-left=308 data-animation-in=bounceIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:516;top:372px;left:308px;width:85px;height:37px;&gt;&lt;a class=&#34;lepopup-button lepopup-button-zoom-out&#34; href=https://www.javacodegeeks.com/feed/ onclick=&#34;return lepopup_submit(this);&#34; data-label=&#34;Sign up&#34; data-loading=Loading...&gt;&lt;span&gt;Sign up&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-19 lepopup-element-html&#34; data-type=html data-top=67 data-left=-15 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:518;top:67px;left:-15px;width:320px;height:363px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;img data-lazyloaded=1 src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png fetchpriority=high decoding=async data-src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png alt width=320 height=363&gt;&lt;noscript&gt;&lt;img fetchpriority=high decoding=async src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png alt width=320 height=363&gt;&lt;/noscript&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-form lepopup-form-60 lepopup-form-IfM78gcspW7Jau2Z lepopup-form-icon-inside lepopup-form-position-middle-right&#34; data-session=0 data-id=IfM78gcspW7Jau2Z data-form-id=60 data-slug=7lQM6oyWL5bTm5lw data-title=&#34;Under the Post Inline&#34; data-page=confirmation data-xd=off data-width=420 data-height=320 data-position=middle-right data-esc=off data-enter=on data-disable-scrollbar=off style=display:none;width:420px;height:320px; onclick=event.stopPropagation();&gt;&lt;div class=lepopup-form-inner style=width:420px;height:320px;&gt;&lt;div class=&#34;lepopup-element lepopup-element-0 lepopup-element-html&#34; data-type=html data-top=80 data-left=70 data-animation-in=bounceInDown data-animation-out=fadeOutUp style=animation-duration:1000ms;animation-delay:0ms;z-index:500;top:80px;left:70px;width:280px;height:160px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;h4 style=&#34;text-align: center; font-size: 18px; font-weight: bold;&#34;&gt;Thank you!&lt;/h4&gt;&lt;p style=&#34;text-align: center;&#34;&gt;We will contact you soon.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;input type=hidden id=lepopup-logic-IfM78gcspW7Jau2Z value=[]&gt;&lt;/div&gt;&lt;div class=&#34;post-bottom-meta post-bottom-tags post-tags-classic&#34;&gt;&lt;div class=post-bottom-meta-title&gt;&lt;span class=tie-icon-tags aria-hidden=true&gt;&lt;/span&gt;Tags&lt;/div&gt;&lt;span class=tagcloud&gt;&lt;a href=https://www.javacodegeeks.com/tag/ebooks rel=tag&gt;eBooks&lt;/a&gt; &lt;a href=https://www.javacodegeeks.com/tag/offers rel=tag&gt;Offers&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=post-extra-info&gt;&lt;div class=theiaStickySidebar&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=clearfix&gt;&lt;/div&gt;</description>
      <author>Java Code Geeks</author>
      <guid>https://www.javacodegeeks.com/2026/04/free-ebooks-ransomware-protection-playbook-job-architecture-four-more-best-selling-titles.html</guid>
      <pubDate>Sat, 18 Apr 2026 10:30:30 +0000</pubDate>
    </item>
    <item>
      <title>Recursion in Python – Introduction For Beginners</title>
      <link>https://www.javacodegeeks.com/recursion-in-python-introduction-for-beginners.html</link>
      <description>&lt;header class=entry-header-outer&gt;&lt;nav id=breadcrumb&gt;&lt;a href=https://www.javacodegeeks.com/&gt;&lt;span class=tie-icon-home aria-hidden=true&gt;&lt;/span&gt;Home&lt;/a&gt;&lt;em class=delimiter&gt;»&lt;/em&gt;&lt;a href=https://www.javacodegeeks.com/category/web-development&gt;Web Development&lt;/a&gt;&lt;em class=delimiter&gt;»&lt;/em&gt;&lt;a href=https://www.javacodegeeks.com/category/web-development/python&gt;Python&lt;/a&gt;&lt;em class=delimiter&gt;»&lt;/em&gt;&lt;span class=current&gt;Recursion in Python – Introduction For Beginners&lt;/span&gt;&lt;/nav&gt;&lt;div class=entry-header&gt;&lt;span class=post-cat-wrap&gt;&lt;a class=&#34;post-cat tie-cat-1878&#34; href=https://www.javacodegeeks.com/category/web-development/python&gt;Python&lt;/a&gt;&lt;/span&gt;&lt;h1 class=&#34;post-title entry-title&#34;&gt;Recursion in Python – Introduction For Beginners&lt;/h1&gt;&lt;/div&gt;&lt;/header&gt;&lt;div class=&#34;entry-content entry clearfix&#34;&gt;&lt;div class=&#34;stream-item stream-item-above-post-content&#34;&gt;&lt;div class=stream-item-size&gt;&lt;div id=adngin-in-post-0 style=&#34;float:left; margin-right:20px; margin-bottom:10px; width:300px; height:274px;&#34;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Recursion is a fundamental concept in programming that helps simplify complex problems by breaking them into smaller, repeatable steps. Understanding how recursion works is essential for writing clean and efficient solutions for many real-world scenarios. Let us delve into our recursion in python intro for beginners to understand how this powerful technique simplifies complex problems by breaking them into smaller, manageable steps.&lt;h2&gt;&lt;a name=section-1&gt;&lt;/a&gt;1. Understanding Recursion in Python&lt;/h2&gt;&lt;p&gt;&lt;a href=https://en.wikipedia.org/wiki/Recursion_(computer_science) target=_blank rel=noopener&gt;Recursion&lt;/a&gt; is a programming technique where a function calls itself to solve a problem. Instead of solving the entire problem at once using loops, recursion divides it into smaller, more manageable subproblems. Each recursive call works on a reduced version of the original problem until it reaches a simple condition that can be solved directly. Recursion is widely used in computer science for problems that have a natural hierarchical or repetitive structure, such as mathematical computations, tree traversal, and divide-and-conquer algorithms.&lt;h3&gt;1.1 Core Rules of Recursive Functions&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Base Case: This is the terminating condition of the recursion. Without a base case, the function would keep calling itself indefinitely, leading to a stack overflow error. The base case ensures that recursion eventually stops.&lt;li&gt;Recursive Case: This is the part where the function calls itself with a smaller or simpler input. Each recursive call should bring the problem closer to the base case.&lt;/ul&gt;&lt;h3&gt;1.2 When Should You Use Recursion?&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Divide and Conquer Problems: When a problem can be split into smaller independent subproblems (e.g., merge sort, quicksort).&lt;li&gt;Tree and Graph Traversal: Recursive approaches naturally fit hierarchical structures like trees (DFS traversal, binary tree operations).&lt;li&gt;Nested or Hierarchical Data: Parsing JSON, file systems, or XML structures where elements contain sub-elements.&lt;li&gt;Backtracking Problems: Problems like permutations, combinations, Sudoku solving, and N-Queens where you explore all possible solutions.&lt;li&gt;Mathematical Problems: Factorial, Fibonacci sequence, power calculations, etc.&lt;/ul&gt;&lt;p&gt;When NOT to use recursion: Avoid recursion when the problem can be solved more efficiently with iteration, especially when dealing with very large inputs due to memory overhead.&lt;h3&gt;1.3 How Python Executes Recursive Calls&lt;/h3&gt;&lt;p&gt;Python uses a call stack to manage function calls. Every time a function is called (including recursive calls), a new stack frame is created and pushed onto the stack. This frame contains:&lt;ul&gt;&lt;li&gt;Function arguments&lt;li&gt;Local variables&lt;li&gt;Return address (where to go after execution)&lt;/ul&gt;&lt;p&gt;When a function completes execution, its stack frame is removed (popped), and control returns to the previous function call.&lt;div style=&#34;display:inline-block; margin: 15px 0;&#34;&gt;&lt;div id=adngin-JavaCodeGeeks_incontent_video-0 style=display:inline-block;&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;h3&gt;1.4 Recursion vs Iteration&lt;/h3&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Recursion&lt;th&gt;Iteration&lt;tr&gt;&lt;td&gt;Uses function calls&lt;td&gt;Uses loops (for/while)&lt;tr&gt;&lt;td&gt;Elegant and concise for complex problems&lt;td&gt;More straightforward for simple repetitive tasks&lt;tr&gt;&lt;td&gt;Higher memory usage (call stack)&lt;td&gt;Lower memory usage&lt;tr&gt;&lt;td&gt;Can lead to stack overflow if not controlled&lt;td&gt;No stack overflow risk&lt;tr&gt;&lt;td&gt;Closer to mathematical definitions&lt;td&gt;Closer to machine-level execution&lt;/table&gt;&lt;h3&gt;1.5 Python Recursion Limit&lt;/h3&gt;&lt;p&gt;Python imposes a recursion depth limit (typically around 1000) to prevent infinite recursion from crashing the program. This limit ensures that the interpreter does not exceed the maximum stack size.&lt;pre class=&#34;brush:python; wrap-lines:false;&#34;&gt;import sys&#xA;&#xA;# Check current recursion limit&#xA;print(sys.getrecursionlimit())&#xA;&#xA;# Increase limit cautiously&#xA;sys.setrecursionlimit(2000)&#xA;&lt;/pre&gt;&lt;p&gt;This code demonstrates how to work with Python’s recursion limit using the built-in &lt;code&gt;sys&lt;/code&gt; module. First, &lt;code&gt;import sys&lt;/code&gt; loads the module that provides access to system-specific parameters and functions. The statement &lt;code&gt;sys.getrecursionlimit()&lt;/code&gt; retrieves the current maximum recursion depth (typically around 1000), which is the number of nested function calls Python allows before raising a &lt;code&gt;RecursionError&lt;/code&gt; to prevent a stack overflow; this value is printed using &lt;code&gt;print()&lt;/code&gt;. The next line, &lt;code&gt;sys.setrecursionlimit(2000)&lt;/code&gt;, increases this limit to 2000, allowing deeper recursive calls. However, this should be done cautiously because increasing the limit does not increase available memory, and setting it too high can lead to a program crash if the call stack exceeds system capacity.&lt;h2&gt;&lt;a name=section-2&gt;&lt;/a&gt;2. Recursion Examples&lt;/h2&gt;&lt;p&gt;This example demonstrates multiple real-world applications of recursion, including mathematical computation, nested data processing, tree traversal, and optimization using memoization.&lt;pre class=&#34;brush:python; wrap-lines:false;&#34;&gt;# recursion_examples.py&#xA;&#xA;# 1. Factorial using recursion&#xA;def factorial(n):&#xA;    if n == 0 or n == 1:&#xA;        return 1&#xA;    return n * factorial(n - 1)&#xA;&#xA;&#xA;# 2. Sum of nested list using recursion&#xA;def sum_nested(data):&#xA;    total = 0&#xA;    for item in data:&#xA;        if isinstance(item, list):&#xA;            total += sum_nested(item)&#xA;        else:&#xA;            total += item&#xA;    return total&#xA;&#xA;&#xA;# 3. Tree traversal using recursion&#xA;class Node:&#xA;    def __init__(self, value):&#xA;        self.value = value&#xA;        self.children = []&#xA;&#xA;def traverse(node):&#xA;    print(node.value, end=&amp;#34; &amp;#34;)&#xA;    for child in node.children:&#xA;        traverse(child)&#xA;&#xA;&#xA;# 4. Fibonacci using memoization&#xA;def fib(n, memo={}):&#xA;    if n in memo:&#xA;        return memo[n]&#xA;    if n &amp;lt;= 1:&#xA;        return n&#xA;    memo[n] = fib(n-1, memo) + fib(n-2, memo)&#xA;    return memo[n]&#xA;&#xA;&#xA;# ---- Running all examples ----&#xA;&#xA;# Factorial&#xA;print(&amp;#34;Factorial of 5:&amp;#34;, factorial(5))&#xA;&#xA;# Nested list sum&#xA;nested_list = [1, [2, 3], [4, [5, 6]]]&#xA;print(&amp;#34;Sum of nested list:&amp;#34;, sum_nested(nested_list))&#xA;&#xA;# Tree traversal&#xA;root = Node(&amp;#34;A&amp;#34;)&#xA;b = Node(&amp;#34;B&amp;#34;)&#xA;c = Node(&amp;#34;C&amp;#34;)&#xA;d = Node(&amp;#34;D&amp;#34;)&#xA;&#xA;root.children = [b, c]&#xA;b.children = [d]&#xA;&#xA;print(&amp;#34;Tree Traversal:&amp;#34;, end=&amp;#34; &amp;#34;)&#xA;traverse(root)&#xA;print()&#xA;&#xA;# Fibonacci with memoization&#xA;print(&amp;#34;Fibonacci of 10:&amp;#34;, fib(10))&#xA;&lt;/pre&gt;&lt;h3&gt;2.1 Code Explanation&lt;/h3&gt;&lt;p&gt;This program demonstrates multiple practical uses of recursion in Python. The &lt;code&gt;factorial(n)&lt;/code&gt; function calculates the factorial of a number by defining a base case (&lt;code&gt;n == 0&lt;/code&gt; or &lt;code&gt;n == 1&lt;/code&gt;) that returns 1, and a recursive case that multiplies &lt;code&gt;n&lt;/code&gt; with the factorial of &lt;code&gt;n-1&lt;/code&gt;. The &lt;code&gt;sum_nested(data)&lt;/code&gt; function processes a list that may contain nested lists by iterating through each element; if an element is itself a list, the function calls itself recursively to compute its sum, otherwise it adds the value directly to the total. The &lt;code&gt;Node&lt;/code&gt; class represents a tree structure where each node has a value and a list of children, and the &lt;code&gt;traverse(node)&lt;/code&gt; function performs a depth-first traversal by printing the current node’s value and then recursively visiting each child node. The &lt;code&gt;fib(n, memo={})&lt;/code&gt; function computes the Fibonacci number using recursion combined with memoization, where previously computed results are stored in a dictionary to avoid redundant calculations, significantly improving performance. Finally, the program executes all examples: it computes the factorial of 5, calculates the sum of a nested list, constructs and traverses a tree structure, and prints the 10th Fibonacci number, demonstrating how recursion can be applied to mathematical problems, hierarchical data, and performance optimization.&lt;h3&gt;2.2 Code Output&lt;/h3&gt;&lt;pre class=&#34;brush:plain; wrap-lines:false;&#34;&gt;Factorial of 5: 120&#xA;Sum of nested list: 21&#xA;Tree Traversal: A B D C &#xA;Fibonacci of 10: 55&#xA;&lt;/pre&gt;&lt;p&gt;The output shows the results of executing each recursive example in sequence. The line &lt;code&gt;Factorial of 5: 120&lt;/code&gt; comes from the factorial function, where the recursive calls multiply values from 5 down to 1 (5 × 4 × 3 × 2 × 1). The line &lt;code&gt;Sum of nested list: 21&lt;/code&gt; is produced by recursively traversing the nested list structure &lt;code&gt;[1, [2, 3], [4, [5, 6]]]&lt;/code&gt; and adding all elements together. The &lt;code&gt;Tree Traversal: A B D C&lt;/code&gt; output represents a depth-first traversal of the tree, where the root node “A” is visited first, followed by its left child “B”, then “B”‘s child “D”, and finally the sibling node “C”. Lastly, &lt;code&gt;Fibonacci of 10: 55&lt;/code&gt; is the result of the optimized recursive Fibonacci function, where memoization avoids repeated calculations and efficiently computes the 10th Fibonacci number.&lt;h2&gt;&lt;a name=section-3&gt;&lt;/a&gt;3. Conclusion&lt;/h2&gt;&lt;p&gt;Recursion is a powerful and elegant problem-solving technique that works by breaking complex problems into smaller, more manageable subproblems, making it especially useful for tasks like tree traversal and handling nested data structures; however, it must be applied carefully due to potential performance overhead and stack limitations. The key principles to remember are to always define a clear base case to prevent infinite recursion, ensure that each recursive call reduces the problem size so it progresses toward termination, use optimization techniques like memoization to avoid redundant computations and improve efficiency, and prefer iterative approaches when dealing with very deep recursion levels to prevent stack overflow and maintain better performance.&lt;/p&gt;&lt;style&gt;.lepopup-progress-60 div.lepopup-progress-t1&gt;div{background-color:#e0e0e0;}.lepopup-progress-60 div.lepopup-progress-t1&gt;div&gt;div{background-color:#bd4070;}.lepopup-progress-60 div.lepopup-progress-t1&gt;div&gt;div{color:#ffffff;}.lepopup-progress-60 div.lepopup-progress-t1&gt;label{color:#444444;}.lepopup-form-60, .lepopup-form-60 *, .lepopup-progress-60 {font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-signature-box span i{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#555555;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-signature-box,.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;text&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;email&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;password&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input select,.lepopup-form-60 .lepopup-element div.lepopup-input select option,.lepopup-form-60 .lepopup-element div.lepopup-input textarea{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#555555;font-style:normal;text-decoration:none;text-align:left;background-color:rgba(255, 255, 255, 0.7);background-image:none;border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow: inset 0px 0px 15px -7px #000000;}.lepopup-form-60 .lepopup-element div.lepopup-input ::placeholder{color:#555555; opacity: 0.9;} .lepopup-form-60 .lepopup-element div.lepopup-input ::-ms-input-placeholder{color:#555555; opacity: 0.9;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect::-webkit-scrollbar-thumb{background-color:#cccccc;}.lepopup-form-60 .lepopup-element div.lepopup-input&gt;i.lepopup-icon-left, .lepopup-form-60 .lepopup-element div.lepopup-input&gt;i.lepopup-icon-right{font-size:20px;color:#444444;border-radius:0px;}.lepopup-form-60 .lepopup-element .lepopup-button,.lepopup-form-60 .lepopup-element .lepopup-button:visited{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#ffffff;font-weight:700;font-style:normal;text-decoration:none;text-align:center;background-color:#326693;background-image:none;border-width:1px;border-style:solid;border-color:#326693;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element div.lepopup-input .lepopup-imageselect+label{border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element div.lepopup-input .lepopup-imageselect+label span.lepopup-imageselect-label{font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl:checked+label:after{background-color:rgba(255, 255, 255, 0.7);}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-classic+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-fa-check+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-square+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl+label{background-color:rgba(255, 255, 255, 0.7);border-color:#cccccc;color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-square:checked+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl:checked+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-classic+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-fa-check+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-dot+label{background-color:rgba(255, 255, 255, 0.7);border-color:#cccccc;color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-dot:checked+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect&gt;input[type=&#39;checkbox&#39;]+label:hover{background-color:#bd4070;color:#ffffff;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect&gt;input[type=&#39;checkbox&#39;]:checked+label{background-color:#a93a65;color:#ffffff;}.lepopup-form-60 .lepopup-element input[type=&#39;checkbox&#39;].lepopup-tile+label, .lepopup-form-60 .lepopup-element input[type=&#39;radio&#39;].lepopup-tile+label {font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:center;background-color:#ffffff;background-image:none;border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element-error{font-size:15px;color:#ffffff;font-style:normal;text-decoration:none;text-align:left;background-color:#d9534f;background-image:none;}.lepopup-form-60 .lepopup-element-2 {background-color:rgba(226, 236, 250, 1);background-image:none;border-width:1px;border-style:solid;border-color:rgba(216, 216, 216, 1);border-radius:3px;box-shadow: 1px 1px 15px -6px #d7e1eb;}.lepopup-form-60 .lepopup-element-3 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:26px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-3 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:26px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-3 .lepopup-element-html-content {min-height:73px;}.lepopup-form-60 .lepopup-element-4 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:19px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-4 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:19px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-4 .lepopup-element-html-content {min-height:23px;}.lepopup-form-60 .lepopup-element-5 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-5 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-5 .lepopup-element-html-content {min-height:24px;}.lepopup-form-60 .lepopup-element-6 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-6 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-6 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-7 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-7 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-7 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-8 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-8 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-8 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-9 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-9 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-9 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-10 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-10 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-10 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-11 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-11 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-11 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-12 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-12 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-12 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-13 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-13 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-13 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-14 div.lepopup-input .lepopup-icon-left, .lepopup-form-60 .lepopup-element-14 div.lepopup-input .lepopup-icon-right {line-height:36px;}.lepopup-form-60 .lepopup-element-15 div.lepopup-input{height:auto;line-height:1;}.lepopup-form-60 .lepopup-element-16 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:14px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-16 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:14px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-16 .lepopup-element-html-content {min-height:5px;}.lepopup-form-60 .lepopup-element-19 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#333333;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-19 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#333333;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-19 .lepopup-element-html-content {min-height:363px;}.lepopup-form-60 .lepopup-element-0 * {font-size:15px;color:#ffffff;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-0 {font-size:15px;color:#ffffff;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:#5cb85c;background-image:none;border-width:0px;border-style:solid;border-color:#ccc;border-radius:5px;box-shadow: 1px 1px 15px -6px #000000;padding-top:40px;padding-right:40px;padding-bottom:40px;padding-left:40px;}.lepopup-form-60 .lepopup-element-0 .lepopup-element-html-content {min-height:160px;}&lt;/style&gt;&lt;div class=lepopup-inline style=&#34;margin: 0 auto;&#34;&gt;&lt;div class=&#34;lepopup-form lepopup-form-60 lepopup-form-KwGWebYmJLDG8icS lepopup-form-icon-inside lepopup-form-position-middle-right&#34; data-session=0 data-id=KwGWebYmJLDG8icS data-form-id=60 data-slug=7lQM6oyWL5bTm5lw data-title=&#34;Under the Post Inline&#34; data-page=1 data-xd=off data-width=820 data-height=430 data-position=middle-right data-esc=off data-enter=on data-disable-scrollbar=off style=display:none;width:820px;height:430px; onclick=event.stopPropagation();&gt;&lt;div class=lepopup-form-inner style=width:820px;height:430px;&gt;&lt;div class=&#34;lepopup-element lepopup-element-2 lepopup-element-rectangle&#34; data-type=rectangle data-top=0 data-left=0 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:501;top:0px;left:0px;width:820px;height:430px;&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-3 lepopup-element-html&#34; data-type=html data-top=7 data-left=10 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:502;top:7px;left:10px;width:797px;height:73px;&gt;&lt;div class=lepopup-element-html-content&gt;Do you want to know how to develop your skillset to become a &lt;span style=&#34;color: #CAB43D; text-shadow: 1px 1px #835D5D;&#34;&gt;Java Rockstar?&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-4 lepopup-element-html&#34; data-type=html data-top=83 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:503;top:83px;left:308px;width:473px;height:23px;&gt;&lt;div class=lepopup-element-html-content&gt;Subscribe to our newsletter to start Rocking &lt;span style=&#34;text-decoration: underline;&#34;&gt;right now!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-5 lepopup-element-html&#34; data-type=html data-top=107 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:504;top:107px;left:308px;width:473px;height:24px;&gt;&lt;div class=lepopup-element-html-content&gt;To get you started we give you our best selling eBooks for &lt;span style=&#34;color:#e01404; text-shadow: 1px 1px #C99924; font-size: 15px;&#34;&gt;FREE!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-6 lepopup-element-html&#34; data-type=html data-top=136 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:505;top:136px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;1.&lt;/span&gt; JPA Mini Book&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-7 lepopup-element-html&#34; data-type=html data-top=156 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:506;top:156px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;2.&lt;/span&gt; JVM Troubleshooting Guide&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-8 lepopup-element-html&#34; data-type=html data-top=176 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:507;top:176px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;3.&lt;/span&gt; JUnit Tutorial for Unit Testing&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-9 lepopup-element-html&#34; data-type=html data-top=196 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:508;top:196px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;4.&lt;/span&gt; Java Annotations Tutorial&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-10 lepopup-element-html&#34; data-type=html data-top=216 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:509;top:216px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;5.&lt;/span&gt; Java Interview Questions&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-11 lepopup-element-html&#34; data-type=html data-top=236 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:510;top:236px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;6.&lt;/span&gt; Spring Interview Questions&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-12 lepopup-element-html&#34; data-type=html data-top=256 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:511;top:256px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;7.&lt;/span&gt; Android UI Design&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-13 lepopup-element-html&#34; data-type=html data-top=282 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:512;top:282px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;and many more ....&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-14&#34; data-type=email data-deps data-id=14 data-top=305 data-left=308 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:513;top:305px;left:308px;width:473px;height:36px;&gt;&lt;div class=lepopup-input&gt;&lt;input type=email name=lepopup-14 class=lepopup-ta-left placeholder=&#34;Enter your e-mail...&#34; autocomplete=email data-default aria-label=&#34;Email Field&#34; oninput=lepopup_input_changed(this); onfocus=lepopup_input_error_hide(this);&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-15&#34; data-type=checkbox data-deps data-id=15 data-top=344 data-left=308 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:514;top:344px;left:308px;width:160px;&gt;&lt;div class=&#34;lepopup-input lepopup-cr-layout-1 lepopup-cr-layout-left&#34;&gt;&lt;div class=&#34;lepopup-cr-container lepopup-cr-container-medium lepopup-cr-container-left&#34;&gt;&lt;div class=lepopup-cr-box&gt;&lt;input class=&#34;lepopup-checkbox lepopup-checkbox-classic lepopup-checkbox-medium&#34; type=checkbox name=lepopup-15[] id=lepopup-checkbox-Fl1KaCPguLRexmkM-14-0 value=on data-default=off onchange=lepopup_input_changed(this);&gt;&lt;label for=lepopup-checkbox-Fl1KaCPguLRexmkM-14-0 onclick=lepopup_input_error_hide(this);&gt;&lt;/label&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-cr-label lepopup-ta-left&#34;&gt;&lt;label for=lepopup-checkbox-Fl1KaCPguLRexmkM-14-0 onclick=lepopup_input_error_hide(this);&gt;&lt;/label&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-16 lepopup-element-html&#34; data-type=html data-top=344 data-left=338 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:515;top:344px;left:338px;width:350px;height:5px;&gt;&lt;div class=lepopup-element-html-content&gt;I agree to the &lt;a href=https://www.javacodegeeks.com/about/terms-of-use target=_blank&gt;Terms&lt;/a&gt; and &lt;a href=https://www.javacodegeeks.com/about/privacy-policy target=_blank&gt;Privacy Policy&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-17&#34; data-type=button data-top=372 data-left=308 data-animation-in=bounceIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:516;top:372px;left:308px;width:85px;height:37px;&gt;&lt;a class=&#34;lepopup-button lepopup-button-zoom-out&#34; href=https://www.javacodegeeks.com/feed/ onclick=&#34;return lepopup_submit(this);&#34; data-label=&#34;Sign up&#34; data-loading=Loading...&gt;&lt;span&gt;Sign up&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-19 lepopup-element-html&#34; data-type=html data-top=67 data-left=-15 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:518;top:67px;left:-15px;width:320px;height:363px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;img data-lazyloaded=1 src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png fetchpriority=high decoding=async data-src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png alt width=320 height=363&gt;&lt;noscript&gt;&lt;img fetchpriority=high decoding=async src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png alt width=320 height=363&gt;&lt;/noscript&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-form lepopup-form-60 lepopup-form-KwGWebYmJLDG8icS lepopup-form-icon-inside lepopup-form-position-middle-right&#34; data-session=0 data-id=KwGWebYmJLDG8icS data-form-id=60 data-slug=7lQM6oyWL5bTm5lw data-title=&#34;Under the Post Inline&#34; data-page=confirmation data-xd=off data-width=420 data-height=320 data-position=middle-right data-esc=off data-enter=on data-disable-scrollbar=off style=display:none;width:420px;height:320px; onclick=event.stopPropagation();&gt;&lt;div class=lepopup-form-inner style=width:420px;height:320px;&gt;&lt;div class=&#34;lepopup-element lepopup-element-0 lepopup-element-html&#34; data-type=html data-top=80 data-left=70 data-animation-in=bounceInDown data-animation-out=fadeOutUp style=animation-duration:1000ms;animation-delay:0ms;z-index:500;top:80px;left:70px;width:280px;height:160px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;h4 style=&#34;text-align: center; font-size: 18px; font-weight: bold;&#34;&gt;Thank you!&lt;/h4&gt;&lt;p style=&#34;text-align: center;&#34;&gt;We will contact you soon.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;input type=hidden id=lepopup-logic-KwGWebYmJLDG8icS value=[]&gt;&lt;/div&gt;&lt;div class=&#34;post-bottom-meta post-bottom-tags post-tags-classic&#34;&gt;&lt;div class=post-bottom-meta-title&gt;&lt;span class=tie-icon-tags aria-hidden=true&gt;&lt;/span&gt;Tags&lt;/div&gt;&lt;span class=tagcloud&gt;&lt;a href=https://www.javacodegeeks.com/tag/python rel=tag&gt;Python&lt;/a&gt; &lt;a href=https://www.javacodegeeks.com/tag/python-development rel=tag&gt;Python Development&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=post-extra-info&gt;&lt;div class=theiaStickySidebar&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=clearfix&gt;&lt;/div&gt;</description>
      <author>Yatin Batra</author>
      <guid>https://www.javacodegeeks.com/recursion-in-python-introduction-for-beginners.html</guid>
      <pubDate>Fri, 17 Apr 2026 15:08:00 +0000</pubDate>
    </item>
    <item>
      <title>The Halting Problem, Rice’s Theorem,and the Walls They Build</title>
      <link>https://www.javacodegeeks.com/2026/04/the-halting-problem-rices-theoremand-the-walls-they-build.html</link>
      <description>&lt;header class=entry-header-outer&gt;&lt;nav id=breadcrumb&gt;&lt;a href=https://www.javacodegeeks.com/&gt;&lt;span class=tie-icon-home aria-hidden=true&gt;&lt;/span&gt;Home&lt;/a&gt;&lt;em class=delimiter&gt;»&lt;/em&gt;&lt;a href=https://www.javacodegeeks.com/category/software-development&gt;Software Development&lt;/a&gt;&lt;em class=delimiter&gt;»&lt;/em&gt;&lt;span class=current&gt;The Halting Problem, Rice’s Theorem,and the Walls They Build&lt;/span&gt;&lt;/nav&gt;&lt;div class=entry-header&gt;&lt;span class=post-cat-wrap&gt;&lt;a class=&#34;post-cat tie-cat-15&#34; href=https://www.javacodegeeks.com/category/software-development&gt;Software Development&lt;/a&gt;&lt;/span&gt;&lt;h1 class=&#34;post-title entry-title&#34;&gt;The Halting Problem, Rice’s Theorem,and the Walls They Build&lt;/h1&gt;&lt;/div&gt;&lt;/header&gt;&lt;div class=&#34;entry-content entry clearfix&#34;&gt;&lt;div class=&#34;stream-item stream-item-above-post-content&#34;&gt;&lt;div class=stream-item-size&gt;&lt;div id=adngin-in-post-0 style=&#34;float:left; margin-right:20px; margin-bottom:10px; width:300px; height:274px;&#34;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;Why no algorithm — and no AI model — can fully decide what programs do, and what that means for every static analysis tool you’ve ever shipped.&lt;/em&gt;&lt;p&gt;In 1936, Alan Turing proved something extraordinary: no algorithm can exist that reliably determines whether an arbitrary program will eventually stop running or loop forever. This was not a temporary gap in our knowledge — it was a proof that the gap is permanent. Eighty-nine years later, that result still explains why your linter produces false positives, why your AI code reviewer misses certain bugs, and why formal verification tools ask you to write invariants by hand.&lt;p&gt;This article is for developers who want the theory behind the tools — not just &lt;em&gt;what&lt;/em&gt; these limits are, but &lt;em&gt;why&lt;/em&gt; they exist and, critically, what they imply for the static analysis landscape of 2026.&lt;h2 class=wp-block-heading&gt;1. The Setup: What Does “Decidable” Actually Mean?&lt;/h2&gt;&lt;p&gt;Before we get to the proof itself, it’s worth being precise about what we’re claiming. A problem is &lt;strong&gt;decidable&lt;/strong&gt; if there exists an algorithm that, given any valid input, terminates in finite time and outputs a correct yes or no. A problem is &lt;strong&gt;undecidable&lt;/strong&gt; if no such algorithm can possibly exist — not because we haven’t found one yet, but because it can be proven that one cannot exist.&lt;p&gt;Notice the strength of that claim. We’re not talking about computational complexity — about problems that are solvable in principle but slow in practice. Undecidability is a categorical wall. Throwing more hardware, more memory, or more model parameters at an undecidable problem doesn’t help. The impossibility is mathematical, not technological.&lt;p&gt;Turing formalised computation itself in order to make this kind of proof possible. He invented a theoretical device — now called a &lt;a href=https://en.wikipedia.org/wiki/Turing_machine target=_blank rel=&#34;noreferrer noopener&#34;&gt;Turing machine&lt;/a&gt; — which is a minimal model of computation powerful enough to simulate any algorithm. Once you have a formal model, you can ask rigorous questions about what that model can and cannot compute.&lt;h2 class=wp-block-heading&gt;2. The Halting Problem: Turing’s Original Proof&lt;/h2&gt;&lt;p&gt;The Halting Problem asks: given a program P and an input I, does P eventually halt when run on I? Turing proved in &lt;a href=https://www.cs.virginia.edu/~robins/Turing_Paper_1936.pdf target=_blank rel=&#34;noreferrer noopener&#34;&gt;his 1936 paper&lt;/a&gt; that no algorithm can answer this for all possible (P, I) pairs. The proof is a masterpiece of diagonal reasoning — a technique also used by Cantor to show that the real numbers are uncountable.&lt;pre class=brush:bash&gt;The Halting Problem — Proof by Contradiction&#xA;Assume a decider HALT(P, I) exists that always returns YES if P halts on I, and NO otherwise.&#xA;&#xA;Now construct a new program D(P):&#xA;&#xA;If HALT(P, P) returns YES → loop forever.&#xA;If HALT(P, P) returns NO → halt immediately.&#xA;&#xA;Ask: what does D(D) do? If D halts when run on itself, HALT(D, D) returns YES, so D loops forever — contradiction. If D loops forever, HALT(D, D) returns NO, so D halts — contradiction.&#xA;&#xA;Conclusion: HALT cannot exist. The assumption leads to a logical impossibility regardless of which branch we follow. QED.&#xA;&lt;/pre&gt;&lt;p&gt;The key move is &lt;strong&gt;self-reference&lt;/strong&gt;: we construct a program that takes another program as its own input, then feeds itself to itself. This diagonal argument creates a situation with no consistent answer, proving that no general decider can handle it.&lt;p&gt;Importantly, the proof says nothing about specific programs. We can absolutely determine that many individual programs halt — compilers do this all the time for simple loops. The undecidability is about the &lt;em&gt;general case&lt;/em&gt;: there is no algorithm that works for every possible program.&lt;h2 class=wp-block-heading&gt;3. Rice’s Theorem: The Full Generalisation&lt;/h2&gt;&lt;p&gt;If the Halting Problem feels like a narrow edge case, Rice’s Theorem removes that comfort entirely. Proved by &lt;a href=https://www.jstor.org/stable/1990888 target=_blank rel=&#34;noreferrer noopener&#34;&gt;H. Gordon Rice in 1953&lt;/a&gt;, it says something much broader:&lt;p&gt;&lt;strong&gt;Rice’s Theorem (informal):&lt;/strong&gt; For any non-trivial semantic property of programs — any question about what a program &lt;em&gt;does&lt;/em&gt; rather than what it &lt;em&gt;looks like&lt;/em&gt; — there is no general algorithm that decides whether an arbitrary program has that property.&lt;p&gt;A &lt;strong&gt;semantic property&lt;/strong&gt; is one that depends on the program’s behaviour, not its syntax. “Does this program ever output the number 42?” is semantic. “Does this program contain a for-loop?” is syntactic. Rice’s Theorem covers all semantic properties.&lt;p&gt;“Non-trivial” means the property is true of some programs and false of others. The theorem doesn’t cover the vacuous cases of “true of all programs” or “true of no programs.” Every interesting question you’d want to ask about program behaviour is non-trivial.&lt;p&gt;Together, the two results form a complete boundary. The Halting Problem is one instance of an undecidable semantic property. Rice’s Theorem tells you that &lt;em&gt;all&lt;/em&gt; semantic properties are undecidable — without exception.&lt;figure class=wp-block-table&gt;&lt;table class=has-fixed-layout&gt;&lt;thead&gt;&lt;tr&gt;&lt;th class=has-text-align-left data-align=left&gt;Question about a Program&lt;th class=has-text-align-left data-align=left&gt;Type&lt;th class=has-text-align-left data-align=left&gt;Decidable?&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;“Does it contain a try-catch block?”&lt;td&gt;Syntactic&lt;td&gt;Yes — parse the AST&lt;tr&gt;&lt;td&gt;“Does it always terminate?”&lt;td&gt;Semantic&lt;td&gt;No — Halting Problem&lt;tr&gt;&lt;td&gt;“Does it ever throw a NullPointerException?”&lt;td&gt;Semantic&lt;td&gt;No — Rice’s Theorem&lt;tr&gt;&lt;td&gt;“Does it produce the same output as program Q?”&lt;td&gt;Semantic&lt;td&gt;No — Rice’s Theorem&lt;tr&gt;&lt;td&gt;“Does it ever access an uninitialised variable?”&lt;td&gt;Semantic&lt;td&gt;No — Rice’s Theorem&lt;tr&gt;&lt;td&gt;“Is it free of all security vulnerabilities?”&lt;td&gt;Semantic&lt;td&gt;No — Rice’s Theorem&lt;tr&gt;&lt;td&gt;“Does it conform to this type signature?”&lt;td&gt;Semantic (restricted)&lt;td&gt;Sometimes — with language restrictions&lt;/table&gt;&lt;/figure&gt;&lt;p&gt;That last row is worth pausing on. Strongly typed functional languages like Haskell and languages with dependent types like &lt;a href=https://coq.inria.fr/ target=_blank rel=&#34;noreferrer noopener&#34;&gt;Coq&lt;/a&gt; or &lt;a href=https://leanprover.github.io/ target=_blank rel=&#34;noreferrer noopener&#34;&gt;Lean&lt;/a&gt; deliberately restrict what programs can express, specifically so that certain semantic properties become decidable. The price is expressiveness; the reward is provability. That trade-off is the entire philosophy behind type theory.&lt;div style=&#34;display:inline-block; margin: 15px 0;&#34;&gt;&lt;div id=adngin-JavaCodeGeeks_incontent_video-0 style=display:inline-block;&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;h2 class=wp-block-heading&gt;4. What This Means for Static Analysis Tools&lt;/h2&gt;&lt;p&gt;Static analysis is the practice of examining code without running it, in order to find bugs, enforce style, or verify correctness. Every major IDE ships with static analysis. So does every CI pipeline worth its salt. But given Rice’s Theorem, what are these tools actually doing?&lt;p&gt;The answer is that they operate by restricting the problem. Since the general case is undecidable, all sound static analysis tools approximate — and every approximation has one of two failure modes:&lt;figure class=wp-block-table&gt;&lt;table class=has-fixed-layout&gt;&lt;thead&gt;&lt;tr&gt;&lt;th class=has-text-align-left data-align=left&gt;Analysis Strategy&lt;th class=has-text-align-left data-align=left&gt;What It Does&lt;th class=has-text-align-left data-align=left&gt;False Positives?&lt;th class=has-text-align-left data-align=left&gt;False Negatives?&lt;th class=has-text-align-left data-align=left&gt;Example Tools&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Over-approximation (Sound)&lt;/strong&gt;&lt;td&gt;Reports all possible errors, including impossible ones&lt;td&gt;Yes&lt;td&gt;Never&lt;td&gt;Astree, Polyspace, Infer&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Under-approximation (Complete)&lt;/strong&gt;&lt;td&gt;Only reports confirmed real errors&lt;td&gt;Never&lt;td&gt;Yes&lt;td&gt;Fuzzing, bounded model checking&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Heuristic (Neither)&lt;/strong&gt;&lt;td&gt;Balances usability against both error types&lt;td&gt;Yes&lt;td&gt;Yes&lt;td&gt;ESLint, SonarQube, Semgrep, CodeQL&lt;/table&gt;&lt;/figure&gt;&lt;p&gt;Facebook’s &lt;a href=https://fbinfer.com/ target=_blank rel=&#34;noreferrer noopener&#34;&gt;Infer&lt;/a&gt;, for example, uses a technique called &lt;strong&gt;bi-abduction&lt;/strong&gt; derived from &lt;a href=https://en.wikipedia.org/wiki/Separation_logic target=_blank rel=&#34;noreferrer noopener&#34;&gt;separation logic&lt;/a&gt; to reason about heap memory. It is sound for the properties it checks — it won’t miss a null dereference it has committed to checking — but it produces false positives and doesn’t cover all possible properties. That’s not a bug in Infer; it’s the only mathematically coherent choice available.&lt;p&gt;Meanwhile, tools like ESLint operate with heuristics: pattern-matching on ASTs, dataflow through a bounded number of steps, known-bad code signatures. These are neither sound nor complete, but they are &lt;em&gt;useful&lt;/em&gt; — and usefulness, not completeness, is the engineering goal.&lt;p class=has-text-align-center&gt;&lt;strong&gt;Static Analysis Tools: Soundness vs. False Positive Rate&lt;/strong&gt;&lt;div class=wp-block-image&gt;&lt;figure class=&#34;aligncenter size-full&#34;&gt;&lt;a href=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_17-30-06.png&gt;&lt;img data-lazyloaded=1 src=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_17-30-06.png.webp fetchpriority=high decoding=async width=585 height=322 data-src=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_17-30-06.png.webp alt class=wp-image-142794 data-srcset=&#34;https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_17-30-06.png.webp 585w, https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_17-30-06-300x165.png.webp 300w&#34; data-sizes=&#34;(max-width: 585px) 100vw, 585px&#34;&gt;&lt;noscript&gt;&lt;img fetchpriority=high decoding=async width=585 height=322 src=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_17-30-06.png.webp alt class=wp-image-142794 srcset=&#34;https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_17-30-06.png.webp 585w, https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_17-30-06-300x165.png.webp 300w&#34; sizes=&#34;(max-width: 585px) 100vw, 585px&#34;&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;figcaption class=wp-element-caption&gt;Bubble size represents approximate deployment breadth. Tools closer to the origin are more practically useful day-to-day; tools toward the top-right sacrifice noise tolerance for guarantees.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;&lt;h2 class=wp-block-heading&gt;5. The AI Problem: Why Larger Models Don’t Change the Math&lt;/h2&gt;&lt;p&gt;In 2026, the most discussed static analysis tools are increasingly AI-powered: GitHub Copilot’s review suggestions, Amazon CodeGuru, Cursor’s inline diagnostics, and a growing constellation of LLM-backed linters. A natural question follows: do these tools escape the limits imposed by Rice’s Theorem?&lt;p&gt;The answer is no — and understanding why clarifies what AI code analysis can and cannot do.&lt;p&gt;Rice’s Theorem applies to &lt;strong&gt;any computational procedure&lt;/strong&gt;, not just traditional algorithms. A transformer model is a fixed function mapping inputs to outputs. Running it constitutes a computation. Therefore, if it claimed to decide an arbitrary semantic property of programs — with no false positives and no false negatives — it would constitute a decider for that property, which Rice’s Theorem proves cannot exist.&lt;p&gt;&lt;strong&gt;What this means practically:&lt;/strong&gt; An AI model that claimed to reliably detect all possible null dereferences in all possible programs would be claiming to solve an undecidable problem. Either it misses some (false negatives), flags non-issues (false positives), or both. This is not a current limitation of AI capability — it is a permanent mathematical boundary.&lt;p&gt;What AI &lt;em&gt;does&lt;/em&gt; change is the nature of the approximation. Traditional static analysis tools use handcrafted rules and formal abstractions. AI tools use patterns learned from billions of lines of code. Neither approach is complete, but they have very different failure profiles:&lt;figure class=wp-block-table&gt;&lt;table class=has-fixed-layout&gt;&lt;thead&gt;&lt;tr&gt;&lt;th class=has-text-align-left data-align=left&gt;Dimension&lt;th class=has-text-align-left data-align=left&gt;Traditional Static Analysis&lt;th class=has-text-align-left data-align=left&gt;AI-Powered Analysis (2026)&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Theoretical basis&lt;/strong&gt;&lt;td&gt;Formal semantics, abstract interpretation, dataflow&lt;td&gt;Statistical patterns from training data&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Error type bias&lt;/strong&gt;&lt;td&gt;Predictable (over- or under-approximation by design)&lt;td&gt;Unpredictable — depends on training distribution&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Novel bug classes&lt;/strong&gt;&lt;td&gt;Misses bugs not in its rule set&lt;td&gt;May generalise; may hallucinate new patterns&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Auditability&lt;/strong&gt;&lt;td&gt;High — rules are inspectable&lt;td&gt;Low — weights are not human-readable&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Rice’s Theorem status&lt;/strong&gt;&lt;td&gt;Subject to it; acknowledged explicitly&lt;td&gt;Subject to it; rarely acknowledged&lt;/table&gt;&lt;/figure&gt;&lt;p&gt;The practical implication is that AI analysis tools are best understood as &lt;strong&gt;extremely sophisticated heuristics&lt;/strong&gt;. They can catch bugs that pattern-matching rules miss. They can suggest fixes with context sensitivity that no rule system achieves. But they cannot, even in principle, achieve completeness. Every benchmark that evaluates them — including &lt;a href=https://swebench.com/ target=_blank rel=&#34;noreferrer noopener&#34;&gt;SWE-bench&lt;/a&gt; and emerging security benchmarks — captures an approximation of capability, not a proof of coverage.&lt;p&gt;Furthermore, AI models introduce a subtly different failure mode: &lt;strong&gt;confident incorrectness&lt;/strong&gt;. A formal sound analyser that flags a false positive at least knows it’s making a conservative approximation. An LLM that hallucinates a security vulnerability explanation may do so with high fluency and apparent certainty. For safety-critical applications, this distinction matters enormously.&lt;h2 class=wp-block-heading&gt;6. Formal Verification: Escaping Undecidability Through Proof&lt;/h2&gt;&lt;p&gt;If undecidability prevents algorithms from automatically deciding semantic properties, how do formal verification tools like &lt;a href=https://coq.inria.fr/ target=_blank rel=&#34;noreferrer noopener&#34;&gt;Coq&lt;/a&gt;, &lt;a href=https://leanprover.github.io/ target=_blank rel=&#34;noreferrer noopener&#34;&gt;Lean&lt;/a&gt;, and &lt;a href=https://isabelle.in.tum.de/ target=_blank rel=&#34;noreferrer noopener&#34;&gt;Isabelle&lt;/a&gt; actually work? The answer is that they shift the burden — they don’t decide properties automatically, they help humans construct machine-checked &lt;em&gt;proofs&lt;/em&gt; of those properties.&lt;p&gt;The key distinction is between &lt;strong&gt;verification&lt;/strong&gt; and &lt;strong&gt;decision&lt;/strong&gt;. Deciding whether a property holds requires an algorithm that works on any program. Verifying a specific property of a specific program, with a human-written proof, is a different task — one that can succeed even for undecidable properties, as long as a proof exists and someone writes it.&lt;p&gt;&lt;strong&gt;Real-world example:&lt;/strong&gt; The &lt;a href=https://sel4.systems/ target=_blank rel=&#34;noreferrer noopener&#34;&gt;seL4 microkernel&lt;/a&gt; is a formally verified OS kernel whose correctness — including memory safety, absence of deadlocks, and adherence to its security policy — has been mechanically checked in Isabelle. The verification took approximately 11 person-years of proof engineering. Undecidability didn’t prevent this; it just meant a human had to specify and prove the invariants, rather than a tool discovering them automatically.&lt;p&gt;This is precisely why formal verification requires human-specified invariants, loop contracts, and pre/post conditions. These annotations are the human’s contribution to the proof. Without them, the tool has no way to know what you intend the program to do — and by Rice’s Theorem, it cannot infer that from the code alone.&lt;p class=has-text-align-center&gt;&lt;strong&gt;Assurance Level vs. Engineering Effort Across Verification Approaches&lt;/strong&gt;&lt;div class=wp-block-image&gt;&lt;figure class=&#34;aligncenter size-full&#34;&gt;&lt;a href=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_17-31-09.png&gt;&lt;img data-lazyloaded=1 src=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_17-31-09.png.webp decoding=async width=582 height=286 data-src=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_17-31-09.png.webp alt class=wp-image-142795 data-srcset=&#34;https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_17-31-09.png.webp 582w, https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_17-31-09-300x147.png.webp 300w&#34; data-sizes=&#34;(max-width: 582px) 100vw, 582px&#34;&gt;&lt;noscript&gt;&lt;img decoding=async width=582 height=286 src=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_17-31-09.png.webp alt class=wp-image-142795 srcset=&#34;https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_17-31-09.png.webp 582w, https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_17-31-09-300x147.png.webp 300w&#34; sizes=&#34;(max-width: 582px) 100vw, 582px&#34;&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;figcaption class=wp-element-caption&gt;Effort is normalised relative to writing the program itself. Assurance reflects the theoretical coverage guarantee, not bug-finding rate in practice.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;&lt;h2 class=wp-block-heading&gt;7. Code Coverage and the Completeness Illusion&lt;/h2&gt;&lt;p&gt;One final implication is worth spelling out directly, because it catches even experienced engineers off guard. &lt;strong&gt;100% code coverage does not mean your test suite covers all program behaviours.&lt;/strong&gt;&lt;p&gt;Code coverage measures whether a line or branch was &lt;em&gt;executed&lt;/em&gt; during a test. It says nothing about whether the execution explored all reachable paths, encountered all possible inputs, or triggered all observable behaviours. A function can have 100% branch coverage and still behave incorrectly on inputs your tests never considered.&lt;p&gt;Rice’s Theorem provides the theoretical underpinning for why this gap is irreducible. Deciding whether a test suite covers all semantically distinct behaviours of a program is itself an undecidable problem. No coverage tool, however sophisticated, can close that gap in general — which is exactly why coverage is a proxy metric, not a correctness certificate.&lt;p&gt;&lt;strong&gt;Practical takeaway:&lt;/strong&gt; Use coverage as a floor, not a ceiling. 80% line coverage is a meaningful minimum signal. But “we have 100% branch coverage” should not be read as “we have verified correctness.” The two claims belong to entirely different theoretical categories.&lt;h3 class=wp-block-heading&gt;Demonstrating the limits: a halting program a simple checker gets wrong&lt;/h3&gt;&lt;p&gt;The following Python snippet is self-contained, requires Python 3.x, and illustrates why even straightforward-looking termination is hard to determine statically. It implements the &lt;a href=https://en.wikipedia.org/wiki/Collatz_conjecture target=_blank rel=&#34;noreferrer noopener&#34;&gt;Collatz sequence&lt;/a&gt; — a computation no one has yet proven always halts, despite being expressible in four lines of code:&lt;pre class=brush:py&gt;# Python 3.x required — no external packages needed&#xA;# Run with: python collatz.py&#xA;&#xA;def collatz(n):&#xA;    &amp;#34;&amp;#34;&amp;#34;&#xA;    Collatz conjecture: for any positive integer n,&#xA;    this sequence is conjectured to always reach 1.&#xA;    No general proof exists. A static analyser cannot&#xA;    decide termination for this function — neither can&#xA;    any human, as of 2026.&#xA;    &amp;#34;&amp;#34;&amp;#34;&#xA;    steps = 0&#xA;    while n != 1:&#xA;        n = n // 2 if n % 2 == 0 else 3 * n + 1&#xA;        steps += 1&#xA;    return steps&#xA;&#xA;# These all terminate quickly&#xA;for start in [6, 27, 871]:&#xA;    print(f&amp;#34;collatz({start}) → {collatz(start)} steps&amp;#34;)&#xA;&#xA;# Output:&#xA;# collatz(6)   →  8 steps&#xA;# collatz(27)  →  111 steps&#xA;# collatz(871) →  178 steps&#xA;&lt;/pre&gt;&lt;p&gt;No static analysis tool, no AI model, and no existing mathematical proof can tell you that &lt;code&gt;collatz(n)&lt;/code&gt; terminates for every positive integer &lt;code&gt;n&lt;/code&gt;. This is not a gap in tooling maturity — it is an open problem in mathematics that Rice’s Theorem tells us cannot, in general, be mechanically decided.&lt;h2 class=wp-block-heading&gt;8. What We’ve Learned&lt;/h2&gt;&lt;ul class=wp-block-list&gt;&lt;li&gt;&lt;strong&gt;The Halting Problem&lt;/strong&gt; proves — by contradiction, via Turing’s diagonal argument — that no algorithm can decide whether an arbitrary program halts for all possible inputs. This is a permanent mathematical boundary, not a temporary engineering gap.&lt;li&gt;&lt;strong&gt;Rice’s Theorem&lt;/strong&gt; generalises this completely: every non-trivial semantic property of programs — anything about what a program &lt;em&gt;does&lt;/em&gt; — is undecidable. Security, termination, output correctness, null safety: all of them, without exception.&lt;li&gt;&lt;strong&gt;Static analysis tools&lt;/strong&gt; escape undecidability by restricting the problem: sound tools over-approximate (false positives, no false negatives), complete tools under-approximate (false negatives, no false positives), and heuristic tools like ESLint and SonarQube trade formal guarantees for practical usefulness.&lt;li&gt;&lt;strong&gt;AI-powered code analysis&lt;/strong&gt; is subject to exactly the same theoretical limits. Larger models change the shape of the approximation — and can be dramatically better heuristics — but cannot achieve completeness for any non-trivial semantic property.&lt;li&gt;&lt;strong&gt;Formal verification&lt;/strong&gt; (Coq, Lean, Isabelle, seL4) sidesteps undecidability by having humans write proofs rather than asking tools to discover them automatically. Human-specified invariants are not a workaround — they are a necessary contribution to the proof.&lt;li&gt;&lt;strong&gt;Code coverage&lt;/strong&gt; is a proxy for testing effort, not a correctness certificate. 100% coverage cannot, in principle, guarantee all semantic behaviours are tested — Rice’s Theorem explains precisely why.&lt;/ul&gt;&lt;style&gt;.lepopup-progress-60 div.lepopup-progress-t1&gt;div{background-color:#e0e0e0;}.lepopup-progress-60 div.lepopup-progress-t1&gt;div&gt;div{background-color:#bd4070;}.lepopup-progress-60 div.lepopup-progress-t1&gt;div&gt;div{color:#ffffff;}.lepopup-progress-60 div.lepopup-progress-t1&gt;label{color:#444444;}.lepopup-form-60, .lepopup-form-60 *, .lepopup-progress-60 {font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-signature-box span i{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#555555;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-signature-box,.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;text&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;email&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;password&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input select,.lepopup-form-60 .lepopup-element div.lepopup-input select option,.lepopup-form-60 .lepopup-element div.lepopup-input textarea{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#555555;font-style:normal;text-decoration:none;text-align:left;background-color:rgba(255, 255, 255, 0.7);background-image:none;border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow: inset 0px 0px 15px -7px #000000;}.lepopup-form-60 .lepopup-element div.lepopup-input ::placeholder{color:#555555; opacity: 0.9;} .lepopup-form-60 .lepopup-element div.lepopup-input ::-ms-input-placeholder{color:#555555; opacity: 0.9;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect::-webkit-scrollbar-thumb{background-color:#cccccc;}.lepopup-form-60 .lepopup-element div.lepopup-input&gt;i.lepopup-icon-left, .lepopup-form-60 .lepopup-element div.lepopup-input&gt;i.lepopup-icon-right{font-size:20px;color:#444444;border-radius:0px;}.lepopup-form-60 .lepopup-element .lepopup-button,.lepopup-form-60 .lepopup-element .lepopup-button:visited{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#ffffff;font-weight:700;font-style:normal;text-decoration:none;text-align:center;background-color:#326693;background-image:none;border-width:1px;border-style:solid;border-color:#326693;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element div.lepopup-input .lepopup-imageselect+label{border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element div.lepopup-input .lepopup-imageselect+label span.lepopup-imageselect-label{font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl:checked+label:after{background-color:rgba(255, 255, 255, 0.7);}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-classic+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-fa-check+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-square+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl+label{background-color:rgba(255, 255, 255, 0.7);border-color:#cccccc;color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-square:checked+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl:checked+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-classic+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-fa-check+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-dot+label{background-color:rgba(255, 255, 255, 0.7);border-color:#cccccc;color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-dot:checked+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect&gt;input[type=&#39;checkbox&#39;]+label:hover{background-color:#bd4070;color:#ffffff;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect&gt;input[type=&#39;checkbox&#39;]:checked+label{background-color:#a93a65;color:#ffffff;}.lepopup-form-60 .lepopup-element input[type=&#39;checkbox&#39;].lepopup-tile+label, .lepopup-form-60 .lepopup-element input[type=&#39;radio&#39;].lepopup-tile+label {font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:center;background-color:#ffffff;background-image:none;border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element-error{font-size:15px;color:#ffffff;font-style:normal;text-decoration:none;text-align:left;background-color:#d9534f;background-image:none;}.lepopup-form-60 .lepopup-element-2 {background-color:rgba(226, 236, 250, 1);background-image:none;border-width:1px;border-style:solid;border-color:rgba(216, 216, 216, 1);border-radius:3px;box-shadow: 1px 1px 15px -6px #d7e1eb;}.lepopup-form-60 .lepopup-element-3 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:26px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-3 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:26px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-3 .lepopup-element-html-content {min-height:73px;}.lepopup-form-60 .lepopup-element-4 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:19px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-4 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:19px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-4 .lepopup-element-html-content {min-height:23px;}.lepopup-form-60 .lepopup-element-5 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-5 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-5 .lepopup-element-html-content {min-height:24px;}.lepopup-form-60 .lepopup-element-6 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-6 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-6 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-7 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-7 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-7 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-8 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-8 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-8 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-9 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-9 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-9 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-10 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-10 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-10 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-11 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-11 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-11 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-12 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-12 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-12 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-13 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-13 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-13 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-14 div.lepopup-input .lepopup-icon-left, .lepopup-form-60 .lepopup-element-14 div.lepopup-input .lepopup-icon-right {line-height:36px;}.lepopup-form-60 .lepopup-element-15 div.lepopup-input{height:auto;line-height:1;}.lepopup-form-60 .lepopup-element-16 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:14px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-16 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:14px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-16 .lepopup-element-html-content {min-height:5px;}.lepopup-form-60 .lepopup-element-19 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#333333;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-19 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#333333;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-19 .lepopup-element-html-content {min-height:363px;}.lepopup-form-60 .lepopup-element-0 * {font-size:15px;color:#ffffff;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-0 {font-size:15px;color:#ffffff;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:#5cb85c;background-image:none;border-width:0px;border-style:solid;border-color:#ccc;border-radius:5px;box-shadow: 1px 1px 15px -6px #000000;padding-top:40px;padding-right:40px;padding-bottom:40px;padding-left:40px;}.lepopup-form-60 .lepopup-element-0 .lepopup-element-html-content {min-height:160px;}&lt;/style&gt;&lt;div class=lepopup-inline style=&#34;margin: 0 auto;&#34;&gt;&lt;div class=&#34;lepopup-form lepopup-form-60 lepopup-form-1dYm2fDEl2h3BmfU lepopup-form-icon-inside lepopup-form-position-middle-right&#34; data-session=0 data-id=1dYm2fDEl2h3BmfU data-form-id=60 data-slug=7lQM6oyWL5bTm5lw data-title=&#34;Under the Post Inline&#34; data-page=1 data-xd=off data-width=820 data-height=430 data-position=middle-right data-esc=off data-enter=on data-disable-scrollbar=off style=display:none;width:820px;height:430px; onclick=event.stopPropagation();&gt;&lt;div class=lepopup-form-inner style=width:820px;height:430px;&gt;&lt;div class=&#34;lepopup-element lepopup-element-2 lepopup-element-rectangle&#34; data-type=rectangle data-top=0 data-left=0 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:501;top:0px;left:0px;width:820px;height:430px;&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-3 lepopup-element-html&#34; data-type=html data-top=7 data-left=10 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:502;top:7px;left:10px;width:797px;height:73px;&gt;&lt;div class=lepopup-element-html-content&gt;Do you want to know how to develop your skillset to become a &lt;span style=&#34;color: #CAB43D; text-shadow: 1px 1px #835D5D;&#34;&gt;Java Rockstar?&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-4 lepopup-element-html&#34; data-type=html data-top=83 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:503;top:83px;left:308px;width:473px;height:23px;&gt;&lt;div class=lepopup-element-html-content&gt;Subscribe to our newsletter to start Rocking &lt;span style=&#34;text-decoration: underline;&#34;&gt;right now!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-5 lepopup-element-html&#34; data-type=html data-top=107 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:504;top:107px;left:308px;width:473px;height:24px;&gt;&lt;div class=lepopup-element-html-content&gt;To get you started we give you our best selling eBooks for &lt;span style=&#34;color:#e01404; text-shadow: 1px 1px #C99924; font-size: 15px;&#34;&gt;FREE!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-6 lepopup-element-html&#34; data-type=html data-top=136 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:505;top:136px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;1.&lt;/span&gt; JPA Mini Book&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-7 lepopup-element-html&#34; data-type=html data-top=156 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:506;top:156px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;2.&lt;/span&gt; JVM Troubleshooting Guide&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-8 lepopup-element-html&#34; data-type=html data-top=176 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:507;top:176px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;3.&lt;/span&gt; JUnit Tutorial for Unit Testing&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-9 lepopup-element-html&#34; data-type=html data-top=196 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:508;top:196px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;4.&lt;/span&gt; Java Annotations Tutorial&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-10 lepopup-element-html&#34; data-type=html data-top=216 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:509;top:216px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;5.&lt;/span&gt; Java Interview Questions&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-11 lepopup-element-html&#34; data-type=html data-top=236 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:510;top:236px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;6.&lt;/span&gt; Spring Interview Questions&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-12 lepopup-element-html&#34; data-type=html data-top=256 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:511;top:256px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;7.&lt;/span&gt; Android UI Design&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-13 lepopup-element-html&#34; data-type=html data-top=282 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:512;top:282px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;and many more ....&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-14&#34; data-type=email data-deps data-id=14 data-top=305 data-left=308 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:513;top:305px;left:308px;width:473px;height:36px;&gt;&lt;div class=lepopup-input&gt;&lt;input type=email name=lepopup-14 class=lepopup-ta-left placeholder=&#34;Enter your e-mail...&#34; autocomplete=email data-default aria-label=&#34;Email Field&#34; oninput=lepopup_input_changed(this); onfocus=lepopup_input_error_hide(this);&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-15&#34; data-type=checkbox data-deps data-id=15 data-top=344 data-left=308 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:514;top:344px;left:308px;width:160px;&gt;&lt;div class=&#34;lepopup-input lepopup-cr-layout-1 lepopup-cr-layout-left&#34;&gt;&lt;div class=&#34;lepopup-cr-container lepopup-cr-container-medium lepopup-cr-container-left&#34;&gt;&lt;div class=lepopup-cr-box&gt;&lt;input class=&#34;lepopup-checkbox lepopup-checkbox-classic lepopup-checkbox-medium&#34; type=checkbox name=lepopup-15[] id=lepopup-checkbox-Bm9yxFY6oAVOIo9K-14-0 value=on data-default=off onchange=lepopup_input_changed(this);&gt;&lt;label for=lepopup-checkbox-Bm9yxFY6oAVOIo9K-14-0 onclick=lepopup_input_error_hide(this);&gt;&lt;/label&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-cr-label lepopup-ta-left&#34;&gt;&lt;label for=lepopup-checkbox-Bm9yxFY6oAVOIo9K-14-0 onclick=lepopup_input_error_hide(this);&gt;&lt;/label&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-16 lepopup-element-html&#34; data-type=html data-top=344 data-left=338 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:515;top:344px;left:338px;width:350px;height:5px;&gt;&lt;div class=lepopup-element-html-content&gt;I agree to the &lt;a href=https://www.javacodegeeks.com/about/terms-of-use target=_blank&gt;Terms&lt;/a&gt; and &lt;a href=https://www.javacodegeeks.com/about/privacy-policy target=_blank&gt;Privacy Policy&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-17&#34; data-type=button data-top=372 data-left=308 data-animation-in=bounceIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:516;top:372px;left:308px;width:85px;height:37px;&gt;&lt;a class=&#34;lepopup-button lepopup-button-zoom-out&#34; href=https://www.javacodegeeks.com/feed/ onclick=&#34;return lepopup_submit(this);&#34; data-label=&#34;Sign up&#34; data-loading=Loading...&gt;&lt;span&gt;Sign up&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-19 lepopup-element-html&#34; data-type=html data-top=67 data-left=-15 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:518;top:67px;left:-15px;width:320px;height:363px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;img data-lazyloaded=1 src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png.webp decoding=async data-src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png.webp alt width=320 height=363&gt;&lt;noscript&gt;&lt;img decoding=async src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png.webp alt width=320 height=363&gt;&lt;/noscript&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-form lepopup-form-60 lepopup-form-1dYm2fDEl2h3BmfU lepopup-form-icon-inside lepopup-form-position-middle-right&#34; data-session=0 data-id=1dYm2fDEl2h3BmfU data-form-id=60 data-slug=7lQM6oyWL5bTm5lw data-title=&#34;Under the Post Inline&#34; data-page=confirmation data-xd=off data-width=420 data-height=320 data-position=middle-right data-esc=off data-enter=on data-disable-scrollbar=off style=display:none;width:420px;height:320px; onclick=event.stopPropagation();&gt;&lt;div class=lepopup-form-inner style=width:420px;height:320px;&gt;&lt;div class=&#34;lepopup-element lepopup-element-0 lepopup-element-html&#34; data-type=html data-top=80 data-left=70 data-animation-in=bounceInDown data-animation-out=fadeOutUp style=animation-duration:1000ms;animation-delay:0ms;z-index:500;top:80px;left:70px;width:280px;height:160px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;h4 style=&#34;text-align: center; font-size: 18px; font-weight: bold;&#34;&gt;Thank you!&lt;/h4&gt;&lt;p style=&#34;text-align: center;&#34;&gt;We will contact you soon.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;input type=hidden id=lepopup-logic-1dYm2fDEl2h3BmfU value=[]&gt;&lt;/div&gt;&lt;div class=&#34;post-bottom-meta post-bottom-tags post-tags-classic&#34;&gt;&lt;div class=post-bottom-meta-title&gt;&lt;span class=tie-icon-tags aria-hidden=true&gt;&lt;/span&gt;Tags&lt;/div&gt;&lt;span class=tagcloud&gt;&lt;a href=https://www.javacodegeeks.com/tag/formal-verification rel=tag&gt;Formal Verification&lt;/a&gt; &lt;a href=https://www.javacodegeeks.com/tag/static-analysis rel=tag&gt;Static Analysis&lt;/a&gt; &lt;a href=https://www.javacodegeeks.com/tag/undecidability-theory rel=tag&gt;Undecidability Theory&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=post-extra-info&gt;&lt;div class=theiaStickySidebar&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=clearfix&gt;&lt;/div&gt;</description>
      <author>Eleftheria Drosopoulou</author>
      <guid>https://www.javacodegeeks.com/2026/04/the-halting-problem-rices-theoremand-the-walls-they-build.html</guid>
      <pubDate>Fri, 17 Apr 2026 14:28:52 +0000</pubDate>
    </item>
    <item>
      <title>Jackson deserialization using a multi-parameter constructor</title>
      <link>https://www.javacodegeeks.com/jackson-deserialization-using-a-multi-parameter-constructor.html</link>
      <description>&lt;header class=entry-header-outer&gt;&lt;nav id=breadcrumb&gt;&lt;a href=https://www.javacodegeeks.com/&gt;&lt;span class=tie-icon-home aria-hidden=true&gt;&lt;/span&gt;Home&lt;/a&gt;&lt;em class=delimiter&gt;»&lt;/em&gt;&lt;a href=https://www.javacodegeeks.com/category/java&gt;Java&lt;/a&gt;&lt;em class=delimiter&gt;»&lt;/em&gt;&lt;a href=https://www.javacodegeeks.com/category/java/core-java&gt;Core Java&lt;/a&gt;&lt;em class=delimiter&gt;»&lt;/em&gt;&lt;span class=current&gt;Jackson deserialization using a multi-parameter constructor&lt;/span&gt;&lt;/nav&gt;&lt;div class=entry-header&gt;&lt;span class=post-cat-wrap&gt;&lt;a class=&#34;post-cat tie-cat-7&#34; href=https://www.javacodegeeks.com/category/java/core-java&gt;Core Java&lt;/a&gt;&lt;/span&gt;&lt;h1 class=&#34;post-title entry-title&#34;&gt;Jackson deserialization using a multi-parameter constructor&lt;/h1&gt;&lt;/div&gt;&lt;/header&gt;&lt;div class=&#34;entry-content entry clearfix&#34;&gt;&lt;div class=&#34;stream-item stream-item-above-post-content&#34;&gt;&lt;div class=stream-item-size&gt;&lt;div id=adngin-in-post-0 style=&#34;float:left; margin-right:20px; margin-bottom:10px; width:300px; height:274px;&#34;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;JSON deserialization is a common requirement in modern applications that interact with APIs and external systems. Handling different object creation patterns efficiently is key to building robust and maintainable Java applications. Let us delve into understanding Jackson deserialization with a multi-parameter constructor.&lt;h2&gt;&lt;a name=section-1&gt;&lt;/a&gt;1. Introduction to Jackson Deserialization&lt;/h2&gt;&lt;p&gt;Jackson is one of the most widely used libraries in Java for processing JSON data. It provides powerful features for converting JSON into Java objects (deserialization) and Java objects into JSON (serialization). By default, Jackson relies on a no-argument constructor and setter methods to populate object fields during deserialization. However, in modern Java applications, developers often prefer immutable objects, constructor-based initialization, and concise data models such as records. In such cases, the default approach is not sufficient. Jackson addresses this limitation by supporting annotations like &lt;code&gt;@JsonCreator&lt;/code&gt; and &lt;code&gt;@JsonProperty&lt;/code&gt;, which allow deserialization using multi-parameter constructors.&lt;h3&gt;1.1 Setup and Dependency Configuration&lt;/h3&gt;&lt;p&gt;To get started, you need to include the Jackson Databind dependency in your project. This module provides the &lt;code&gt;ObjectMapper&lt;/code&gt; class, which is the core API used for reading and writing JSON. If you are using Maven, add the following dependency to your &lt;code&gt;pom.xml&lt;/code&gt;:&lt;pre class=&#34;brush:xml; wrap-lines:false;&#34;&gt;&amp;lt;dependency&amp;gt;&#xA;    &amp;lt;groupId&amp;gt;com.fasterxml.jackson.core&amp;lt;/groupId&amp;gt;&#xA;    &amp;lt;artifactId&amp;gt;jackson-databind&amp;lt;/artifactId&amp;gt;&#xA;    &amp;lt;version&amp;gt;stable__latest__version&amp;lt;/version&amp;gt;&#xA;&amp;lt;/dependency&amp;gt;&#xA;&lt;/pre&gt;&lt;p&gt;Make sure to replace &lt;code&gt;stable__latest__version&lt;/code&gt; with the latest stable version available in Maven Central. Once added, your project will have access to all core Jackson features required for JSON deserialization.&lt;h2&gt;&lt;a name=section-2&gt;&lt;/a&gt;2. Complete Code Example&lt;/h2&gt;&lt;p&gt;This example demonstrates multiple Jackson deserialization approaches in a single program: default constructor, &lt;code&gt;@JsonCreator&lt;/code&gt; with a multi-parameter constructor, Java records, and enum handling.&lt;pre class=&#34;brush:java; wrap-lines:false;&#34;&gt;// Main.java&#xA;&#xA;import com.fasterxml.jackson.annotation.JsonCreator;&#xA;import com.fasterxml.jackson.annotation.JsonProperty;&#xA;import com.fasterxml.jackson.databind.ObjectMapper;&#xA;&#xA;// Enum with custom deserialization&#xA;enum Status {&#xA;    ACTIVE, INACTIVE;&#xA;&#xA;    @JsonCreator&#xA;    public static Status fromValue(String value) {&#xA;        return Status.valueOf(value.toUpperCase());&#xA;    }&#xA;}&#xA;&#xA;// 1. Default deserialization (uses constructor + setters)&#xA;class DefaultUser {&#xA;    private String name;&#xA;    private int age;&#xA;    private Status status;&#xA;&#xA;    public DefaultUser() {} // required default constructor&#xA;&#xA;    public String getName() { return name; }&#xA;    public void setName(String name) { this.name = name; }&#xA;&#xA;    public int getAge() { return age; }&#xA;    public void setAge(int age) { this.age = age; }&#xA;&#xA;    public Status getStatus() { return status; }&#xA;    public void setStatus(Status status) { this.status = status; }&#xA;}&#xA;&#xA;// 2. @JsonCreator with multi-parameter constructor (immutable)&#xA;class ImmutableUser {&#xA;    private final String name;&#xA;    private final int age;&#xA;&#xA;    @JsonCreator&#xA;    public ImmutableUser(@JsonProperty(&amp;#34;name&amp;#34;) String name,&#xA;                         @JsonProperty(&amp;#34;age&amp;#34;) int age) {&#xA;        this.name = name;&#xA;        this.age = age;&#xA;    }&#xA;&#xA;    public String getName() { return name; }&#xA;    public int getAge() { return age; }&#xA;}&#xA;&#xA;// 3. Record (Java 14+)&#xA;record RecordUser(String name, int age) {}&#xA;&#xA;public class Main {&#xA;    public static void main(String[] args) throws Exception {&#xA;&#xA;        ObjectMapper mapper = new ObjectMapper();&#xA;&#xA;        // Default deserialization&#xA;        String json1 = &amp;#34;{ \&amp;#34;name\&amp;#34;: \&amp;#34;John\&amp;#34;, \&amp;#34;age\&amp;#34;: 30, \&amp;#34;status\&amp;#34;: \&amp;#34;active\&amp;#34; }&amp;#34;;&#xA;        DefaultUser user1 = mapper.readValue(json1, DefaultUser.class);&#xA;        System.out.println(&amp;#34;DefaultUser: &amp;#34; + user1.getName() + &amp;#34; - &amp;#34; + user1.getAge() + &amp;#34; - &amp;#34; + user1.getStatus());&#xA;&#xA;        // @JsonCreator deserialization&#xA;        String json2 = &amp;#34;{ \&amp;#34;name\&amp;#34;: \&amp;#34;Alice\&amp;#34;, \&amp;#34;age\&amp;#34;: 25 }&amp;#34;;&#xA;        ImmutableUser user2 = mapper.readValue(json2, ImmutableUser.class);&#xA;        System.out.println(&amp;#34;ImmutableUser: &amp;#34; + user2.getName() + &amp;#34; - &amp;#34; + user2.getAge());&#xA;&#xA;        // Record deserialization&#xA;        String json3 = &amp;#34;{ \&amp;#34;name\&amp;#34;: \&amp;#34;Bob\&amp;#34;, \&amp;#34;age\&amp;#34;: 40 }&amp;#34;;&#xA;        RecordUser user3 = mapper.readValue(json3, RecordUser.class);&#xA;        System.out.println(&amp;#34;RecordUser: &amp;#34; + user3.name() + &amp;#34; - &amp;#34; + user3.age());&#xA;    }&#xA;}&#xA;&lt;/pre&gt;&lt;h3&gt;2.1 Code Explanation&lt;/h3&gt;&lt;p&gt;This program demonstrates multiple ways to perform JSON deserialization using Jackson in Java, including default deserialization, constructor-based deserialization with &lt;code&gt;@JsonCreator&lt;/code&gt;, record support, and custom enum handling. The &lt;code&gt;ObjectMapper&lt;/code&gt; class is the core component responsible for converting JSON strings into Java objects.&lt;div style=&#34;display:inline-block; margin: 15px 0;&#34;&gt;&lt;div id=adngin-JavaCodeGeeks_incontent_video-0 style=display:inline-block;&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;ul&gt;&lt;li&gt;The &lt;code&gt;Status&lt;/code&gt; enum defines two constants: &lt;code&gt;ACTIVE&lt;/code&gt; and &lt;code&gt;INACTIVE&lt;/code&gt;. It uses a custom &lt;code&gt;@JsonCreator&lt;/code&gt; method named &lt;code&gt;fromValue&lt;/code&gt;, which allows Jackson to convert incoming JSON values into enum constants. The method transforms the input string to uppercase before mapping it, enabling case-insensitive deserialization (for example, “active” becomes &lt;code&gt;ACTIVE&lt;/code&gt;).&lt;li&gt;The &lt;code&gt;DefaultUser&lt;/code&gt; class demonstrates standard Jackson deserialization. It contains private fields along with a no-argument constructor and public getter and setter methods. During deserialization, Jackson first creates an instance using the default constructor and then populates the fields using the setter methods. This is the most common and straightforward approach but requires mutable objects.&lt;li&gt;The &lt;code&gt;ImmutableUser&lt;/code&gt; class illustrates deserialization using a multi-parameter constructor. Since the fields are marked as &lt;code&gt;final&lt;/code&gt; and there are no setters, Jackson cannot use the default approach. Instead, the constructor is annotated with &lt;code&gt;@JsonCreator&lt;/code&gt;, and each parameter is annotated with &lt;code&gt;@JsonProperty&lt;/code&gt; to map JSON fields to constructor arguments. This approach is ideal for creating immutable objects.&lt;li&gt;The &lt;code&gt;RecordUser&lt;/code&gt; is a Java record, which provides a concise way to define immutable data carriers. Records automatically generate a canonical constructor, accessor methods, and other utility methods. Jackson natively supports records and uses the generated constructor for deserialization without requiring additional annotations.&lt;li&gt;In the &lt;code&gt;Main&lt;/code&gt; class, an &lt;code&gt;ObjectMapper&lt;/code&gt; instance is created to handle the JSON processing. Three JSON strings are defined and deserialized into their respective classes. The first JSON string is mapped to &lt;code&gt;DefaultUser&lt;/code&gt;, demonstrating setter-based population. The second is mapped to &lt;code&gt;ImmutableUser&lt;/code&gt;, showcasing constructor-based deserialization. The third is mapped to &lt;code&gt;RecordUser&lt;/code&gt;, highlighting record support. Finally, the program prints the deserialized values to verify that each approach works as expected.&lt;/ul&gt;&lt;h3&gt;2.2 Code Output&lt;/h3&gt;&lt;pre class=&#34;brush:plain; wrap-lines:false;&#34;&gt;DefaultUser: John - 30 - ACTIVE&#xA;ImmutableUser: Alice - 25&#xA;RecordUser: Bob - 40&#xA;&lt;/pre&gt;&lt;p&gt;The output shows the successful deserialization of three different JSON inputs into their respective Java representations using different Jackson techniques. Each line corresponds to a specific deserialization strategy used in the program.&lt;ul&gt;&lt;li&gt;In the first case, the JSON string containing &lt;code&gt;name&lt;/code&gt;, &lt;code&gt;age&lt;/code&gt;, and &lt;code&gt;status&lt;/code&gt; is deserialized into the &lt;code&gt;DefaultUser&lt;/code&gt; class. Jackson invokes the default constructor and then sets each field using the setter methods. The &lt;code&gt;status&lt;/code&gt; value “active” is passed to the enum’s &lt;code&gt;@JsonCreator&lt;/code&gt; method, which converts it to uppercase and maps it to &lt;code&gt;ACTIVE&lt;/code&gt;.&lt;li&gt;In the second case, the JSON is deserialized into the &lt;code&gt;ImmutableUser&lt;/code&gt; class. Since the class does not have a default constructor or setters, Jackson uses the constructor annotated with &lt;code&gt;@JsonCreator&lt;/code&gt;. The &lt;code&gt;@JsonProperty&lt;/code&gt; annotations ensure that the JSON fields correctly map to the constructor parameters, allowing the object to be created with initialized final fields.&lt;li&gt;In the third case, the JSON is deserialized into the &lt;code&gt;RecordUser&lt;/code&gt; record. Jackson automatically detects the record structure and uses its canonical constructor to populate the fields. No additional annotations or configuration are required, making this approach concise and modern.&lt;/ul&gt;&lt;p&gt;Overall, the output confirms that Jackson can handle mutable objects, immutable classes with multi-parameter constructors, and Java records seamlessly, while also supporting customized enum deserialization logic.&lt;h2&gt;&lt;a name=section-3&gt;&lt;/a&gt;3. Conclusion&lt;/h2&gt;&lt;p&gt;Jackson provides flexible ways to deserialize JSON into Java objects, even when using parameterized constructors. While default deserialization works for mutable objects, &lt;code&gt;@JsonCreator&lt;/code&gt; is essential for immutable designs. Modern Java features like records further simplify this process, and enums can be customized for robust parsing. Choosing the right approach depends on your object design and application requirements.&lt;/p&gt;&lt;style&gt;.lepopup-progress-60 div.lepopup-progress-t1&gt;div{background-color:#e0e0e0;}.lepopup-progress-60 div.lepopup-progress-t1&gt;div&gt;div{background-color:#bd4070;}.lepopup-progress-60 div.lepopup-progress-t1&gt;div&gt;div{color:#ffffff;}.lepopup-progress-60 div.lepopup-progress-t1&gt;label{color:#444444;}.lepopup-form-60, .lepopup-form-60 *, .lepopup-progress-60 {font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-signature-box span i{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#555555;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-signature-box,.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;text&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;email&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;password&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input select,.lepopup-form-60 .lepopup-element div.lepopup-input select option,.lepopup-form-60 .lepopup-element div.lepopup-input textarea{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#555555;font-style:normal;text-decoration:none;text-align:left;background-color:rgba(255, 255, 255, 0.7);background-image:none;border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow: inset 0px 0px 15px -7px #000000;}.lepopup-form-60 .lepopup-element div.lepopup-input ::placeholder{color:#555555; opacity: 0.9;} .lepopup-form-60 .lepopup-element div.lepopup-input ::-ms-input-placeholder{color:#555555; opacity: 0.9;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect::-webkit-scrollbar-thumb{background-color:#cccccc;}.lepopup-form-60 .lepopup-element div.lepopup-input&gt;i.lepopup-icon-left, .lepopup-form-60 .lepopup-element div.lepopup-input&gt;i.lepopup-icon-right{font-size:20px;color:#444444;border-radius:0px;}.lepopup-form-60 .lepopup-element .lepopup-button,.lepopup-form-60 .lepopup-element .lepopup-button:visited{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#ffffff;font-weight:700;font-style:normal;text-decoration:none;text-align:center;background-color:#326693;background-image:none;border-width:1px;border-style:solid;border-color:#326693;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element div.lepopup-input .lepopup-imageselect+label{border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element div.lepopup-input .lepopup-imageselect+label span.lepopup-imageselect-label{font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl:checked+label:after{background-color:rgba(255, 255, 255, 0.7);}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-classic+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-fa-check+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-square+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl+label{background-color:rgba(255, 255, 255, 0.7);border-color:#cccccc;color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-square:checked+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl:checked+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-classic+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-fa-check+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-dot+label{background-color:rgba(255, 255, 255, 0.7);border-color:#cccccc;color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-dot:checked+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect&gt;input[type=&#39;checkbox&#39;]+label:hover{background-color:#bd4070;color:#ffffff;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect&gt;input[type=&#39;checkbox&#39;]:checked+label{background-color:#a93a65;color:#ffffff;}.lepopup-form-60 .lepopup-element input[type=&#39;checkbox&#39;].lepopup-tile+label, .lepopup-form-60 .lepopup-element input[type=&#39;radio&#39;].lepopup-tile+label {font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:center;background-color:#ffffff;background-image:none;border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element-error{font-size:15px;color:#ffffff;font-style:normal;text-decoration:none;text-align:left;background-color:#d9534f;background-image:none;}.lepopup-form-60 .lepopup-element-2 {background-color:rgba(226, 236, 250, 1);background-image:none;border-width:1px;border-style:solid;border-color:rgba(216, 216, 216, 1);border-radius:3px;box-shadow: 1px 1px 15px -6px #d7e1eb;}.lepopup-form-60 .lepopup-element-3 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:26px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-3 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:26px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-3 .lepopup-element-html-content {min-height:73px;}.lepopup-form-60 .lepopup-element-4 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:19px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-4 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:19px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-4 .lepopup-element-html-content {min-height:23px;}.lepopup-form-60 .lepopup-element-5 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-5 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-5 .lepopup-element-html-content {min-height:24px;}.lepopup-form-60 .lepopup-element-6 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-6 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-6 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-7 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-7 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-7 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-8 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-8 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-8 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-9 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-9 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-9 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-10 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-10 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-10 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-11 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-11 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-11 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-12 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-12 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-12 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-13 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-13 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-13 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-14 div.lepopup-input .lepopup-icon-left, .lepopup-form-60 .lepopup-element-14 div.lepopup-input .lepopup-icon-right {line-height:36px;}.lepopup-form-60 .lepopup-element-15 div.lepopup-input{height:auto;line-height:1;}.lepopup-form-60 .lepopup-element-16 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:14px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-16 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:14px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-16 .lepopup-element-html-content {min-height:5px;}.lepopup-form-60 .lepopup-element-19 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#333333;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-19 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#333333;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-19 .lepopup-element-html-content {min-height:363px;}.lepopup-form-60 .lepopup-element-0 * {font-size:15px;color:#ffffff;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-0 {font-size:15px;color:#ffffff;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:#5cb85c;background-image:none;border-width:0px;border-style:solid;border-color:#ccc;border-radius:5px;box-shadow: 1px 1px 15px -6px #000000;padding-top:40px;padding-right:40px;padding-bottom:40px;padding-left:40px;}.lepopup-form-60 .lepopup-element-0 .lepopup-element-html-content {min-height:160px;}&lt;/style&gt;&lt;div class=lepopup-inline style=&#34;margin: 0 auto;&#34;&gt;&lt;div class=&#34;lepopup-form lepopup-form-60 lepopup-form-j8dbFd2hU5lTrUgW lepopup-form-icon-inside lepopup-form-position-middle-right&#34; data-session=0 data-id=j8dbFd2hU5lTrUgW data-form-id=60 data-slug=7lQM6oyWL5bTm5lw data-title=&#34;Under the Post Inline&#34; data-page=1 data-xd=off data-width=820 data-height=430 data-position=middle-right data-esc=off data-enter=on data-disable-scrollbar=off style=display:none;width:820px;height:430px; onclick=event.stopPropagation();&gt;&lt;div class=lepopup-form-inner style=width:820px;height:430px;&gt;&lt;div class=&#34;lepopup-element lepopup-element-2 lepopup-element-rectangle&#34; data-type=rectangle data-top=0 data-left=0 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:501;top:0px;left:0px;width:820px;height:430px;&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-3 lepopup-element-html&#34; data-type=html data-top=7 data-left=10 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:502;top:7px;left:10px;width:797px;height:73px;&gt;&lt;div class=lepopup-element-html-content&gt;Do you want to know how to develop your skillset to become a &lt;span style=&#34;color: #CAB43D; text-shadow: 1px 1px #835D5D;&#34;&gt;Java Rockstar?&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-4 lepopup-element-html&#34; data-type=html data-top=83 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:503;top:83px;left:308px;width:473px;height:23px;&gt;&lt;div class=lepopup-element-html-content&gt;Subscribe to our newsletter to start Rocking &lt;span style=&#34;text-decoration: underline;&#34;&gt;right now!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-5 lepopup-element-html&#34; data-type=html data-top=107 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:504;top:107px;left:308px;width:473px;height:24px;&gt;&lt;div class=lepopup-element-html-content&gt;To get you started we give you our best selling eBooks for &lt;span style=&#34;color:#e01404; text-shadow: 1px 1px #C99924; font-size: 15px;&#34;&gt;FREE!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-6 lepopup-element-html&#34; data-type=html data-top=136 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:505;top:136px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;1.&lt;/span&gt; JPA Mini Book&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-7 lepopup-element-html&#34; data-type=html data-top=156 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:506;top:156px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;2.&lt;/span&gt; JVM Troubleshooting Guide&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-8 lepopup-element-html&#34; data-type=html data-top=176 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:507;top:176px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;3.&lt;/span&gt; JUnit Tutorial for Unit Testing&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-9 lepopup-element-html&#34; data-type=html data-top=196 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:508;top:196px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;4.&lt;/span&gt; Java Annotations Tutorial&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-10 lepopup-element-html&#34; data-type=html data-top=216 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:509;top:216px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;5.&lt;/span&gt; Java Interview Questions&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-11 lepopup-element-html&#34; data-type=html data-top=236 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:510;top:236px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;6.&lt;/span&gt; Spring Interview Questions&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-12 lepopup-element-html&#34; data-type=html data-top=256 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:511;top:256px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;7.&lt;/span&gt; Android UI Design&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-13 lepopup-element-html&#34; data-type=html data-top=282 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:512;top:282px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;and many more ....&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-14&#34; data-type=email data-deps data-id=14 data-top=305 data-left=308 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:513;top:305px;left:308px;width:473px;height:36px;&gt;&lt;div class=lepopup-input&gt;&lt;input type=email name=lepopup-14 class=lepopup-ta-left placeholder=&#34;Enter your e-mail...&#34; autocomplete=email data-default aria-label=&#34;Email Field&#34; oninput=lepopup_input_changed(this); onfocus=lepopup_input_error_hide(this);&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-15&#34; data-type=checkbox data-deps data-id=15 data-top=344 data-left=308 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:514;top:344px;left:308px;width:160px;&gt;&lt;div class=&#34;lepopup-input lepopup-cr-layout-1 lepopup-cr-layout-left&#34;&gt;&lt;div class=&#34;lepopup-cr-container lepopup-cr-container-medium lepopup-cr-container-left&#34;&gt;&lt;div class=lepopup-cr-box&gt;&lt;input class=&#34;lepopup-checkbox lepopup-checkbox-classic lepopup-checkbox-medium&#34; type=checkbox name=lepopup-15[] id=lepopup-checkbox-gzmWbSJZHHUuMkG6-14-0 value=on data-default=off onchange=lepopup_input_changed(this);&gt;&lt;label for=lepopup-checkbox-gzmWbSJZHHUuMkG6-14-0 onclick=lepopup_input_error_hide(this);&gt;&lt;/label&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-cr-label lepopup-ta-left&#34;&gt;&lt;label for=lepopup-checkbox-gzmWbSJZHHUuMkG6-14-0 onclick=lepopup_input_error_hide(this);&gt;&lt;/label&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-16 lepopup-element-html&#34; data-type=html data-top=344 data-left=338 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:515;top:344px;left:338px;width:350px;height:5px;&gt;&lt;div class=lepopup-element-html-content&gt;I agree to the &lt;a href=https://www.javacodegeeks.com/about/terms-of-use target=_blank&gt;Terms&lt;/a&gt; and &lt;a href=https://www.javacodegeeks.com/about/privacy-policy target=_blank&gt;Privacy Policy&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-17&#34; data-type=button data-top=372 data-left=308 data-animation-in=bounceIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:516;top:372px;left:308px;width:85px;height:37px;&gt;&lt;a class=&#34;lepopup-button lepopup-button-zoom-out&#34; href=https://www.javacodegeeks.com/feed/ onclick=&#34;return lepopup_submit(this);&#34; data-label=&#34;Sign up&#34; data-loading=Loading...&gt;&lt;span&gt;Sign up&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-19 lepopup-element-html&#34; data-type=html data-top=67 data-left=-15 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:518;top:67px;left:-15px;width:320px;height:363px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;img data-lazyloaded=1 src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png fetchpriority=high decoding=async data-src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png alt width=320 height=363&gt;&lt;noscript&gt;&lt;img fetchpriority=high decoding=async src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png alt width=320 height=363&gt;&lt;/noscript&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-form lepopup-form-60 lepopup-form-j8dbFd2hU5lTrUgW lepopup-form-icon-inside lepopup-form-position-middle-right&#34; data-session=0 data-id=j8dbFd2hU5lTrUgW data-form-id=60 data-slug=7lQM6oyWL5bTm5lw data-title=&#34;Under the Post Inline&#34; data-page=confirmation data-xd=off data-width=420 data-height=320 data-position=middle-right data-esc=off data-enter=on data-disable-scrollbar=off style=display:none;width:420px;height:320px; onclick=event.stopPropagation();&gt;&lt;div class=lepopup-form-inner style=width:420px;height:320px;&gt;&lt;div class=&#34;lepopup-element lepopup-element-0 lepopup-element-html&#34; data-type=html data-top=80 data-left=70 data-animation-in=bounceInDown data-animation-out=fadeOutUp style=animation-duration:1000ms;animation-delay:0ms;z-index:500;top:80px;left:70px;width:280px;height:160px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;h4 style=&#34;text-align: center; font-size: 18px; font-weight: bold;&#34;&gt;Thank you!&lt;/h4&gt;&lt;p style=&#34;text-align: center;&#34;&gt;We will contact you soon.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;input type=hidden id=lepopup-logic-j8dbFd2hU5lTrUgW value=[]&gt;&lt;/div&gt;&lt;div class=&#34;post-bottom-meta post-bottom-tags post-tags-classic&#34;&gt;&lt;div class=post-bottom-meta-title&gt;&lt;span class=tie-icon-tags aria-hidden=true&gt;&lt;/span&gt;Tags&lt;/div&gt;&lt;span class=tagcloud&gt;&lt;a href=https://www.javacodegeeks.com/tag/jackson rel=tag&gt;Jackson&lt;/a&gt; &lt;a href=https://www.javacodegeeks.com/tag/json rel=tag&gt;JSON&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=post-extra-info&gt;&lt;div class=theiaStickySidebar&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=clearfix&gt;&lt;/div&gt;</description>
      <author>Yatin Batra</author>
      <guid>https://www.javacodegeeks.com/jackson-deserialization-using-a-multi-parameter-constructor.html</guid>
      <pubDate>Fri, 17 Apr 2026 08:30:59 +0000</pubDate>
    </item>
    <item>
      <title>Probabilistic Data Structures: The Theory Behind Bloom Filters, HyperLogLog, and Count-Min Sketch</title>
      <link>https://www.javacodegeeks.com/2026/04/probabilistic-data-structures-the-theory-behind-bloom-filters-hyperloglog-and-count-min-sketch.html</link>
      <description>&lt;header class=entry-header-outer&gt;&lt;nav id=breadcrumb&gt;&lt;a href=https://www.javacodegeeks.com/&gt;&lt;span class=tie-icon-home aria-hidden=true&gt;&lt;/span&gt;Home&lt;/a&gt;&lt;em class=delimiter&gt;»&lt;/em&gt;&lt;a href=https://www.javacodegeeks.com/category/software-development&gt;Software Development&lt;/a&gt;&lt;em class=delimiter&gt;»&lt;/em&gt;&lt;span class=current&gt;Probabilistic Data Structures: The Theory Behind Bloom Filters, HyperLogLog, and Count-Min Sketch&lt;/span&gt;&lt;/nav&gt;&lt;div class=entry-header&gt;&lt;span class=post-cat-wrap&gt;&lt;a class=&#34;post-cat tie-cat-15&#34; href=https://www.javacodegeeks.com/category/software-development&gt;Software Development&lt;/a&gt;&lt;/span&gt;&lt;h1 class=&#34;post-title entry-title&#34;&gt;Probabilistic Data Structures: The Theory Behind Bloom Filters, HyperLogLog, and Count-Min Sketch&lt;/h1&gt;&lt;/div&gt;&lt;/header&gt;&lt;div class=&#34;entry-content entry clearfix&#34;&gt;&lt;div class=&#34;stream-item stream-item-above-post-content&#34;&gt;&lt;div class=stream-item-size&gt;&lt;div id=adngin-in-post-0 style=&#34;float:left; margin-right:20px; margin-bottom:10px; width:300px; height:274px;&#34;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;When exact answers are too expensive, approximate answers with bounded error save the day — and the server budget.&lt;/em&gt;&lt;p&gt;Imagine trying to count every unique visitor to a website that receives 10 billion hits per day. Storing every single user ID would cost you gigabytes of RAM per server. Alternatively, you could use a structure that fits in 2.5 KB and gives you the right answer 98% of the time. That trade-off is exactly what probabilistic data structures are built for.&lt;p&gt;Before diving in, it helps to understand why these structures exist in the first place. In large-scale systems, three constraints regularly collide: &lt;strong&gt;data volume&lt;/strong&gt; (too much to store exactly), &lt;strong&gt;memory budget&lt;/strong&gt; (servers aren’t free), and &lt;strong&gt;latency requirements&lt;/strong&gt; (answers must come back fast). When all three squeeze at once, exact data structures simply don’t scale. Probabilistic ones do — and they do it with mathematical guarantees on how wrong they can be.&lt;p&gt;In this article, we’ll walk through three of the most widely used probabilistic data structures: &lt;strong&gt;Bloom filters&lt;/strong&gt;, &lt;strong&gt;HyperLogLog&lt;/strong&gt;, and the &lt;strong&gt;Count-Min Sketch&lt;/strong&gt;. We’ll explain not just what they do, but why the underlying math makes them trustworthy enough to deploy at Google, Facebook, Redis, and Cassandra scale.&lt;p&gt;&lt;em&gt;A probabilistic data structure doesn’t give you wrong answers — it gives you approximate answers with quantifiable, bounded error. That’s a very different thing.&lt;/em&gt;&lt;h2 class=wp-block-heading&gt;1. The Foundation: Why Hashing Makes This All Possible&lt;/h2&gt;&lt;p&gt;All three structures rely on one core primitive: the &lt;strong&gt;hash function&lt;/strong&gt;. A good hash function takes an arbitrary input and maps it to a fixed-size output in a way that appears random. Two critical properties make hashing useful for probabilistic structures:&lt;p&gt;First, &lt;strong&gt;uniformity&lt;/strong&gt;: outputs are spread evenly across the output space. Second, &lt;strong&gt;determinism&lt;/strong&gt;: the same input always produces the same output. Together, these properties let you encode information about a massive dataset into a compact bit array or counter table, then query it later with predictable accuracy.&lt;p&gt;The &lt;strong&gt;birthday paradox&lt;/strong&gt; is worth understanding here, too. In a group of just 23 people, there’s a 50% chance that two share a birthday. Why? Because the number of possible pairings (253) grows much faster than the number of people. In hashing terms, &lt;strong&gt;collisions&lt;/strong&gt; — two different inputs mapping to the same output — happen far sooner than intuition suggests. Probabilistic structures don’t eliminate collisions; instead, they account for them mathematically and use that accounting to bound error.&lt;h2 class=wp-block-heading&gt;2. Bloom Filters: Fast Membership Testing with a Built-In Caveat&lt;/h2&gt;&lt;p&gt;A Bloom filter answers one question: &lt;em&gt;“Have I seen this item before?”&lt;/em&gt; It’s used everywhere — from checking whether a URL is malicious (&lt;a href=https://research.google/pubs/pub36839/ target=_blank rel=&#34;noreferrer noopener&#34;&gt;Google Safe Browsing&lt;/a&gt;) to preventing duplicate writes in databases like &lt;a href=https://cassandra.apache.org/doc/latest/cassandra/operating/bloom_filters.html target=_blank rel=&#34;noreferrer noopener&#34;&gt;Apache Cassandra&lt;/a&gt;.&lt;h3 class=wp-block-heading&gt;How it works&lt;/h3&gt;&lt;p&gt;A Bloom filter is simply a &lt;strong&gt;bit array of m bits&lt;/strong&gt;, initially all set to zero, paired with &lt;strong&gt;k independent hash functions&lt;/strong&gt;. When you insert an element, you run it through all k hash functions, each producing a position in the array, and set those bits to 1. To query whether an element exists, you check those same k positions — if all are 1, the element is &lt;em&gt;probably&lt;/em&gt; in the set; if any is 0, it’s &lt;em&gt;definitely not&lt;/em&gt;.&lt;p&gt;Notice the asymmetry there. That asymmetry is the entire point:&lt;figure class=wp-block-table&gt;&lt;table class=has-fixed-layout&gt;&lt;thead&gt;&lt;tr&gt;&lt;th class=has-text-align-left data-align=left&gt;Query Result&lt;th class=has-text-align-left data-align=left&gt;What It Means&lt;th class=has-text-align-left data-align=left&gt;Can You Trust It?&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;All bits = 1&lt;td&gt;Element &lt;em&gt;probably&lt;/em&gt; in set&lt;td&gt;Almost — false positives are possible&lt;tr&gt;&lt;td&gt;Any bit = 0&lt;td&gt;Element &lt;em&gt;definitely not&lt;/em&gt; in set&lt;td&gt;100% — no false negatives ever&lt;/table&gt;&lt;/figure&gt;&lt;p&gt;Furthermore, the false positive rate is not arbitrary — it’s precisely calculable. After inserting &lt;strong&gt;n&lt;/strong&gt; elements into a filter with &lt;strong&gt;m&lt;/strong&gt; bits and &lt;strong&gt;k&lt;/strong&gt; hash functions, the probability of a false positive is:&lt;pre class=brush:bash&gt;P(false positive) ≈ (1 − e−kn/m)k&#xA;&lt;/pre&gt;&lt;p&gt;This formula tells you something powerful: you can tune the filter to whatever error rate you need simply by adjusting m and k. For a 1% false positive rate with 1 million elements, you need roughly &lt;strong&gt;9.6 bits per element&lt;/strong&gt; — about 1.2 MB total. That’s a remarkable trade-off for a membership test that would otherwise require storing all 1 million values.&lt;p&gt;Below, you can see how the false positive rate changes as you vary the number of hash functions for a fixed filter size. Notice how there’s an optimal number of hash functions — too few or too many, and error creeps up.&lt;div style=&#34;display:inline-block; margin: 15px 0;&#34;&gt;&lt;div id=adngin-JavaCodeGeeks_incontent_video-0 style=display:inline-block;&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;p class=has-text-align-center&gt;&lt;strong&gt;Bloom Filter — False Positive Rate vs. Number of Hash Functions&lt;/strong&gt;&lt;div class=wp-block-image&gt;&lt;figure class=&#34;aligncenter size-full&#34;&gt;&lt;a href=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_11-46-31.png&gt;&lt;img data-lazyloaded=1 src=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_11-46-31.png fetchpriority=high decoding=async width=577 height=304 data-src=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_11-46-31.png alt class=wp-image-142790 data-srcset=&#34;https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_11-46-31.png 577w, https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_11-46-31-300x158.png 300w&#34; data-sizes=&#34;(max-width: 577px) 100vw, 577px&#34;&gt;&lt;noscript&gt;&lt;img fetchpriority=high decoding=async width=577 height=304 src=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_11-46-31.png alt class=wp-image-142790 srcset=&#34;https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_11-46-31.png 577w, https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_11-46-31-300x158.png 300w&#34; sizes=&#34;(max-width: 577px) 100vw, 577px&#34;&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;In practice, &lt;a href=https://redis.io/docs/data-types/probabilistic/bloom-filter/ target=_blank rel=&#34;noreferrer noopener&#34;&gt;Redis’s Bloom filter module&lt;/a&gt; and &lt;a href=https://llimllib.github.io/bloomfilter-tutorial/ target=_blank rel=&#34;noreferrer noopener&#34;&gt;many open-source libraries&lt;/a&gt; handle the math for you — you simply specify your desired false positive rate and expected element count, and the library sizes the structure accordingly. The key engineering insight is that &lt;strong&gt;Bloom filters never lie in the negative direction&lt;/strong&gt;. If the filter says “no,” you can trust that absolutely.&lt;h2 class=wp-block-heading&gt;3. HyperLogLog: Counting the Uncountable&lt;/h2&gt;&lt;p&gt;Now consider a different problem: you want to count how many &lt;em&gt;distinct&lt;/em&gt; values appear in a stream of data — unique users, unique search queries, unique product views. This is the &lt;strong&gt;cardinality estimation problem&lt;/strong&gt;, and it’s surprisingly hard to solve exactly at scale.&lt;p&gt;The naïve solution is to maintain a hash set. But for billions of distinct elements, a hash set can require gigabytes of memory. &lt;strong&gt;HyperLogLog&lt;/strong&gt;, introduced by Flajolet, Fusy, Gandouet, and Meunier in &lt;a href=http://algo.inria.fr/flajolet/Publications/FlFuGaMe07.pdf target=_blank rel=&#34;noreferrer noopener&#34;&gt;their landmark 2007 paper&lt;/a&gt;, achieves approximately 2% error using just &lt;strong&gt;1.5 KB of memory&lt;/strong&gt; — regardless of whether you’re counting a million or a trillion distinct elements.&lt;h3 class=wp-block-heading&gt;The intuition: leading zeros as a signal&lt;/h3&gt;&lt;p&gt;The insight comes from the probabilistic behaviour of hash functions. When you hash elements uniformly, the probability of seeing a hash value with k leading zeros is 2&lt;sup&gt;−k&lt;/sup&gt;. Therefore, if you observe a hash with 10 leading zeros, you can estimate you’ve seen roughly 2&lt;sup&gt;10&lt;/sup&gt; = 1,024 distinct elements.&lt;p&gt;That’s a rough estimator, but HyperLogLog improves it dramatically by using &lt;strong&gt;m parallel registers&lt;/strong&gt;. Each incoming hash value is split: the first few bits select a register bucket, and the remaining bits are used to track the maximum leading-zero run seen in that bucket. At query time, a harmonic mean of all register estimates is computed. This technique — originally from the &lt;strong&gt;Flajolet-Martin algorithm&lt;/strong&gt; — gives consistent, low-variance results across all ranges of cardinality.&lt;p&gt;&lt;strong&gt;Real-world deployment:&lt;/strong&gt; Redis has shipped HyperLogLog as a native data type since version 2.8. A full billion-element cardinality estimate is stored in just 12 KB, with ±0.81% error. See the &lt;a href=https://redis.io/docs/data-types/probabilistic/hyperloglogs/ target=_blank rel=&#34;noreferrer noopener&#34;&gt;Redis HyperLogLog docs&lt;/a&gt; for implementation details.&lt;p&gt;The chart below illustrates HyperLogLog’s memory efficiency compared to exact counting across different cardinality ranges. As the cardinality grows, the gap between exact and approximate memory requirements widens dramatically.&lt;p class=has-text-align-center&gt;&lt;strong&gt;Memory Usage: Exact HashSet vs. HyperLogLog&lt;/strong&gt;&lt;div class=wp-block-image&gt;&lt;figure class=&#34;aligncenter size-full&#34;&gt;&lt;a href=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_11-47-22.png&gt;&lt;img data-lazyloaded=1 src=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_11-47-22.png decoding=async width=574 height=301 data-src=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_11-47-22.png alt class=wp-image-142791 data-srcset=&#34;https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_11-47-22.png 574w, https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_11-47-22-300x157.png 300w&#34; data-sizes=&#34;(max-width: 574px) 100vw, 574px&#34;&gt;&lt;noscript&gt;&lt;img decoding=async width=574 height=301 src=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_11-47-22.png alt class=wp-image-142791 srcset=&#34;https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_11-47-22.png 574w, https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-14_11-47-22-300x157.png 300w&#34; sizes=&#34;(max-width: 574px) 100vw, 574px&#34;&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;figcaption class=wp-element-caption&gt;HyperLogLog uses fixed ~12 KB regardless of cardinality; HashSet grows linearly&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;It’s also worth noting that HyperLogLog is &lt;strong&gt;mergeable&lt;/strong&gt;. You can run it independently on multiple servers and combine the results with a bitwise OR — a property that makes it ideal for distributed systems. Google used an extended variant, HyperLogLog++, in &lt;a href=https://research.google/pubs/pub40671/ target=_blank rel=&#34;noreferrer noopener&#34;&gt;large-scale analytics pipelines&lt;/a&gt; for exactly this reason.&lt;h2 class=wp-block-heading&gt;4. Count-Min Sketch: Frequency Estimation over Streaming Data&lt;/h2&gt;&lt;p&gt;The third structure solves yet another problem: given a stream of events, &lt;em&gt;how often has each item appeared?&lt;/em&gt; This is the &lt;strong&gt;heavy-hitter problem&lt;/strong&gt; — finding the most frequent elements in a stream too large to store. It comes up in network intrusion detection (find the most frequent IP addresses), recommendation systems (find the most viewed items), and database query optimisation.&lt;p&gt;The &lt;strong&gt;Count-Min Sketch&lt;/strong&gt;, introduced by Cormode and Muthukrishnan in &lt;a href=https://www.sciencedirect.com/science/article/pii/S0196677403001913 target=_blank rel=&#34;noreferrer noopener&#34;&gt;2005&lt;/a&gt;, uses a 2D array of counters with dimensions &lt;strong&gt;d × w&lt;/strong&gt;, where d is the number of hash functions and w is the width of each row. Each incoming element is hashed by all d functions, and the corresponding counters in each row are incremented. To query an element’s frequency, you take the &lt;strong&gt;minimum&lt;/strong&gt; across all d counter values — hence the name.&lt;p&gt;&lt;strong&gt;Why the minimum?&lt;/strong&gt; Counters are inflated by collisions — multiple elements can increment the same counter. The minimum across independent rows gives the tightest upper bound on the true count, because at least one row is likely to have fewer collisions than the others.&lt;h3 class=wp-block-heading&gt;Error guarantees and sizing&lt;/h3&gt;&lt;p&gt;The Count-Min Sketch provides an &lt;strong&gt;overestimate guarantee&lt;/strong&gt;: the estimated count is always ≥ the true count, never below. The error is bounded by ε × N, where ε is a user-specified error factor and N is the total number of insertions. Setting w = ⌈e/ε⌉ and d = ⌈ln(1/δ)⌉ guarantees that with probability 1−δ, the estimate exceeds the true count by at most εN.&lt;figure class=wp-block-table&gt;&lt;table class=has-fixed-layout&gt;&lt;thead&gt;&lt;tr&gt;&lt;th class=has-text-align-left data-align=left&gt;Structure&lt;th class=has-text-align-left data-align=left&gt;Problem Solved&lt;th class=has-text-align-left data-align=left&gt;Error Type&lt;th class=has-text-align-left data-align=left&gt;Memory (typical)&lt;th class=has-text-align-left data-align=left&gt;Used In&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Bloom Filter&lt;/strong&gt;&lt;td&gt;Membership testing&lt;td&gt;False positives only&lt;td&gt;~10 bits per element&lt;td&gt;Cassandra, Chrome, BigTable&lt;tr&gt;&lt;td&gt;&lt;strong&gt;HyperLogLog&lt;/strong&gt;&lt;td&gt;Cardinality estimation&lt;td&gt;~±2% relative error&lt;td&gt;1.5–12 KB fixed&lt;td&gt;Redis, Spark, BigQuery&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Count-Min Sketch&lt;/strong&gt;&lt;td&gt;Frequency estimation&lt;td&gt;Overestimates only&lt;td&gt;O(1/ε · log 1/δ) counters&lt;td&gt;Flink, Storm, network analytics&lt;/table&gt;&lt;/figure&gt;&lt;h2 class=wp-block-heading&gt;5. The Math That Ties It Together: Linearity of Expectation&lt;/h2&gt;&lt;p&gt;One reason these structures work so reliably is a beautiful theorem in probability called &lt;strong&gt;linearity of expectation&lt;/strong&gt;. It states that the expected value of a sum of random variables equals the sum of their individual expected values — regardless of whether those variables are correlated.&lt;p&gt;In the context of HyperLogLog’s harmonic mean across registers, this means that even though each register’s estimate is noisy, the average across m registers converges to the true cardinality predictably. You don’t need the registers to be independent; linearity of expectation holds either way. This is what makes the error bound provable rather than merely empirical.&lt;p&gt;Similarly, in the Count-Min Sketch, linearity of expectation explains why the minimum-of-sums estimator converges: even though each row accumulates collision noise, the expected collision rate is bounded by 1/w per hash function, and taking the minimum across d rows drives the expected error down exponentially.&lt;h2 class=wp-block-heading&gt;6. Putting It into Practice: When to Use Each&lt;/h2&gt;&lt;p&gt;Choosing the right structure depends on what question you’re asking. As a rule of thumb, think about it this way: if you want to &lt;em&gt;test membership&lt;/em&gt;, reach for a Bloom filter. If you want to &lt;em&gt;count distinct things&lt;/em&gt;, reach for HyperLogLog. If you want to &lt;em&gt;estimate frequencies&lt;/em&gt;, reach for Count-Min Sketch. These aren’t overlapping tools — each is shaped to its problem.&lt;p&gt;There are, of course, limitations to keep in mind. Bloom filters are not deletable by default (though &lt;a href=https://en.wikipedia.org/wiki/Counting_Bloom_filter target=_blank rel=&#34;noreferrer noopener&#34;&gt;counting Bloom filters&lt;/a&gt; address this). HyperLogLog’s error grows slightly for very small cardinalities and requires bias correction for small sets. Count-Min Sketch only handles positive frequency updates — negative counters (deletions) require a different variant called the &lt;strong&gt;CMS with deletions&lt;/strong&gt; or a conservative update scheme.&lt;p&gt;Still, for the vast majority of streaming and large-scale analytics use cases, these three structures cover the essential ground. Moreover, they compose well: for example, you can use a Bloom filter as a pre-filter before a Count-Min Sketch to avoid counting elements you’ve never seen before, reducing noise in the sketch.&lt;h3 class=wp-block-heading&gt;A minimal Bloom filter in Python&lt;/h3&gt;&lt;p&gt;The following Python snippet is self-contained and runnable on Python 3.6+ with no external dependencies. It demonstrates a basic Bloom filter using the &lt;code&gt;hashlib&lt;/code&gt; standard library module:&lt;pre class=brush:py&gt;# Requires Python 3.6+ — no external packages needed&#xA;import hashlib&#xA;import math&#xA;&#xA;class BloomFilter:&#xA;    def __init__(self, n, p):&#xA;        # n = expected elements, p = false positive rate&#xA;        self.m = math.ceil(-n * math.log(p) / (math.log(2) ** 2))&#xA;        self.k = math.ceil((self.m / n) * math.log(2))&#xA;        self.bits = bytearray(self.m)&#xA;&#xA;    def _positions(self, item):&#xA;        item = str(item).encode()&#xA;        for i in range(self.k):&#xA;            h = hashlib.sha256(item + i.to_bytes(2, &amp;#39;big&amp;#39;)).hexdigest()&#xA;            yield int(h, 16) % self.m&#xA;&#xA;    def add(self, item):&#xA;        for pos in self._positions(item):&#xA;            self.bits[pos] = 1&#xA;&#xA;    def __contains__(self, item):&#xA;        return all(self.bits[pos] for pos in self._positions(item))&#xA;&#xA;# Example: 1 000 items, 1% false positive rate&#xA;bf = BloomFilter(n=1000, p=0.01)&#xA;bf.add(&amp;#34;hello&amp;#34;)&#xA;bf.add(&amp;#34;world&amp;#34;)&#xA;print(&amp;#34;hello&amp;#34; in bf)   # True&#xA;print(&amp;#34;missing&amp;#34; in bf) # False (no false negative possible)&#xA;print(f&amp;#34;Bit array: {bf.m} bits, {bf.k} hash functions&amp;#34;)&#xA;&lt;/pre&gt;&lt;p&gt;To run this, save it as &lt;code&gt;bloom.py&lt;/code&gt; and execute &lt;code&gt;python bloom.py&lt;/code&gt; in your terminal. No pip installs needed. The class automatically computes optimal m and k from your target parameters.&lt;h2 class=wp-block-heading&gt;7. What We’ve Learned&lt;/h2&gt;&lt;p&gt;Let’s take a step back and recap what we’ve covered in this article:&lt;ul class=wp-block-list&gt;&lt;li&gt;&lt;strong&gt;Probabilistic data structures&lt;/strong&gt; trade exactness for dramatic memory and speed gains, with mathematically bounded, predictable error — not random guesswork.&lt;li&gt;&lt;strong&gt;Bloom filters&lt;/strong&gt; answer membership queries with zero false negatives. By tuning the number of bits and hash functions, you can achieve any desired false positive rate at roughly 10 bits per element.&lt;li&gt;&lt;strong&gt;HyperLogLog&lt;/strong&gt; estimates cardinality — the count of distinct elements in a stream — with ~2% error using only kilobytes of memory, regardless of whether you’re counting millions or trillions of values.&lt;li&gt;&lt;strong&gt;Count-Min Sketch&lt;/strong&gt; estimates item frequencies over streaming data, always overestimating (never underestimating) by a factor bounded by ε × N.&lt;li&gt;The underlying theory — &lt;strong&gt;hash uniformity&lt;/strong&gt;, the &lt;strong&gt;birthday paradox&lt;/strong&gt;, the &lt;strong&gt;Flajolet-Martin algorithm&lt;/strong&gt;, and &lt;strong&gt;linearity of expectation&lt;/strong&gt; — is what makes these error bounds provable and trustworthy in production systems.&lt;li&gt;All three structures are in active production use at major tech companies through tools like &lt;strong&gt;Redis, Apache Cassandra, Apache Spark, Google BigQuery,&lt;/strong&gt; and &lt;strong&gt;Apache Flink&lt;/strong&gt;.&lt;/ul&gt;&lt;style&gt;.lepopup-progress-60 div.lepopup-progress-t1&gt;div{background-color:#e0e0e0;}.lepopup-progress-60 div.lepopup-progress-t1&gt;div&gt;div{background-color:#bd4070;}.lepopup-progress-60 div.lepopup-progress-t1&gt;div&gt;div{color:#ffffff;}.lepopup-progress-60 div.lepopup-progress-t1&gt;label{color:#444444;}.lepopup-form-60, .lepopup-form-60 *, .lepopup-progress-60 {font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-signature-box span i{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#555555;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-signature-box,.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;text&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;email&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;password&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input select,.lepopup-form-60 .lepopup-element div.lepopup-input select option,.lepopup-form-60 .lepopup-element div.lepopup-input textarea{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#555555;font-style:normal;text-decoration:none;text-align:left;background-color:rgba(255, 255, 255, 0.7);background-image:none;border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow: inset 0px 0px 15px -7px #000000;}.lepopup-form-60 .lepopup-element div.lepopup-input ::placeholder{color:#555555; opacity: 0.9;} .lepopup-form-60 .lepopup-element div.lepopup-input ::-ms-input-placeholder{color:#555555; opacity: 0.9;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect::-webkit-scrollbar-thumb{background-color:#cccccc;}.lepopup-form-60 .lepopup-element div.lepopup-input&gt;i.lepopup-icon-left, .lepopup-form-60 .lepopup-element div.lepopup-input&gt;i.lepopup-icon-right{font-size:20px;color:#444444;border-radius:0px;}.lepopup-form-60 .lepopup-element .lepopup-button,.lepopup-form-60 .lepopup-element .lepopup-button:visited{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#ffffff;font-weight:700;font-style:normal;text-decoration:none;text-align:center;background-color:#326693;background-image:none;border-width:1px;border-style:solid;border-color:#326693;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element div.lepopup-input .lepopup-imageselect+label{border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element div.lepopup-input .lepopup-imageselect+label span.lepopup-imageselect-label{font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl:checked+label:after{background-color:rgba(255, 255, 255, 0.7);}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-classic+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-fa-check+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-square+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl+label{background-color:rgba(255, 255, 255, 0.7);border-color:#cccccc;color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-square:checked+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl:checked+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-classic+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-fa-check+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-dot+label{background-color:rgba(255, 255, 255, 0.7);border-color:#cccccc;color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-dot:checked+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect&gt;input[type=&#39;checkbox&#39;]+label:hover{background-color:#bd4070;color:#ffffff;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect&gt;input[type=&#39;checkbox&#39;]:checked+label{background-color:#a93a65;color:#ffffff;}.lepopup-form-60 .lepopup-element input[type=&#39;checkbox&#39;].lepopup-tile+label, .lepopup-form-60 .lepopup-element input[type=&#39;radio&#39;].lepopup-tile+label {font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:center;background-color:#ffffff;background-image:none;border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element-error{font-size:15px;color:#ffffff;font-style:normal;text-decoration:none;text-align:left;background-color:#d9534f;background-image:none;}.lepopup-form-60 .lepopup-element-2 {background-color:rgba(226, 236, 250, 1);background-image:none;border-width:1px;border-style:solid;border-color:rgba(216, 216, 216, 1);border-radius:3px;box-shadow: 1px 1px 15px -6px #d7e1eb;}.lepopup-form-60 .lepopup-element-3 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:26px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-3 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:26px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-3 .lepopup-element-html-content {min-height:73px;}.lepopup-form-60 .lepopup-element-4 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:19px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-4 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:19px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-4 .lepopup-element-html-content {min-height:23px;}.lepopup-form-60 .lepopup-element-5 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-5 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-5 .lepopup-element-html-content {min-height:24px;}.lepopup-form-60 .lepopup-element-6 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-6 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-6 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-7 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-7 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-7 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-8 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-8 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-8 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-9 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-9 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-9 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-10 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-10 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-10 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-11 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-11 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-11 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-12 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-12 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-12 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-13 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-13 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-13 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-14 div.lepopup-input .lepopup-icon-left, .lepopup-form-60 .lepopup-element-14 div.lepopup-input .lepopup-icon-right {line-height:36px;}.lepopup-form-60 .lepopup-element-15 div.lepopup-input{height:auto;line-height:1;}.lepopup-form-60 .lepopup-element-16 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:14px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-16 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:14px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-16 .lepopup-element-html-content {min-height:5px;}.lepopup-form-60 .lepopup-element-19 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#333333;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-19 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#333333;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-19 .lepopup-element-html-content {min-height:363px;}.lepopup-form-60 .lepopup-element-0 * {font-size:15px;color:#ffffff;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-0 {font-size:15px;color:#ffffff;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:#5cb85c;background-image:none;border-width:0px;border-style:solid;border-color:#ccc;border-radius:5px;box-shadow: 1px 1px 15px -6px #000000;padding-top:40px;padding-right:40px;padding-bottom:40px;padding-left:40px;}.lepopup-form-60 .lepopup-element-0 .lepopup-element-html-content {min-height:160px;}&lt;/style&gt;&lt;div class=lepopup-inline style=&#34;margin: 0 auto;&#34;&gt;&lt;div class=&#34;lepopup-form lepopup-form-60 lepopup-form-fSxRzMVlJbpU9PWp lepopup-form-icon-inside lepopup-form-position-middle-right&#34; data-session=0 data-id=fSxRzMVlJbpU9PWp data-form-id=60 data-slug=7lQM6oyWL5bTm5lw data-title=&#34;Under the Post Inline&#34; data-page=1 data-xd=off data-width=820 data-height=430 data-position=middle-right data-esc=off data-enter=on data-disable-scrollbar=off style=display:none;width:820px;height:430px; onclick=event.stopPropagation();&gt;&lt;div class=lepopup-form-inner style=width:820px;height:430px;&gt;&lt;div class=&#34;lepopup-element lepopup-element-2 lepopup-element-rectangle&#34; data-type=rectangle data-top=0 data-left=0 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:501;top:0px;left:0px;width:820px;height:430px;&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-3 lepopup-element-html&#34; data-type=html data-top=7 data-left=10 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:502;top:7px;left:10px;width:797px;height:73px;&gt;&lt;div class=lepopup-element-html-content&gt;Do you want to know how to develop your skillset to become a &lt;span style=&#34;color: #CAB43D; text-shadow: 1px 1px #835D5D;&#34;&gt;Java Rockstar?&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-4 lepopup-element-html&#34; data-type=html data-top=83 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:503;top:83px;left:308px;width:473px;height:23px;&gt;&lt;div class=lepopup-element-html-content&gt;Subscribe to our newsletter to start Rocking &lt;span style=&#34;text-decoration: underline;&#34;&gt;right now!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-5 lepopup-element-html&#34; data-type=html data-top=107 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:504;top:107px;left:308px;width:473px;height:24px;&gt;&lt;div class=lepopup-element-html-content&gt;To get you started we give you our best selling eBooks for &lt;span style=&#34;color:#e01404; text-shadow: 1px 1px #C99924; font-size: 15px;&#34;&gt;FREE!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-6 lepopup-element-html&#34; data-type=html data-top=136 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:505;top:136px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;1.&lt;/span&gt; JPA Mini Book&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-7 lepopup-element-html&#34; data-type=html data-top=156 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:506;top:156px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;2.&lt;/span&gt; JVM Troubleshooting Guide&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-8 lepopup-element-html&#34; data-type=html data-top=176 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:507;top:176px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;3.&lt;/span&gt; JUnit Tutorial for Unit Testing&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-9 lepopup-element-html&#34; data-type=html data-top=196 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:508;top:196px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;4.&lt;/span&gt; Java Annotations Tutorial&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-10 lepopup-element-html&#34; data-type=html data-top=216 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:509;top:216px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;5.&lt;/span&gt; Java Interview Questions&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-11 lepopup-element-html&#34; data-type=html data-top=236 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:510;top:236px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;6.&lt;/span&gt; Spring Interview Questions&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-12 lepopup-element-html&#34; data-type=html data-top=256 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:511;top:256px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;7.&lt;/span&gt; Android UI Design&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-13 lepopup-element-html&#34; data-type=html data-top=282 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:512;top:282px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;and many more ....&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-14&#34; data-type=email data-deps data-id=14 data-top=305 data-left=308 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:513;top:305px;left:308px;width:473px;height:36px;&gt;&lt;div class=lepopup-input&gt;&lt;input type=email name=lepopup-14 class=lepopup-ta-left placeholder=&#34;Enter your e-mail...&#34; autocomplete=email data-default aria-label=&#34;Email Field&#34; oninput=lepopup_input_changed(this); onfocus=lepopup_input_error_hide(this);&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-15&#34; data-type=checkbox data-deps data-id=15 data-top=344 data-left=308 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:514;top:344px;left:308px;width:160px;&gt;&lt;div class=&#34;lepopup-input lepopup-cr-layout-1 lepopup-cr-layout-left&#34;&gt;&lt;div class=&#34;lepopup-cr-container lepopup-cr-container-medium lepopup-cr-container-left&#34;&gt;&lt;div class=lepopup-cr-box&gt;&lt;input class=&#34;lepopup-checkbox lepopup-checkbox-classic lepopup-checkbox-medium&#34; type=checkbox name=lepopup-15[] id=lepopup-checkbox-eBhpYkvR6pVmKTcl-14-0 value=on data-default=off onchange=lepopup_input_changed(this);&gt;&lt;label for=lepopup-checkbox-eBhpYkvR6pVmKTcl-14-0 onclick=lepopup_input_error_hide(this);&gt;&lt;/label&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-cr-label lepopup-ta-left&#34;&gt;&lt;label for=lepopup-checkbox-eBhpYkvR6pVmKTcl-14-0 onclick=lepopup_input_error_hide(this);&gt;&lt;/label&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-16 lepopup-element-html&#34; data-type=html data-top=344 data-left=338 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:515;top:344px;left:338px;width:350px;height:5px;&gt;&lt;div class=lepopup-element-html-content&gt;I agree to the &lt;a href=https://www.javacodegeeks.com/about/terms-of-use target=_blank&gt;Terms&lt;/a&gt; and &lt;a href=https://www.javacodegeeks.com/about/privacy-policy target=_blank&gt;Privacy Policy&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-17&#34; data-type=button data-top=372 data-left=308 data-animation-in=bounceIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:516;top:372px;left:308px;width:85px;height:37px;&gt;&lt;a class=&#34;lepopup-button lepopup-button-zoom-out&#34; href=https://www.javacodegeeks.com/feed/ onclick=&#34;return lepopup_submit(this);&#34; data-label=&#34;Sign up&#34; data-loading=Loading...&gt;&lt;span&gt;Sign up&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-19 lepopup-element-html&#34; data-type=html data-top=67 data-left=-15 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:518;top:67px;left:-15px;width:320px;height:363px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;img data-lazyloaded=1 src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png decoding=async data-src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png alt width=320 height=363&gt;&lt;noscript&gt;&lt;img decoding=async src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png alt width=320 height=363&gt;&lt;/noscript&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-form lepopup-form-60 lepopup-form-fSxRzMVlJbpU9PWp lepopup-form-icon-inside lepopup-form-position-middle-right&#34; data-session=0 data-id=fSxRzMVlJbpU9PWp data-form-id=60 data-slug=7lQM6oyWL5bTm5lw data-title=&#34;Under the Post Inline&#34; data-page=confirmation data-xd=off data-width=420 data-height=320 data-position=middle-right data-esc=off data-enter=on data-disable-scrollbar=off style=display:none;width:420px;height:320px; onclick=event.stopPropagation();&gt;&lt;div class=lepopup-form-inner style=width:420px;height:320px;&gt;&lt;div class=&#34;lepopup-element lepopup-element-0 lepopup-element-html&#34; data-type=html data-top=80 data-left=70 data-animation-in=bounceInDown data-animation-out=fadeOutUp style=animation-duration:1000ms;animation-delay:0ms;z-index:500;top:80px;left:70px;width:280px;height:160px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;h4 style=&#34;text-align: center; font-size: 18px; font-weight: bold;&#34;&gt;Thank you!&lt;/h4&gt;&lt;p style=&#34;text-align: center;&#34;&gt;We will contact you soon.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;input type=hidden id=lepopup-logic-fSxRzMVlJbpU9PWp value=[]&gt;&lt;/div&gt;&lt;div class=&#34;post-bottom-meta post-bottom-tags post-tags-classic&#34;&gt;&lt;div class=post-bottom-meta-title&gt;&lt;span class=tie-icon-tags aria-hidden=true&gt;&lt;/span&gt;Tags&lt;/div&gt;&lt;span class=tagcloud&gt;&lt;a href=https://www.javacodegeeks.com/tag/probabilistic-data-structures rel=tag&gt;Probabilistic Data Structures&lt;/a&gt; &lt;a href=https://www.javacodegeeks.com/tag/systems-design rel=tag&gt;Systems Design&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=post-extra-info&gt;&lt;div class=theiaStickySidebar&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=clearfix&gt;&lt;/div&gt;</description>
      <author>Eleftheria Drosopoulou</author>
      <guid>https://www.javacodegeeks.com/2026/04/probabilistic-data-structures-the-theory-behind-bloom-filters-hyperloglog-and-count-min-sketch.html</guid>
      <pubDate>Fri, 17 Apr 2026 05:44:00 +0000</pubDate>
    </item>
    <item>
      <title>Converting Between Byte Arrays and Short Arrays in Java</title>
      <link>https://www.javacodegeeks.com/converting-between-byte-arrays-and-short-arrays-in-java.html</link>
      <description>&lt;header class=entry-header-outer&gt;&lt;nav id=breadcrumb&gt;&lt;a href=https://www.javacodegeeks.com/&gt;&lt;span class=tie-icon-home aria-hidden=true&gt;&lt;/span&gt;Home&lt;/a&gt;&lt;em class=delimiter&gt;»&lt;/em&gt;&lt;a href=https://www.javacodegeeks.com/category/java&gt;Java&lt;/a&gt;&lt;em class=delimiter&gt;»&lt;/em&gt;&lt;a href=https://www.javacodegeeks.com/category/java/core-java&gt;Core Java&lt;/a&gt;&lt;em class=delimiter&gt;»&lt;/em&gt;&lt;span class=current&gt;Converting Between Byte Arrays and Short Arrays in Java&lt;/span&gt;&lt;/nav&gt;&lt;div class=entry-header&gt;&lt;span class=post-cat-wrap&gt;&lt;a class=&#34;post-cat tie-cat-7&#34; href=https://www.javacodegeeks.com/category/java/core-java&gt;Core Java&lt;/a&gt;&lt;/span&gt;&lt;h1 class=&#34;post-title entry-title&#34;&gt;Converting Between Byte Arrays and Short Arrays in Java&lt;/h1&gt;&lt;/div&gt;&lt;/header&gt;&lt;div class=&#34;entry-content entry clearfix&#34;&gt;&lt;div class=&#34;stream-item stream-item-above-post-content&#34;&gt;&lt;div class=stream-item-size&gt;&lt;div id=adngin-in-post-0 style=&#34;float:left; margin-right:20px; margin-bottom:10px; width:300px; height:274px;&#34;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;This article demonstrates how to convert a byte array to a short array and convert a short array back to a byte array in Java using the &lt;a href=https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html target=_blank rel=&#34;noreferrer noopener&#34;&gt;ByteBuffer&lt;/a&gt; class. The approach shown here provides an efficient way to handle binary data transformation while ensuring correct byte ordering and avoiding manual bit manipulation.&lt;h2 class=wp-block-heading&gt;1. Understanding the Conversion Approach&lt;/h2&gt;&lt;p&gt;A &lt;code&gt;byte&lt;/code&gt; represents eight bits, while a &lt;code&gt;short&lt;/code&gt; represents sixteen bits. This means each short value is formed from two consecutive bytes. The &lt;code&gt;ByteBuffer&lt;/code&gt; class in Java simplifies this conversion by allowing a byte array to be viewed as a short buffer. This enables direct reading and writing of short values without manual shifting operations. The correct byte order must be specified to ensure consistent results across different systems.&lt;h2 class=wp-block-heading&gt;2. Converting Byte Array to Short Array&lt;/h2&gt;&lt;p&gt;The code below shows how to convert a byte array into a short array using &lt;code&gt;ByteBuffer&lt;/code&gt; with little endian ordering.&lt;pre class=brush:java&gt;public class ByteToShortConverter {&#xA;&#xA;    public static short[] convertBytesToShorts(byte[] inputBytes) {&#xA;        if (inputBytes == null || inputBytes.length % 2 != 0) {&#xA;            throw new IllegalArgumentException(&amp;#34;Input byte array must not be null and must have even length&amp;#34;);&#xA;        }&#xA;&#xA;        short[] outputShorts = new short[inputBytes.length / 2];&#xA;&#xA;        ByteBuffer.wrap(inputBytes)&#xA;                .order(ByteOrder.LITTLE_ENDIAN)&#xA;                .asShortBuffer()&#xA;                .get(outputShorts);&#xA;&#xA;        return outputShorts;&#xA;    }&#xA;}&#xA;&lt;/pre&gt;&lt;p&gt;The code defines a utility method to convert a byte array to a short array. It validates that the input is not null and that its length is even, since each short is 2 bytes. A &lt;code&gt;ByteBuffer&lt;/code&gt; is created by wrapping the input array and setting the byte order to &lt;code&gt;LITTLE_ENDIAN&lt;/code&gt;. The buffer is then viewed as a short buffer, which allows the data to be directly read into a short array.&lt;div style=&#34;display:inline-block; margin: 15px 0;&#34;&gt;&lt;div id=adngin-JavaCodeGeeks_incontent_video-0 style=display:inline-block;&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;h2 class=wp-block-heading&gt;3. Converting Short Array to Byte Array&lt;/h2&gt;&lt;p&gt;This section shows how to convert a short array back into a byte array using &lt;code&gt;ByteBuffer&lt;/code&gt; with the same byte order.&lt;pre class=brush:java&gt;public class ShortToByteConverter {&#xA;&#xA;    public static byte[] convertShortsToBytes(short[] inputShorts) {&#xA;        if (inputShorts == null) {&#xA;            throw new IllegalArgumentException(&amp;#34;Input short array must not be null&amp;#34;);&#xA;        }&#xA;&#xA;        byte[] outputBytes = new byte[inputShorts.length * 2];&#xA;&#xA;        ByteBuffer.wrap(outputBytes)&#xA;                .order(ByteOrder.LITTLE_ENDIAN)&#xA;                .asShortBuffer()&#xA;                .put(inputShorts);&#xA;&#xA;        return outputBytes;&#xA;    }&#xA;}&#xA;&lt;/pre&gt;&lt;p&gt;The method converts a short array into a byte array by first allocating a byte array that is twice the size of the short array. A &lt;code&gt;ByteBuffer&lt;/code&gt; wraps the output array and is configured to use little-endian ordering. The short buffer view of the &lt;code&gt;ByteBuffer &lt;/code&gt;allows the short values to be written directly into the underlying byte array. This ensures that each short is correctly split into two bytes.&lt;p&gt;Below is an application that demonstrates both conversion directions and verifies the results.&lt;pre class=brush:java&gt;public class Application {&#xA;&#xA;    public static void main(String[] args) {&#xA;        byte[] initialBytes = new byte[]{0x01, 0x00, 0x02, 0x00, 0x03, 0x00};&#xA;&#xA;        short[] convertedShorts = ByteToShortConverter.convertBytesToShorts(initialBytes);&#xA;        byte[] finalBytes = ShortToByteConverter.convertShortsToBytes(convertedShorts);&#xA;&#xA;        IO.println(&amp;#34;Initial byte array: &amp;#34; + Arrays.toString(initialBytes));&#xA;        IO.println(&amp;#34;Converted short array: &amp;#34; + Arrays.toString(convertedShorts));&#xA;        IO.println(&amp;#34;Final byte array: &amp;#34; + Arrays.toString(finalBytes));&#xA;    }&#xA;}&#xA;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;pre class=brush:plain&gt;Initial byte array: [1, 0, 2, 0, 3, 0]&#xA;Converted short array: [1, 2, 3]&#xA;Final byte array: [1, 0, 2, 0, 3, 0]&#xA;&lt;/pre&gt;&lt;p&gt;The printed output confirms that the original byte array and the final reconstructed byte array are identical, demonstrating that the conversion process preserves data integrity.&lt;h2 class=wp-block-heading&gt;4. Endianness Considerations&lt;/h2&gt;&lt;p&gt;Endianness defines the order in which bytes are interpreted when forming larger data types. This implementation uses little-endian order, meaning the least significant byte is processed first. Both conversion methods must use the same byte order to ensure consistent and correct results. Changing the byte order requires updating both methods accordingly.&lt;h2 class=wp-block-heading&gt;5. Conclusion&lt;/h2&gt;&lt;p&gt;In this article, the process of converting between byte arrays and short arrays in Java was demonstrated using the &lt;code&gt;ByteBuffer&lt;/code&gt; class. The examples showed how to convert a &lt;code&gt;byte&lt;/code&gt; array into a &lt;code&gt;short&lt;/code&gt; array and how to reverse the process back into a &lt;code&gt;byte&lt;/code&gt; array while maintaining data integrity.&lt;h2 class=wp-block-heading&gt;6. Download the Source Code&lt;/h2&gt;&lt;p&gt;This article explained how to convert between byte arrays and short arrays in Java.&lt;div class=download&gt;&lt;strong&gt;Download&lt;/strong&gt;&lt;br&gt;You can download the full source code of this example here: &lt;a href=https://www.javacodegeeks.com/wp-content/uploads/2026/04/byte-short-array-converter.zip&gt;&lt;strong&gt;convert byte to short array in Java&lt;/strong&gt;&lt;/a&gt;&lt;/div&gt;&lt;style&gt;.lepopup-progress-60 div.lepopup-progress-t1&gt;div{background-color:#e0e0e0;}.lepopup-progress-60 div.lepopup-progress-t1&gt;div&gt;div{background-color:#bd4070;}.lepopup-progress-60 div.lepopup-progress-t1&gt;div&gt;div{color:#ffffff;}.lepopup-progress-60 div.lepopup-progress-t1&gt;label{color:#444444;}.lepopup-form-60, .lepopup-form-60 *, .lepopup-progress-60 {font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-signature-box span i{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#555555;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-signature-box,.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;text&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;email&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;password&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input select,.lepopup-form-60 .lepopup-element div.lepopup-input select option,.lepopup-form-60 .lepopup-element div.lepopup-input textarea{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#555555;font-style:normal;text-decoration:none;text-align:left;background-color:rgba(255, 255, 255, 0.7);background-image:none;border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow: inset 0px 0px 15px -7px #000000;}.lepopup-form-60 .lepopup-element div.lepopup-input ::placeholder{color:#555555; opacity: 0.9;} .lepopup-form-60 .lepopup-element div.lepopup-input ::-ms-input-placeholder{color:#555555; opacity: 0.9;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect::-webkit-scrollbar-thumb{background-color:#cccccc;}.lepopup-form-60 .lepopup-element div.lepopup-input&gt;i.lepopup-icon-left, .lepopup-form-60 .lepopup-element div.lepopup-input&gt;i.lepopup-icon-right{font-size:20px;color:#444444;border-radius:0px;}.lepopup-form-60 .lepopup-element .lepopup-button,.lepopup-form-60 .lepopup-element .lepopup-button:visited{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#ffffff;font-weight:700;font-style:normal;text-decoration:none;text-align:center;background-color:#326693;background-image:none;border-width:1px;border-style:solid;border-color:#326693;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element div.lepopup-input .lepopup-imageselect+label{border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element div.lepopup-input .lepopup-imageselect+label span.lepopup-imageselect-label{font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl:checked+label:after{background-color:rgba(255, 255, 255, 0.7);}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-classic+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-fa-check+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-square+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl+label{background-color:rgba(255, 255, 255, 0.7);border-color:#cccccc;color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-square:checked+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl:checked+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-classic+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-fa-check+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-dot+label{background-color:rgba(255, 255, 255, 0.7);border-color:#cccccc;color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-dot:checked+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect&gt;input[type=&#39;checkbox&#39;]+label:hover{background-color:#bd4070;color:#ffffff;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect&gt;input[type=&#39;checkbox&#39;]:checked+label{background-color:#a93a65;color:#ffffff;}.lepopup-form-60 .lepopup-element input[type=&#39;checkbox&#39;].lepopup-tile+label, .lepopup-form-60 .lepopup-element input[type=&#39;radio&#39;].lepopup-tile+label {font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:center;background-color:#ffffff;background-image:none;border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element-error{font-size:15px;color:#ffffff;font-style:normal;text-decoration:none;text-align:left;background-color:#d9534f;background-image:none;}.lepopup-form-60 .lepopup-element-2 {background-color:rgba(226, 236, 250, 1);background-image:none;border-width:1px;border-style:solid;border-color:rgba(216, 216, 216, 1);border-radius:3px;box-shadow: 1px 1px 15px -6px #d7e1eb;}.lepopup-form-60 .lepopup-element-3 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:26px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-3 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:26px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-3 .lepopup-element-html-content {min-height:73px;}.lepopup-form-60 .lepopup-element-4 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:19px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-4 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:19px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-4 .lepopup-element-html-content {min-height:23px;}.lepopup-form-60 .lepopup-element-5 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-5 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-5 .lepopup-element-html-content {min-height:24px;}.lepopup-form-60 .lepopup-element-6 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-6 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-6 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-7 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-7 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-7 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-8 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-8 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-8 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-9 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-9 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-9 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-10 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-10 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-10 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-11 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-11 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-11 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-12 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-12 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-12 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-13 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-13 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-13 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-14 div.lepopup-input .lepopup-icon-left, .lepopup-form-60 .lepopup-element-14 div.lepopup-input .lepopup-icon-right {line-height:36px;}.lepopup-form-60 .lepopup-element-15 div.lepopup-input{height:auto;line-height:1;}.lepopup-form-60 .lepopup-element-16 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:14px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-16 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:14px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-16 .lepopup-element-html-content {min-height:5px;}.lepopup-form-60 .lepopup-element-19 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#333333;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-19 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#333333;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-19 .lepopup-element-html-content {min-height:363px;}.lepopup-form-60 .lepopup-element-0 * {font-size:15px;color:#ffffff;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-0 {font-size:15px;color:#ffffff;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:#5cb85c;background-image:none;border-width:0px;border-style:solid;border-color:#ccc;border-radius:5px;box-shadow: 1px 1px 15px -6px #000000;padding-top:40px;padding-right:40px;padding-bottom:40px;padding-left:40px;}.lepopup-form-60 .lepopup-element-0 .lepopup-element-html-content {min-height:160px;}&lt;/style&gt;&lt;div class=lepopup-inline style=&#34;margin: 0 auto;&#34;&gt;&lt;div class=&#34;lepopup-form lepopup-form-60 lepopup-form-N4xZyV7Ml2dGX8Yo lepopup-form-icon-inside lepopup-form-position-middle-right&#34; data-session=0 data-id=N4xZyV7Ml2dGX8Yo data-form-id=60 data-slug=7lQM6oyWL5bTm5lw data-title=&#34;Under the Post Inline&#34; data-page=1 data-xd=off data-width=820 data-height=430 data-position=middle-right data-esc=off data-enter=on data-disable-scrollbar=off style=display:none;width:820px;height:430px; onclick=event.stopPropagation();&gt;&lt;div class=lepopup-form-inner style=width:820px;height:430px;&gt;&lt;div class=&#34;lepopup-element lepopup-element-2 lepopup-element-rectangle&#34; data-type=rectangle data-top=0 data-left=0 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:501;top:0px;left:0px;width:820px;height:430px;&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-3 lepopup-element-html&#34; data-type=html data-top=7 data-left=10 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:502;top:7px;left:10px;width:797px;height:73px;&gt;&lt;div class=lepopup-element-html-content&gt;Do you want to know how to develop your skillset to become a &lt;span style=&#34;color: #CAB43D; text-shadow: 1px 1px #835D5D;&#34;&gt;Java Rockstar?&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-4 lepopup-element-html&#34; data-type=html data-top=83 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:503;top:83px;left:308px;width:473px;height:23px;&gt;&lt;div class=lepopup-element-html-content&gt;Subscribe to our newsletter to start Rocking &lt;span style=&#34;text-decoration: underline;&#34;&gt;right now!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-5 lepopup-element-html&#34; data-type=html data-top=107 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:504;top:107px;left:308px;width:473px;height:24px;&gt;&lt;div class=lepopup-element-html-content&gt;To get you started we give you our best selling eBooks for &lt;span style=&#34;color:#e01404; text-shadow: 1px 1px #C99924; font-size: 15px;&#34;&gt;FREE!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-6 lepopup-element-html&#34; data-type=html data-top=136 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:505;top:136px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;1.&lt;/span&gt; JPA Mini Book&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-7 lepopup-element-html&#34; data-type=html data-top=156 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:506;top:156px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;2.&lt;/span&gt; JVM Troubleshooting Guide&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-8 lepopup-element-html&#34; data-type=html data-top=176 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:507;top:176px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;3.&lt;/span&gt; JUnit Tutorial for Unit Testing&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-9 lepopup-element-html&#34; data-type=html data-top=196 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:508;top:196px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;4.&lt;/span&gt; Java Annotations Tutorial&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-10 lepopup-element-html&#34; data-type=html data-top=216 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:509;top:216px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;5.&lt;/span&gt; Java Interview Questions&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-11 lepopup-element-html&#34; data-type=html data-top=236 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:510;top:236px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;6.&lt;/span&gt; Spring Interview Questions&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-12 lepopup-element-html&#34; data-type=html data-top=256 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:511;top:256px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;7.&lt;/span&gt; Android UI Design&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-13 lepopup-element-html&#34; data-type=html data-top=282 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:512;top:282px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;and many more ....&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-14&#34; data-type=email data-deps data-id=14 data-top=305 data-left=308 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:513;top:305px;left:308px;width:473px;height:36px;&gt;&lt;div class=lepopup-input&gt;&lt;input type=email name=lepopup-14 class=lepopup-ta-left placeholder=&#34;Enter your e-mail...&#34; autocomplete=email data-default aria-label=&#34;Email Field&#34; oninput=lepopup_input_changed(this); onfocus=lepopup_input_error_hide(this);&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-15&#34; data-type=checkbox data-deps data-id=15 data-top=344 data-left=308 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:514;top:344px;left:308px;width:160px;&gt;&lt;div class=&#34;lepopup-input lepopup-cr-layout-1 lepopup-cr-layout-left&#34;&gt;&lt;div class=&#34;lepopup-cr-container lepopup-cr-container-medium lepopup-cr-container-left&#34;&gt;&lt;div class=lepopup-cr-box&gt;&lt;input class=&#34;lepopup-checkbox lepopup-checkbox-classic lepopup-checkbox-medium&#34; type=checkbox name=lepopup-15[] id=lepopup-checkbox-fyNV8PigmGOAYtCD-14-0 value=on data-default=off onchange=lepopup_input_changed(this);&gt;&lt;label for=lepopup-checkbox-fyNV8PigmGOAYtCD-14-0 onclick=lepopup_input_error_hide(this);&gt;&lt;/label&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-cr-label lepopup-ta-left&#34;&gt;&lt;label for=lepopup-checkbox-fyNV8PigmGOAYtCD-14-0 onclick=lepopup_input_error_hide(this);&gt;&lt;/label&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-16 lepopup-element-html&#34; data-type=html data-top=344 data-left=338 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:515;top:344px;left:338px;width:350px;height:5px;&gt;&lt;div class=lepopup-element-html-content&gt;I agree to the &lt;a href=https://www.javacodegeeks.com/about/terms-of-use target=_blank&gt;Terms&lt;/a&gt; and &lt;a href=https://www.javacodegeeks.com/about/privacy-policy target=_blank&gt;Privacy Policy&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-17&#34; data-type=button data-top=372 data-left=308 data-animation-in=bounceIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:516;top:372px;left:308px;width:85px;height:37px;&gt;&lt;a class=&#34;lepopup-button lepopup-button-zoom-out&#34; href=https://www.javacodegeeks.com/feed/ onclick=&#34;return lepopup_submit(this);&#34; data-label=&#34;Sign up&#34; data-loading=Loading...&gt;&lt;span&gt;Sign up&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-19 lepopup-element-html&#34; data-type=html data-top=67 data-left=-15 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:518;top:67px;left:-15px;width:320px;height:363px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;img data-lazyloaded=1 src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png fetchpriority=high decoding=async data-src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png alt width=320 height=363&gt;&lt;noscript&gt;&lt;img fetchpriority=high decoding=async src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png alt width=320 height=363&gt;&lt;/noscript&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-form lepopup-form-60 lepopup-form-N4xZyV7Ml2dGX8Yo lepopup-form-icon-inside lepopup-form-position-middle-right&#34; data-session=0 data-id=N4xZyV7Ml2dGX8Yo data-form-id=60 data-slug=7lQM6oyWL5bTm5lw data-title=&#34;Under the Post Inline&#34; data-page=confirmation data-xd=off data-width=420 data-height=320 data-position=middle-right data-esc=off data-enter=on data-disable-scrollbar=off style=display:none;width:420px;height:320px; onclick=event.stopPropagation();&gt;&lt;div class=lepopup-form-inner style=width:420px;height:320px;&gt;&lt;div class=&#34;lepopup-element lepopup-element-0 lepopup-element-html&#34; data-type=html data-top=80 data-left=70 data-animation-in=bounceInDown data-animation-out=fadeOutUp style=animation-duration:1000ms;animation-delay:0ms;z-index:500;top:80px;left:70px;width:280px;height:160px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;h4 style=&#34;text-align: center; font-size: 18px; font-weight: bold;&#34;&gt;Thank you!&lt;/h4&gt;&lt;p style=&#34;text-align: center;&#34;&gt;We will contact you soon.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;input type=hidden id=lepopup-logic-N4xZyV7Ml2dGX8Yo value=[]&gt;&lt;/div&gt;&lt;div class=&#34;post-bottom-meta post-bottom-tags post-tags-classic&#34;&gt;&lt;div class=post-bottom-meta-title&gt;&lt;span class=tie-icon-tags aria-hidden=true&gt;&lt;/span&gt;Tags&lt;/div&gt;&lt;span class=tagcloud&gt;&lt;a href=https://www.javacodegeeks.com/tag/binary-conversion rel=tag&gt;binary conversion&lt;/a&gt; &lt;a href=https://www.javacodegeeks.com/tag/byte-array rel=tag&gt;Byte array&lt;/a&gt; &lt;a href=https://www.javacodegeeks.com/tag/bytebuffer rel=tag&gt;bytebuffer&lt;/a&gt; &lt;a href=https://www.javacodegeeks.com/tag/java rel=tag&gt;Java&lt;/a&gt; &lt;a href=https://www.javacodegeeks.com/tag/java-nio rel=tag&gt;java nio&lt;/a&gt; &lt;a href=https://www.javacodegeeks.com/tag/short-array rel=tag&gt;short array&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=post-extra-info&gt;&lt;div class=theiaStickySidebar&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=clearfix&gt;&lt;/div&gt;</description>
      <author>Omozegie Aziegbe</author>
      <guid>https://www.javacodegeeks.com/converting-between-byte-arrays-and-short-arrays-in-java.html</guid>
      <pubDate>Thu, 16 Apr 2026 18:46:27 +0000</pubDate>
    </item>
    <item>
      <title>Understanding Database Triggers</title>
      <link>https://www.javacodegeeks.com/understanding-database-triggers.html</link>
      <description>&lt;header class=entry-header-outer&gt;&lt;nav id=breadcrumb&gt;&lt;a href=https://www.javacodegeeks.com/&gt;&lt;span class=tie-icon-home aria-hidden=true&gt;&lt;/span&gt;Home&lt;/a&gt;&lt;em class=delimiter&gt;»&lt;/em&gt;&lt;a href=https://www.javacodegeeks.com/category/software-development&gt;Software Development&lt;/a&gt;&lt;em class=delimiter&gt;»&lt;/em&gt;&lt;span class=current&gt;Understanding Database Triggers&lt;/span&gt;&lt;/nav&gt;&lt;div class=entry-header&gt;&lt;span class=post-cat-wrap&gt;&lt;a class=&#34;post-cat tie-cat-15&#34; href=https://www.javacodegeeks.com/category/software-development&gt;Software Development&lt;/a&gt;&lt;/span&gt;&lt;h1 class=&#34;post-title entry-title&#34;&gt;Understanding Database Triggers&lt;/h1&gt;&lt;/div&gt;&lt;/header&gt;&lt;div class=&#34;entry-content entry clearfix&#34;&gt;&lt;div class=&#34;stream-item stream-item-above-post-content&#34;&gt;&lt;div class=stream-item-size&gt;&lt;div id=adngin-in-post-0 style=&#34;float:left; margin-right:20px; margin-bottom:10px; width:300px; height:274px;&#34;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Database triggers are powerful mechanisms that allow you to automatically execute predefined logic in response to specific events occurring in a database. They are widely used in enterprise systems to enforce business rules, maintain data integrity, automate workflows, and audit changes without requiring explicit calls from application code. In PostgreSQL, triggers are flexible, robust, and tightly integrated with procedural languages like PL/pgSQL. Let us delve into understanding what are database triggers practical intro with PostgreSQL examples, exploring how they work, why they are important, and how they can be effectively used in real-world scenarios.&lt;h2&gt;&lt;a name=section-1&gt;&lt;/a&gt;1. Trigger Definition and Overview&lt;/h2&gt;&lt;p&gt;A &lt;a href=https://en.wikipedia.org/wiki/Database_trigger target=_blank&gt;Database Trigger&lt;/a&gt; is a special kind of stored procedure that automatically runs when a specific event occurs on a table or view. Unlike regular functions that must be explicitly invoked, triggers are executed implicitly by the database engine, making them a powerful tool for enforcing rules, maintaining data consistency, and automating repetitive tasks directly at the data layer. Triggers help ensure that critical logic is consistently applied regardless of how the data is modified—whether through applications, scripts, or manual queries.&lt;h3&gt;1.1 Common Trigger Events in Databases&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;INSERT – Fired when new rows are added to a table&lt;li&gt;UPDATE – Fired when existing rows are modified&lt;li&gt;DELETE – Fired when rows are removed&lt;li&gt;TRUNCATE – Fired when all rows in a table are quickly removed&lt;/ul&gt;&lt;p&gt;These events define the points at which a trigger can intervene in the lifecycle of data changes, enabling fine-grained control over database operations.&lt;h3&gt;1.2 Internal Working of PostgreSQL Triggers&lt;/h3&gt;&lt;p&gt;A trigger in PostgreSQL consists of two main components: a trigger function, which contains the logic to execute, and a trigger definition, which specifies when and how the function runs. The workflow operates as follows: when an event occurs (such as an INSERT on a table), PostgreSQL checks for any triggers defined on that table, executes the matching triggers automatically in the defined order, and then the associated trigger function processes the data accordingly. Depending on the trigger type, this execution can happen either before or after the actual database operation, allowing developers to intercept, validate, modify, or react to changes seamlessly.&lt;h3&gt;1.3 Types of Triggers in PostgreSQL&lt;/h3&gt;&lt;h4&gt;1.3.1 BEFORE Trigger (Pre-Execution Logic)&lt;/h4&gt;&lt;p&gt;Executes before the operation is performed, and is typically used to validate data and modify incoming values before they are written to the database. BEFORE triggers are especially useful for enforcing constraints, normalizing data formats, setting default values, or rejecting invalid transactions by raising exceptions.&lt;h4&gt;1.3.2 AFTER Trigger (Post-Execution Actions)&lt;/h4&gt;&lt;p&gt;Executes after the operation is completed, and is commonly used for logging changes and sending notifications based on the completed database action. AFTER triggers are ideal when the operation must succeed first, such as writing audit logs, updating related tables, or triggering downstream processes.&lt;h4&gt;1.3.3 INSTEAD OF Trigger (View-Based Operations)&lt;/h4&gt;&lt;p&gt;Used primarily with views to replace the default operation. Since views do not always support direct data modification, INSTEAD OF triggers allow developers to define custom logic that determines how INSERT, UPDATE, or DELETE operations should be handled. This is particularly useful for making complex or joined views behave like updatable tables.&lt;h3&gt;1.4 Row-Level vs Statement-Level Triggers&lt;/h3&gt;&lt;p&gt;PostgreSQL allows triggers to be executed at two different granularities: row-level and statement-level. Understanding this distinction is crucial for both performance and correctness.&lt;h4&gt;1.4.1 Row-Level Triggers (FOR EACH ROW)&lt;/h4&gt;&lt;p&gt;Row-level triggers execute once for every affected row in a table operation.&lt;ul&gt;&lt;li&gt;Triggered individually for each row being inserted, updated, or deleted&lt;li&gt;Access to &lt;code&gt;OLD&lt;/code&gt; and &lt;code&gt;NEW&lt;/code&gt; row values&lt;li&gt;Ideal for validations, auditing, and row-specific transformations&lt;/ul&gt;&lt;pre class=&#34;brush:sql; wrap-lines:false;&#34;&gt;CREATE TRIGGER row_level_trigger&#xA;BEFORE UPDATE ON employees&#xA;FOR EACH ROW&#xA;EXECUTE FUNCTION log_salary_update();&#xA;&lt;/pre&gt;&lt;p&gt;If an UPDATE affects 100 rows, the trigger runs 100 times.&lt;h4&gt;1.4.2 Statement-Level Triggers (FOR EACH STATEMENT)&lt;/h4&gt;&lt;p&gt;Statement-level triggers execute once per SQL statement, regardless of how many rows are affected.&lt;div style=&#34;display:inline-block; margin: 15px 0;&#34;&gt;&lt;div id=adngin-JavaCodeGeeks_incontent_video-0 style=display:inline-block;&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;ul&gt;&lt;li&gt;Triggered only once per operation (INSERT/UPDATE/DELETE)&lt;li&gt;No direct access to individual row values (&lt;code&gt;OLD&lt;/code&gt;/&lt;code&gt;NEW&lt;/code&gt; not available)&lt;li&gt;Best suited for logging, batching, or aggregate-level operations&lt;/ul&gt;&lt;pre class=&#34;brush:sql; wrap-lines:false;&#34;&gt;CREATE TRIGGER statement_level_trigger&#xA;AFTER UPDATE ON employees&#xA;FOR EACH STATEMENT&#xA;EXECUTE FUNCTION log_update_summary();&#xA;&lt;/pre&gt;&lt;p&gt;If an UPDATE affects 100 rows, the trigger runs only once.&lt;h4&gt;1.4.3 Key Differences&lt;/h4&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Aspect&lt;th&gt;Row-Level Trigger&lt;th&gt;Statement-Level Trigger&lt;tr&gt;&lt;td&gt;Execution&lt;td&gt;Once per row&lt;td&gt;Once per statement&lt;tr&gt;&lt;td&gt;Access to data&lt;td&gt;&lt;code&gt;OLD&lt;/code&gt; and &lt;code&gt;NEW&lt;/code&gt; available&lt;td&gt;Not directly available&lt;tr&gt;&lt;td&gt;Performance&lt;td&gt;Slower for bulk operations&lt;td&gt;More efficient for large datasets&lt;tr&gt;&lt;td&gt;Use cases&lt;td&gt;Auditing, validation, transformations&lt;td&gt;Logging, summaries, batch operations&lt;/table&gt;&lt;h4&gt;1.4.4 When to Use Which?&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;Use row-level triggers when logic depends on individual row values.&lt;li&gt;Use statement-level triggers when you only care about the operation as a whole.&lt;li&gt;For bulk updates, prefer statement-level triggers to avoid performance overhead.&lt;/ul&gt;&lt;h3&gt;1.5 When to Use Database Triggers (Best Use Cases)&lt;/h3&gt;&lt;p&gt;Triggers are particularly useful in scenarios where logic must be enforced consistently at the database level, regardless of how the data is accessed or modified. They help centralize critical operations and reduce dependency on application code.&lt;ul&gt;&lt;li&gt;Enforcing business rules at the database level – Ensure constraints and validations are always applied, even if multiple applications interact with the database.&lt;li&gt;Auditing changes (who updated what and when) – Automatically track modifications by capturing old and new values along with timestamps for compliance and traceability.&lt;li&gt;Maintaining derived or aggregate data – Keep summary tables, counters, or calculated fields in sync without manual intervention.&lt;li&gt;Automating repetitive logic – Eliminate boilerplate operations such as setting timestamps, default values, or status flags.&lt;li&gt;Ensuring data consistency across related tables – Automatically propagate changes or enforce referential logic beyond standard constraints.&lt;li&gt;Implementing lightweight workflows – Trigger secondary actions like inserting into queue tables or event logs for downstream processing.&lt;/ul&gt;&lt;h3&gt;1.6 When to Avoid Database Triggers (Limitations and Trade-offs)&lt;/h3&gt;&lt;p&gt;While powerful, triggers should be used judiciously. Overusing them or embedding complex logic can lead to maintenance challenges and unexpected behavior.&lt;ul&gt;&lt;li&gt;Logic becomes too complex and hard to debug – Triggers execute implicitly, making it difficult to trace execution flow and diagnose issues.&lt;li&gt;Performance is critical and triggers introduce latency – Additional processing on each operation can impact throughput, especially on high-traffic tables.&lt;li&gt;Business logic is better handled at the application layer – Complex workflows, integrations, or user-specific rules are often clearer and more maintainable in application code.&lt;li&gt;Hidden side effects make the system harder to understand – Implicit execution can lead to unexpected outcomes if developers are unaware of existing triggers.&lt;li&gt;Bulk operations or large data migrations – Triggers can significantly slow down batch processing unless explicitly disabled.&lt;li&gt;Tight coupling between database logic and schema – Changes to table structures may require careful updates to dependent triggers.&lt;/ul&gt;&lt;h3&gt;1.7 Managing Triggers in PostgreSQL&lt;/h3&gt;&lt;p&gt;Managing triggers in PostgreSQL involves creating, viewing, modifying, enabling, and disabling them as needed. Proper trigger management is essential to ensure maintainability, performance, and clarity in database operations.&lt;h4&gt;1.7.1 Creating Triggers&lt;/h4&gt;&lt;p&gt;The following statement creates a trigger that executes before an INSERT operation on a specified table. The trigger is defined to run for each row affected by the operation and invokes a predefined trigger function.&lt;pre class=&#34;brush:sql; wrap-lines:false;&#34;&gt;CREATE TRIGGER trigger_name&#xA;BEFORE INSERT ON table_name&#xA;FOR EACH ROW&#xA;EXECUTE FUNCTION function_name();&#xA;&lt;/pre&gt;&lt;h4&gt;1.7.2 Viewing Existing Triggers&lt;/h4&gt;&lt;p&gt;To list all triggers defined in the database, you can query the information schema. This helps in auditing and understanding existing trigger configurations.&lt;pre class=&#34;brush:sql; wrap-lines:false;&#34;&gt;SELECT * FROM information_schema.triggers;&#xA;&lt;/pre&gt;&lt;h4&gt;1.7.3 Dropping Triggers&lt;/h4&gt;&lt;p&gt;If a trigger is no longer needed, it can be removed using the DROP TRIGGER statement. This permanently deletes the trigger from the specified table.&lt;pre class=&#34;brush:sql; wrap-lines:false;&#34;&gt;DROP TRIGGER trigger_name ON table_name;&#xA;&lt;/pre&gt;&lt;h4&gt;1.7.4 Enabling and Disabling Triggers&lt;/h4&gt;&lt;p&gt;Triggers can be temporarily disabled or re-enabled without being deleted. This is particularly useful during bulk data operations or migrations where trigger execution may not be desirable.&lt;pre class=&#34;brush:sql; wrap-lines:false;&#34;&gt;ALTER TABLE table_name DISABLE TRIGGER trigger_name;&#xA;ALTER TABLE table_name ENABLE TRIGGER trigger_name;&#xA;&lt;/pre&gt;&lt;h2&gt;&lt;a name=section-2&gt;&lt;/a&gt;2. PostgreSQL Triggers Code Example&lt;/h2&gt;&lt;h3&gt;2.1 Environment Setup: Running PostgreSQL with Docker&lt;/h3&gt;&lt;p&gt;To get started quickly with PostgreSQL for this example, you can run it using Docker, which provides an isolated and reproducible environment without requiring a local installation. First, ensure Docker is installed on your system, then pull and run the official PostgreSQL image using a command such as &lt;code&gt;docker run --name postgres-triggers -e POSTGRES_USER=admin -e POSTGRES_PASSWORD=admin -e POSTGRES_DB=testdb -p 5432:5432 -d postgres&lt;/code&gt;, which creates a container with a default user, password, and database while exposing port 5432 for local access. Once the container is running, you can connect to PostgreSQL using tools like psql, DBeaver, or pgAdmin by providing the host as localhost, port 5432, and the configured credentials.&lt;p&gt;After connecting, you can create tables, define trigger functions, and execute all the SQL examples provided in this tutorial. Using Docker ensures consistency across environments, simplifies setup, and allows you to easily start, stop, or reset your database instance as needed during development and testing.&lt;h3&gt;2.2 End-to-End Trigger Implementation Example&lt;/h3&gt;&lt;pre class=&#34;brush:sql; wrap-lines:false;&#34;&gt;### Step 1: Create a Table&#xA;CREATE TABLE employees (&#xA;    id SERIAL PRIMARY KEY,&#xA;    name TEXT,&#xA;    salary NUMERIC,&#xA;    updated_at TIMESTAMP&#xA;);&#xA;&#xA;### Step 2: Create an Audit Table&#xA;CREATE TABLE employee_audit (&#xA;    audit_id SERIAL PRIMARY KEY,&#xA;    employee_id INT,&#xA;    old_salary NUMERIC,&#xA;    new_salary NUMERIC,&#xA;    changed_at TIMESTAMP&#xA;);&#xA;&#xA;### Step 3: Create Trigger Function&#xA;CREATE OR REPLACE FUNCTION log_salary_update()&#xA;RETURNS TRIGGER AS $$&#xA;BEGIN&#xA;    IF NEW.salary &amp;lt;&amp;gt; OLD.salary THEN&#xA;        INSERT INTO employee_audit(employee_id, old_salary, new_salary, changed_at)&#xA;        VALUES (OLD.id, OLD.salary, NEW.salary, NOW());&#xA;    END IF;&#xA;    &#xA;    NEW.updated_at = NOW();&#xA;    RETURN NEW;&#xA;END;&#xA;$$ LANGUAGE plpgsql;&#xA;&#xA;### Step 4: Create Trigger&#xA;CREATE TRIGGER salary_update_trigger&#xA;BEFORE UPDATE ON employees&#xA;FOR EACH ROW&#xA;EXECUTE FUNCTION log_salary_update();&#xA;&lt;/pre&gt;&lt;p&gt;The code demonstrates a complete PostgreSQL trigger setup: first, an employees table is created to store employee details including salary and a timestamp field, followed by an employee_audit table designed to log salary changes for auditing purposes; next, a trigger function log_salary_update() is defined using PL/pgSQL, which checks if the salary has changed during an update by comparing OLD and NEW values, and if so, inserts a record into the audit table capturing the employee ID, old salary, new salary, and the change timestamp, while also updating the updated_at field automatically; finally, a trigger named salary_update_trigger is created to execute this function before any update on the employees table for each row, ensuring that all salary changes are tracked and timestamps are consistently maintained without requiring manual intervention.&lt;h3&gt;2.3 Testing Trigger Behavior&lt;/h3&gt;&lt;pre class=&#34;brush:sql; wrap-lines:false;&#34;&gt;### Insert Data&#xA;INSERT INTO employees(name, salary) VALUES (&amp;#39;Alice&amp;#39;, 50000);&#xA;&#xA;### Update Salary&#xA;UPDATE employees SET salary = 60000 WHERE name = &amp;#39;Alice&amp;#39;;&#xA;&lt;/pre&gt;&lt;p&gt;The above SQL statements demonstrate how the trigger works in practice: first, a new record is inserted into the employees table for an employee named Alice with an initial salary, and then an update operation modifies her salary; when the update statement is executed, the previously defined trigger automatically fires before the update, compares the old and new salary values, logs the change into the employee_audit table if the salary has been modified, and updates the timestamp field, thereby ensuring that all salary changes are tracked seamlessly without requiring any additional manual logic in the application.&lt;h3&gt;2.4 Trigger Execution Output and Analysis&lt;/h3&gt;&lt;pre class=&#34;brush:plain; wrap-lines:false;&#34;&gt;### Employees Table&#xA;&#xA;| id | name  | salary | updated_at          |&#xA;| -- | -- |  | - |&#xA;| 1  | Alice | 60000  | 2026-04-10 10:00:00 |&#xA;&#xA;### Employee Audit Table&#xA;&#xA;| audit_id | employee_id | old_salary | new_salary | changed_at          |&#xA;| -- | -- | - | - | - |&#xA;| 1        | 1           | 50000      | 60000      | 2026-04-10 10:00:00 |&#xA;&lt;/pre&gt;&lt;p&gt;The output illustrates the effect of the trigger after executing the insert and update operations: in the employees table, Alice’s salary has been successfully updated from 50000 to 60000, and the updated_at column reflects the timestamp automatically set by the trigger function during the update; simultaneously, the employee_audit table contains a new record capturing the change, including the employee ID, old salary, new salary, and the exact time of modification, demonstrating how the trigger ensures automatic auditing of salary changes without requiring any explicit logging logic in the application.&lt;h2&gt;&lt;a name=section-3&gt;&lt;/a&gt;3. Conclusion&lt;/h2&gt;&lt;p&gt;Database triggers in PostgreSQL provide a powerful way to automate logic and enforce rules directly at the data layer. They are especially useful for auditing, validation, and maintaining consistency across operations. However, they should be used thoughtfully. Overusing triggers or embedding complex logic within them can make systems harder to maintain and debug. A balanced approach—combining triggers with application-level logic—is often the most effective strategy. With a clear understanding of how triggers work and when to use them, you can design more robust and reliable database systems.&lt;/p&gt;&lt;style&gt;.lepopup-progress-60 div.lepopup-progress-t1&gt;div{background-color:#e0e0e0;}.lepopup-progress-60 div.lepopup-progress-t1&gt;div&gt;div{background-color:#bd4070;}.lepopup-progress-60 div.lepopup-progress-t1&gt;div&gt;div{color:#ffffff;}.lepopup-progress-60 div.lepopup-progress-t1&gt;label{color:#444444;}.lepopup-form-60, .lepopup-form-60 *, .lepopup-progress-60 {font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-signature-box span i{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#555555;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-signature-box,.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;text&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;email&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;password&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input select,.lepopup-form-60 .lepopup-element div.lepopup-input select option,.lepopup-form-60 .lepopup-element div.lepopup-input textarea{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#555555;font-style:normal;text-decoration:none;text-align:left;background-color:rgba(255, 255, 255, 0.7);background-image:none;border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow: inset 0px 0px 15px -7px #000000;}.lepopup-form-60 .lepopup-element div.lepopup-input ::placeholder{color:#555555; opacity: 0.9;} .lepopup-form-60 .lepopup-element div.lepopup-input ::-ms-input-placeholder{color:#555555; opacity: 0.9;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect::-webkit-scrollbar-thumb{background-color:#cccccc;}.lepopup-form-60 .lepopup-element div.lepopup-input&gt;i.lepopup-icon-left, .lepopup-form-60 .lepopup-element div.lepopup-input&gt;i.lepopup-icon-right{font-size:20px;color:#444444;border-radius:0px;}.lepopup-form-60 .lepopup-element .lepopup-button,.lepopup-form-60 .lepopup-element .lepopup-button:visited{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#ffffff;font-weight:700;font-style:normal;text-decoration:none;text-align:center;background-color:#326693;background-image:none;border-width:1px;border-style:solid;border-color:#326693;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element div.lepopup-input .lepopup-imageselect+label{border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element div.lepopup-input .lepopup-imageselect+label span.lepopup-imageselect-label{font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl:checked+label:after{background-color:rgba(255, 255, 255, 0.7);}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-classic+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-fa-check+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-square+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl+label{background-color:rgba(255, 255, 255, 0.7);border-color:#cccccc;color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-square:checked+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl:checked+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-classic+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-fa-check+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-dot+label{background-color:rgba(255, 255, 255, 0.7);border-color:#cccccc;color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-dot:checked+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect&gt;input[type=&#39;checkbox&#39;]+label:hover{background-color:#bd4070;color:#ffffff;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect&gt;input[type=&#39;checkbox&#39;]:checked+label{background-color:#a93a65;color:#ffffff;}.lepopup-form-60 .lepopup-element input[type=&#39;checkbox&#39;].lepopup-tile+label, .lepopup-form-60 .lepopup-element input[type=&#39;radio&#39;].lepopup-tile+label {font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:center;background-color:#ffffff;background-image:none;border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element-error{font-size:15px;color:#ffffff;font-style:normal;text-decoration:none;text-align:left;background-color:#d9534f;background-image:none;}.lepopup-form-60 .lepopup-element-2 {background-color:rgba(226, 236, 250, 1);background-image:none;border-width:1px;border-style:solid;border-color:rgba(216, 216, 216, 1);border-radius:3px;box-shadow: 1px 1px 15px -6px #d7e1eb;}.lepopup-form-60 .lepopup-element-3 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:26px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-3 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:26px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-3 .lepopup-element-html-content {min-height:73px;}.lepopup-form-60 .lepopup-element-4 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:19px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-4 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:19px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-4 .lepopup-element-html-content {min-height:23px;}.lepopup-form-60 .lepopup-element-5 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-5 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-5 .lepopup-element-html-content {min-height:24px;}.lepopup-form-60 .lepopup-element-6 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-6 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-6 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-7 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-7 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-7 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-8 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-8 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-8 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-9 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-9 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-9 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-10 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-10 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-10 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-11 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-11 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-11 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-12 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-12 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-12 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-13 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-13 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-13 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-14 div.lepopup-input .lepopup-icon-left, .lepopup-form-60 .lepopup-element-14 div.lepopup-input .lepopup-icon-right {line-height:36px;}.lepopup-form-60 .lepopup-element-15 div.lepopup-input{height:auto;line-height:1;}.lepopup-form-60 .lepopup-element-16 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:14px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-16 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:14px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-16 .lepopup-element-html-content {min-height:5px;}.lepopup-form-60 .lepopup-element-19 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#333333;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-19 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#333333;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-19 .lepopup-element-html-content {min-height:363px;}.lepopup-form-60 .lepopup-element-0 * {font-size:15px;color:#ffffff;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-0 {font-size:15px;color:#ffffff;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:#5cb85c;background-image:none;border-width:0px;border-style:solid;border-color:#ccc;border-radius:5px;box-shadow: 1px 1px 15px -6px #000000;padding-top:40px;padding-right:40px;padding-bottom:40px;padding-left:40px;}.lepopup-form-60 .lepopup-element-0 .lepopup-element-html-content {min-height:160px;}&lt;/style&gt;&lt;div class=lepopup-inline style=&#34;margin: 0 auto;&#34;&gt;&lt;div class=&#34;lepopup-form lepopup-form-60 lepopup-form-sc6NSoKF1ra86TZ4 lepopup-form-icon-inside lepopup-form-position-middle-right&#34; data-session=0 data-id=sc6NSoKF1ra86TZ4 data-form-id=60 data-slug=7lQM6oyWL5bTm5lw data-title=&#34;Under the Post Inline&#34; data-page=1 data-xd=off data-width=820 data-height=430 data-position=middle-right data-esc=off data-enter=on data-disable-scrollbar=off style=display:none;width:820px;height:430px; onclick=event.stopPropagation();&gt;&lt;div class=lepopup-form-inner style=width:820px;height:430px;&gt;&lt;div class=&#34;lepopup-element lepopup-element-2 lepopup-element-rectangle&#34; data-type=rectangle data-top=0 data-left=0 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:501;top:0px;left:0px;width:820px;height:430px;&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-3 lepopup-element-html&#34; data-type=html data-top=7 data-left=10 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:502;top:7px;left:10px;width:797px;height:73px;&gt;&lt;div class=lepopup-element-html-content&gt;Do you want to know how to develop your skillset to become a &lt;span style=&#34;color: #CAB43D; text-shadow: 1px 1px #835D5D;&#34;&gt;Java Rockstar?&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-4 lepopup-element-html&#34; data-type=html data-top=83 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:503;top:83px;left:308px;width:473px;height:23px;&gt;&lt;div class=lepopup-element-html-content&gt;Subscribe to our newsletter to start Rocking &lt;span style=&#34;text-decoration: underline;&#34;&gt;right now!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-5 lepopup-element-html&#34; data-type=html data-top=107 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:504;top:107px;left:308px;width:473px;height:24px;&gt;&lt;div class=lepopup-element-html-content&gt;To get you started we give you our best selling eBooks for &lt;span style=&#34;color:#e01404; text-shadow: 1px 1px #C99924; font-size: 15px;&#34;&gt;FREE!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-6 lepopup-element-html&#34; data-type=html data-top=136 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:505;top:136px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;1.&lt;/span&gt; JPA Mini Book&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-7 lepopup-element-html&#34; data-type=html data-top=156 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:506;top:156px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;2.&lt;/span&gt; JVM Troubleshooting Guide&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-8 lepopup-element-html&#34; data-type=html data-top=176 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:507;top:176px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;3.&lt;/span&gt; JUnit Tutorial for Unit Testing&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-9 lepopup-element-html&#34; data-type=html data-top=196 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:508;top:196px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;4.&lt;/span&gt; Java Annotations Tutorial&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-10 lepopup-element-html&#34; data-type=html data-top=216 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:509;top:216px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;5.&lt;/span&gt; Java Interview Questions&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-11 lepopup-element-html&#34; data-type=html data-top=236 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:510;top:236px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;6.&lt;/span&gt; Spring Interview Questions&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-12 lepopup-element-html&#34; data-type=html data-top=256 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:511;top:256px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;7.&lt;/span&gt; Android UI Design&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-13 lepopup-element-html&#34; data-type=html data-top=282 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:512;top:282px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;and many more ....&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-14&#34; data-type=email data-deps data-id=14 data-top=305 data-left=308 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:513;top:305px;left:308px;width:473px;height:36px;&gt;&lt;div class=lepopup-input&gt;&lt;input type=email name=lepopup-14 class=lepopup-ta-left placeholder=&#34;Enter your e-mail...&#34; autocomplete=email data-default aria-label=&#34;Email Field&#34; oninput=lepopup_input_changed(this); onfocus=lepopup_input_error_hide(this);&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-15&#34; data-type=checkbox data-deps data-id=15 data-top=344 data-left=308 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:514;top:344px;left:308px;width:160px;&gt;&lt;div class=&#34;lepopup-input lepopup-cr-layout-1 lepopup-cr-layout-left&#34;&gt;&lt;div class=&#34;lepopup-cr-container lepopup-cr-container-medium lepopup-cr-container-left&#34;&gt;&lt;div class=lepopup-cr-box&gt;&lt;input class=&#34;lepopup-checkbox lepopup-checkbox-classic lepopup-checkbox-medium&#34; type=checkbox name=lepopup-15[] id=lepopup-checkbox-jGgP6j4x21qhdTa7-14-0 value=on data-default=off onchange=lepopup_input_changed(this);&gt;&lt;label for=lepopup-checkbox-jGgP6j4x21qhdTa7-14-0 onclick=lepopup_input_error_hide(this);&gt;&lt;/label&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-cr-label lepopup-ta-left&#34;&gt;&lt;label for=lepopup-checkbox-jGgP6j4x21qhdTa7-14-0 onclick=lepopup_input_error_hide(this);&gt;&lt;/label&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-16 lepopup-element-html&#34; data-type=html data-top=344 data-left=338 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:515;top:344px;left:338px;width:350px;height:5px;&gt;&lt;div class=lepopup-element-html-content&gt;I agree to the &lt;a href=https://www.javacodegeeks.com/about/terms-of-use target=_blank&gt;Terms&lt;/a&gt; and &lt;a href=https://www.javacodegeeks.com/about/privacy-policy target=_blank&gt;Privacy Policy&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-17&#34; data-type=button data-top=372 data-left=308 data-animation-in=bounceIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:516;top:372px;left:308px;width:85px;height:37px;&gt;&lt;a class=&#34;lepopup-button lepopup-button-zoom-out&#34; href=https://www.javacodegeeks.com/feed/ onclick=&#34;return lepopup_submit(this);&#34; data-label=&#34;Sign up&#34; data-loading=Loading...&gt;&lt;span&gt;Sign up&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-19 lepopup-element-html&#34; data-type=html data-top=67 data-left=-15 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:518;top:67px;left:-15px;width:320px;height:363px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;img data-lazyloaded=1 src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png fetchpriority=high decoding=async data-src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png alt width=320 height=363&gt;&lt;noscript&gt;&lt;img fetchpriority=high decoding=async src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png alt width=320 height=363&gt;&lt;/noscript&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-form lepopup-form-60 lepopup-form-sc6NSoKF1ra86TZ4 lepopup-form-icon-inside lepopup-form-position-middle-right&#34; data-session=0 data-id=sc6NSoKF1ra86TZ4 data-form-id=60 data-slug=7lQM6oyWL5bTm5lw data-title=&#34;Under the Post Inline&#34; data-page=confirmation data-xd=off data-width=420 data-height=320 data-position=middle-right data-esc=off data-enter=on data-disable-scrollbar=off style=display:none;width:420px;height:320px; onclick=event.stopPropagation();&gt;&lt;div class=lepopup-form-inner style=width:420px;height:320px;&gt;&lt;div class=&#34;lepopup-element lepopup-element-0 lepopup-element-html&#34; data-type=html data-top=80 data-left=70 data-animation-in=bounceInDown data-animation-out=fadeOutUp style=animation-duration:1000ms;animation-delay:0ms;z-index:500;top:80px;left:70px;width:280px;height:160px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;h4 style=&#34;text-align: center; font-size: 18px; font-weight: bold;&#34;&gt;Thank you!&lt;/h4&gt;&lt;p style=&#34;text-align: center;&#34;&gt;We will contact you soon.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;input type=hidden id=lepopup-logic-sc6NSoKF1ra86TZ4 value=[]&gt;&lt;/div&gt;&lt;div class=&#34;post-bottom-meta post-bottom-tags post-tags-classic&#34;&gt;&lt;div class=post-bottom-meta-title&gt;&lt;span class=tie-icon-tags aria-hidden=true&gt;&lt;/span&gt;Tags&lt;/div&gt;&lt;span class=tagcloud&gt;&lt;a href=https://www.javacodegeeks.com/tag/database rel=tag&gt;Database&lt;/a&gt; &lt;a href=https://www.javacodegeeks.com/tag/postgresql rel=tag&gt;PostgreSQL&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=post-extra-info&gt;&lt;div class=theiaStickySidebar&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=clearfix&gt;&lt;/div&gt;</description>
      <author>Yatin Batra</author>
      <guid>https://www.javacodegeeks.com/understanding-database-triggers.html</guid>
      <pubDate>Thu, 16 Apr 2026 18:33:34 +0000</pubDate>
    </item>
    <item>
      <title>[DEALS] Microsoft Visual Studio Professional 2022 + The Premium Learn to Code Certification Bundle (98% off) &amp; Other Deals Up To 98% Off</title>
      <link>https://www.javacodegeeks.com/2026/04/deals-microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-98-off-other-deals-up-to-98-off-2.html</link>
      <description>&lt;header class=entry-header-outer&gt;&lt;nav id=breadcrumb&gt;&lt;a href=https://www.javacodegeeks.com/&gt;&lt;span class=tie-icon-home aria-hidden=true&gt;&lt;/span&gt;Home&lt;/a&gt;&lt;em class=delimiter&gt;»&lt;/em&gt;&lt;a href=https://www.javacodegeeks.com/category/meta-jcg&gt;Meta JCG&lt;/a&gt;&lt;em class=delimiter&gt;»&lt;/em&gt;&lt;span class=current&gt;[DEALS] Microsoft Visual Studio Professional 2022 + The Premium Learn to Code Certification Bundle (98% off) &amp;amp; Other Deals Up To 98% Off&lt;/span&gt;&lt;/nav&gt;&lt;div class=entry-header&gt;&lt;span class=post-cat-wrap&gt;&lt;a class=&#34;post-cat tie-cat-16&#34; href=https://www.javacodegeeks.com/category/meta-jcg&gt;Meta JCG&lt;/a&gt;&lt;/span&gt;&lt;h1 class=&#34;post-title entry-title&#34;&gt;[DEALS] Microsoft Visual Studio Professional 2022 + The Premium Learn to Code Certification Bundle (98% off) &amp;amp; Other Deals Up To 98% Off&lt;/h1&gt;&lt;/div&gt;&lt;/header&gt;&lt;div class=&#34;entry-content entry clearfix&#34;&gt;&lt;p&gt;Hello fellow geeks,&lt;p&gt;Fresh offers await you on our &lt;a href=https://deals.javacodegeeks.com/&gt;Deals store&lt;/a&gt;, please have a look!&lt;table width=600 cellpadding=0 cellspacing=0 border=0 align=center bgcolor=#ffffff style=&#34;width: 600px;max-width:600px;margin: 0 auto&#34;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan=2 align=center style=&#34;border-bottom: 0&#34;&gt;&lt;a class=campaign-sale-link href=&#34;http://deals.javacodegeeks.com/sales/microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2?utm_source=JVG&amp;amp;utm_medium=referral&amp;amp;utm_campaign=2026-04-16_JVG_microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&amp;amp;utm_content=microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&#34;&gt;&lt;img data-lazyloaded=1 src=https://cdnp3.stackassets.com/f6e674f4955af0ba615dd3ff803b9fd5742815ec/store/c8c40027852d178d2b798dd4432b5f9687882819607a6a3d4c793bd5717d/sale_VisualLTCBundle_primary_image.jpg decoding=async width=600 style=&#34;padding-top: 15px&#34; class=test-email-main-image alt data-src=https://cdnp3.stackassets.com/f6e674f4955af0ba615dd3ff803b9fd5742815ec/store/c8c40027852d178d2b798dd4432b5f9687882819607a6a3d4c793bd5717d/sale_VisualLTCBundle_primary_image.jpg&gt;&lt;noscript&gt;&lt;img decoding=async width=600 style=&#34;padding-top: 15px&#34; class=test-email-main-image alt src=https://cdnp3.stackassets.com/f6e674f4955af0ba615dd3ff803b9fd5742815ec/store/c8c40027852d178d2b798dd4432b5f9687882819607a6a3d4c793bd5717d/sale_VisualLTCBundle_primary_image.jpg&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;tr&gt;&lt;tr&gt;&lt;td style=&#34;border-top: 0;border-bottom: 0&#34; valign=top colspan=2&gt;&lt;p style=&#34;font-size: 26px;color: #222222;line-height: 120%;margin-top: 0;margin-bottom: 15px;width: 425px&#34;&gt;&lt;strong&gt;&lt;br&gt;&lt;a class=campaign-sale-link style=&#34;color: #222222;text-decoration: none&#34; href=&#34;http://deals.javacodegeeks.com/sales/microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2?utm_source=JVG&amp;amp;utm_medium=referral&amp;amp;utm_campaign=2026-04-16_JVG_microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&amp;amp;utm_content=microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&#34;&gt;Microsoft Visual Studio Professional 2022 + The Premium Learn to Code Certification Bundle&lt;/a&gt;&lt;br&gt;&lt;span style=&#34;color: #00B0FF&#34;&gt;(98% off)&lt;/span&gt;&lt;br&gt;&lt;/strong&gt;&lt;p style=&#34;font-size: 14px;font-weight: 100;color: #666;line-height: 110%;margin-top: 0&#34;&gt;&lt;img data-lazyloaded=1 src=https://admin.stackcommerce.com/assets/mail/icon-clock-ce3479938622cf856e31d6366f64c3bdb482ad6b8298264cb66e4493f777938a.jpg decoding=async style=&#34;padding-right: 5px;position:relative;top: 3px&#34; data-src=https://admin.stackcommerce.com/assets/mail/icon-clock-ce3479938622cf856e31d6366f64c3bdb482ad6b8298264cb66e4493f777938a.jpg&gt;&lt;noscript&gt;&lt;img decoding=async style=&#34;padding-right: 5px;position:relative;top: 3px&#34; src=https://admin.stackcommerce.com/assets/mail/icon-clock-ce3479938622cf856e31d6366f64c3bdb482ad6b8298264cb66e4493f777938a.jpg&gt;&lt;/noscript&gt;Ending soon &lt;span style=&#34;padding: 0 5px&#34;&gt;//&lt;/span&gt; by Java Code Geeks&lt;p&gt;&lt;a class=campaign-sale-link href=&#34;http://deals.javacodegeeks.com/sales/microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2?utm_source=JVG&amp;amp;utm_medium=referral&amp;amp;utm_campaign=2026-04-16_JVG_microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&amp;amp;utm_content=microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&#34;&gt;&lt;img data-lazyloaded=1 src=https://admin.stackcommerce.com/assets/mail/getit-d0a9c0e097c840198d1fa8b76acebbe039c0927216606397264fcc7639bfb1fc.jpg decoding=async border=0 data-src=https://admin.stackcommerce.com/assets/mail/getit-d0a9c0e097c840198d1fa8b76acebbe039c0927216606397264fcc7639bfb1fc.jpg&gt;&lt;noscript&gt;&lt;img decoding=async border=0 src=https://admin.stackcommerce.com/assets/mail/getit-d0a9c0e097c840198d1fa8b76acebbe039c0927216606397264fcc7639bfb1fc.jpg&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;tr&gt;&lt;td colspan=3&gt;&lt;p style=&#34;font-size: 14px;color: #666;line-height: 150%;width: 600px;max-width: 600px;margin: 0 auto 0 0&#34;&gt;&lt;b&gt;Elevate Your Coding Prowess Today! With Top-Rated Courses &amp;amp; Lifetime Access to MS Visual Pro 2022&lt;/b&gt;&lt;/table&gt;&lt;table width=600 cellpadding=0 cellspacing=0 align=center bgcolor=#ffffff style=&#34;border-top-style: solid;border-top-width: 1px;border-top-color: #DDDDDD;padding-top: 5px;margin-top: 30px&#34;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign=top width=300 style=&#34;padding-top: 30px;padding-right: 15px&#34;&gt;&lt;a class=campaign-sale-link href=&#34;http://deals.javacodegeeks.com/sales/3-year-subscription?utm_source=JVG&amp;amp;utm_medium=referral&amp;amp;utm_campaign=2026-04-16_JVG_microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&amp;amp;utm_content=3-year-subscription&#34;&gt;&lt;img data-lazyloaded=1 src=https://cdnp1.stackassets.com/1ee5cb686a48a8354d5b6cbe6d6162bf29b1e07e/store/5a33c0880f0468f0600e4c01aaad359b57294091e980d3a31e84f595a1ce/sale_310329_primary_image.jpg decoding=async width=285 data-src=https://cdnp1.stackassets.com/1ee5cb686a48a8354d5b6cbe6d6162bf29b1e07e/store/5a33c0880f0468f0600e4c01aaad359b57294091e980d3a31e84f595a1ce/sale_310329_primary_image.jpg&gt;&lt;noscript&gt;&lt;img decoding=async width=285 src=https://cdnp1.stackassets.com/1ee5cb686a48a8354d5b6cbe6d6162bf29b1e07e/store/5a33c0880f0468f0600e4c01aaad359b57294091e980d3a31e84f595a1ce/sale_310329_primary_image.jpg&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;p&gt;&lt;p style=&#34;font-size: 16px;color: #222222;line-height: 120%;margin-bottom: 15px;width: 250px&#34;&gt;&lt;a class=campaign-sale-link style=&#34;color: #222222;text-decoration: none&#34; href=&#34;http://deals.javacodegeeks.com/sales/3-year-subscription?utm_source=JVG&amp;amp;utm_medium=referral&amp;amp;utm_campaign=2026-04-16_JVG_microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&amp;amp;utm_content=3-year-subscription&#34;&gt;Surfshark VPN Starter Plan: 3-Yr Subscription&lt;/a&gt;&lt;br&gt;&lt;strong&gt;&lt;span style=&#34;color: #00B0FF&#34;&gt;(80% off)&lt;/span&gt;&lt;/strong&gt;&lt;td valign=top width=300 style=&#34;padding-top: 30px;padding-left: 15px&#34;&gt;&lt;a class=campaign-sale-link href=&#34;http://deals.javacodegeeks.com/sales/the-2025-complete-offensive-cyber-security-bundle?utm_source=JVG&amp;amp;utm_medium=referral&amp;amp;utm_campaign=2026-04-16_JVG_microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&amp;amp;utm_content=the-2025-complete-offensive-cyber-security-bundle&#34;&gt;&lt;img data-lazyloaded=1 src=https://cdnp3.stackassets.com/fbc1f80f0c8d6bd9601d0fa19b5a84059f8e21f9/store/071b212af4cb70c2790bee36775d1aaa7398da436f5d76b4a8c8a6c4ad13/sale_328327_primary_image.jpg decoding=async width=285 data-src=https://cdnp3.stackassets.com/fbc1f80f0c8d6bd9601d0fa19b5a84059f8e21f9/store/071b212af4cb70c2790bee36775d1aaa7398da436f5d76b4a8c8a6c4ad13/sale_328327_primary_image.jpg&gt;&lt;noscript&gt;&lt;img decoding=async width=285 src=https://cdnp3.stackassets.com/fbc1f80f0c8d6bd9601d0fa19b5a84059f8e21f9/store/071b212af4cb70c2790bee36775d1aaa7398da436f5d76b4a8c8a6c4ad13/sale_328327_primary_image.jpg&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;p&gt;&lt;p style=&#34;font-size: 16px;color: #222222;line-height: 120%;margin-bottom: 15px;width: 250px&#34;&gt;&lt;a class=campaign-sale-link style=&#34;color: #222222;text-decoration: none&#34; href=&#34;http://deals.javacodegeeks.com/sales/the-2025-complete-offensive-cyber-security-bundle?utm_source=JVG&amp;amp;utm_medium=referral&amp;amp;utm_campaign=2026-04-16_JVG_microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&amp;amp;utm_content=the-2025-complete-offensive-cyber-security-bundle&#34;&gt;The 2026 Complete Offensive Cyber Security Bundle&lt;/a&gt;&lt;br&gt;&lt;strong&gt;&lt;span style=&#34;color: #00B0FF&#34;&gt;(83% off)&lt;/span&gt;&lt;/strong&gt;&lt;tr&gt;&lt;td valign=top width=300 style=&#34;padding-top: 30px;padding-right: 15px&#34;&gt;&lt;a class=campaign-sale-link href=&#34;http://deals.javacodegeeks.com/sales/iprovpn-5-year-subscription?utm_source=JVG&amp;amp;utm_medium=referral&amp;amp;utm_campaign=2026-04-16_JVG_microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&amp;amp;utm_content=iprovpn-5-year-subscription&#34;&gt;&lt;img data-lazyloaded=1 src=https://cdnp0.stackassets.com/40851682d2c989f3deca1b00e8075af2e3aa8188/store/88c5754b7d8f12bd508d14414f85695bd0d2b9665dcc6f0263ba83df4999/sale_328954_primary_image.jpg decoding=async width=285 data-src=https://cdnp0.stackassets.com/40851682d2c989f3deca1b00e8075af2e3aa8188/store/88c5754b7d8f12bd508d14414f85695bd0d2b9665dcc6f0263ba83df4999/sale_328954_primary_image.jpg&gt;&lt;noscript&gt;&lt;img decoding=async width=285 src=https://cdnp0.stackassets.com/40851682d2c989f3deca1b00e8075af2e3aa8188/store/88c5754b7d8f12bd508d14414f85695bd0d2b9665dcc6f0263ba83df4999/sale_328954_primary_image.jpg&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;p&gt;&lt;p style=&#34;font-size: 16px;color: #222222;line-height: 120%;margin-bottom: 15px;width: 250px&#34;&gt;&lt;a class=campaign-sale-link style=&#34;color: #222222;text-decoration: none&#34; href=&#34;http://deals.javacodegeeks.com/sales/iprovpn-5-year-subscription?utm_source=JVG&amp;amp;utm_medium=referral&amp;amp;utm_campaign=2026-04-16_JVG_microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&amp;amp;utm_content=iprovpn-5-year-subscription&#34;&gt;iProVPN: 5-Year Subscription&lt;/a&gt;&lt;br&gt;&lt;strong&gt;&lt;span style=&#34;color: #00B0FF&#34;&gt;(94% off)&lt;/span&gt;&lt;/strong&gt;&lt;td valign=top width=300 style=&#34;padding-top: 30px;padding-left: 15px&#34;&gt;&lt;a class=campaign-sale-link href=&#34;http://deals.javacodegeeks.com/sales/internxt-cloud-storage-lifetime-subscription-50tb?utm_source=JVG&amp;amp;utm_medium=referral&amp;amp;utm_campaign=2026-04-16_JVG_microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&amp;amp;utm_content=internxt-cloud-storage-lifetime-subscription-50tb&#34;&gt;&lt;img data-lazyloaded=1 src=https://cdnp0.stackassets.com/fd4a687b582d3bc95068604234a25329db4476b6/store/ec20e70bbb128f48ab5baa5cacfe34b6aac99668065bb01d05563f3589d2/product_xxxxx_product_shots1.jpg decoding=async width=285 data-src=https://cdnp0.stackassets.com/fd4a687b582d3bc95068604234a25329db4476b6/store/ec20e70bbb128f48ab5baa5cacfe34b6aac99668065bb01d05563f3589d2/product_xxxxx_product_shots1.jpg&gt;&lt;noscript&gt;&lt;img decoding=async width=285 src=https://cdnp0.stackassets.com/fd4a687b582d3bc95068604234a25329db4476b6/store/ec20e70bbb128f48ab5baa5cacfe34b6aac99668065bb01d05563f3589d2/product_xxxxx_product_shots1.jpg&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;p&gt;&lt;p style=&#34;font-size: 16px;color: #222222;line-height: 120%;margin-bottom: 15px;width: 250px&#34;&gt;&lt;a class=campaign-sale-link style=&#34;color: #222222;text-decoration: none&#34; href=&#34;http://deals.javacodegeeks.com/sales/internxt-cloud-storage-lifetime-subscription-50tb?utm_source=JVG&amp;amp;utm_medium=referral&amp;amp;utm_campaign=2026-04-16_JVG_microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&amp;amp;utm_content=internxt-cloud-storage-lifetime-subscription-50tb&#34;&gt;Internxt Cloud Storage: Lifetime Subscription (50TB)&lt;/a&gt;&lt;br&gt;&lt;strong&gt;&lt;span style=&#34;color: #00B0FF&#34;&gt;(91% off)&lt;/span&gt;&lt;/strong&gt;&lt;tr&gt;&lt;td valign=top width=300 style=&#34;padding-top: 30px;padding-right: 15px&#34;&gt;&lt;a class=campaign-sale-link href=&#34;http://deals.javacodegeeks.com/sales/cleaner-kit-premium-plan-lifetime-subscription?utm_source=JVG&amp;amp;utm_medium=referral&amp;amp;utm_campaign=2026-04-16_JVG_microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&amp;amp;utm_content=cleaner-kit-premium-plan-lifetime-subscription&#34;&gt;&lt;img data-lazyloaded=1 src=https://cdnp0.stackassets.com/310309f4595e04a7cced9d2aa9e0439b128d8442/store/bf9211948989c6bc1db55f15884aacd994062b891354a6de9feeecc2cf63/sale_328416_primary_image.jpg decoding=async width=285 data-src=https://cdnp0.stackassets.com/310309f4595e04a7cced9d2aa9e0439b128d8442/store/bf9211948989c6bc1db55f15884aacd994062b891354a6de9feeecc2cf63/sale_328416_primary_image.jpg&gt;&lt;noscript&gt;&lt;img decoding=async width=285 src=https://cdnp0.stackassets.com/310309f4595e04a7cced9d2aa9e0439b128d8442/store/bf9211948989c6bc1db55f15884aacd994062b891354a6de9feeecc2cf63/sale_328416_primary_image.jpg&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;p&gt;&lt;p style=&#34;font-size: 16px;color: #222222;line-height: 120%;margin-bottom: 15px;width: 250px&#34;&gt;&lt;a class=campaign-sale-link style=&#34;color: #222222;text-decoration: none&#34; href=&#34;http://deals.javacodegeeks.com/sales/cleaner-kit-premium-plan-lifetime-subscription?utm_source=JVG&amp;amp;utm_medium=referral&amp;amp;utm_campaign=2026-04-16_JVG_microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&amp;amp;utm_content=cleaner-kit-premium-plan-lifetime-subscription&#34;&gt;Cleaner Kit for iOS Premium Plan: Lifetime Subscription&lt;/a&gt;&lt;br&gt;&lt;strong&gt;&lt;span style=&#34;color: #00B0FF&#34;&gt;(80% off)&lt;/span&gt;&lt;/strong&gt;&lt;td valign=top width=300 style=&#34;padding-top: 30px;padding-left: 15px&#34;&gt;&lt;a class=campaign-sale-link href=&#34;http://deals.javacodegeeks.com/sales/drime-secure-cloud-storage-lifetime-subscription-2tb?utm_source=JVG&amp;amp;utm_medium=referral&amp;amp;utm_campaign=2026-04-16_JVG_microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&amp;amp;utm_content=drime-secure-cloud-storage-lifetime-subscription-2tb&#34;&gt;&lt;img data-lazyloaded=1 src=https://cdnp1.stackassets.com/391ba3f740a34b3f390e99bcc72d4f6216cdd000/store/199958d498edaa5258dffed9f98c5c3fe044ab070d142cdb01788a65d3ee/sale_328413_primary_image.jpg decoding=async width=285 data-src=https://cdnp1.stackassets.com/391ba3f740a34b3f390e99bcc72d4f6216cdd000/store/199958d498edaa5258dffed9f98c5c3fe044ab070d142cdb01788a65d3ee/sale_328413_primary_image.jpg&gt;&lt;noscript&gt;&lt;img decoding=async width=285 src=https://cdnp1.stackassets.com/391ba3f740a34b3f390e99bcc72d4f6216cdd000/store/199958d498edaa5258dffed9f98c5c3fe044ab070d142cdb01788a65d3ee/sale_328413_primary_image.jpg&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;p&gt;&lt;p style=&#34;font-size: 16px;color: #222222;line-height: 120%;margin-bottom: 15px;width: 250px&#34;&gt;&lt;a class=campaign-sale-link style=&#34;color: #222222;text-decoration: none&#34; href=&#34;http://deals.javacodegeeks.com/sales/drime-secure-cloud-storage-lifetime-subscription-2tb?utm_source=JVG&amp;amp;utm_medium=referral&amp;amp;utm_campaign=2026-04-16_JVG_microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&amp;amp;utm_content=drime-secure-cloud-storage-lifetime-subscription-2tb&#34;&gt;Drime Secure Cloud Storage: Lifetime Subscription&lt;/a&gt;&lt;br&gt;&lt;strong&gt;&lt;span style=&#34;color: #00B0FF&#34;&gt;(49% off)&lt;/span&gt;&lt;/strong&gt;&lt;tr&gt;&lt;td valign=top width=300 style=&#34;padding-top: 30px;padding-right: 15px&#34;&gt;&lt;a class=campaign-sale-link href=&#34;http://deals.javacodegeeks.com/sales/adguard-vpn-ad-blocker-family-security-suite?utm_source=JVG&amp;amp;utm_medium=referral&amp;amp;utm_campaign=2026-04-16_JVG_microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&amp;amp;utm_content=adguard-vpn-ad-blocker-family-security-suite&#34;&gt;&lt;img data-lazyloaded=1 src=https://cdnp3.stackassets.com/4d917dedbdf1174e54427264efb5897c9a519605/store/e109902fdf8ed94602a3f88a84b79690c9708e4c1514cb3a9775a289b6fd/product_227349_product_shots1.jpg decoding=async width=285 data-src=https://cdnp3.stackassets.com/4d917dedbdf1174e54427264efb5897c9a519605/store/e109902fdf8ed94602a3f88a84b79690c9708e4c1514cb3a9775a289b6fd/product_227349_product_shots1.jpg&gt;&lt;noscript&gt;&lt;img decoding=async width=285 src=https://cdnp3.stackassets.com/4d917dedbdf1174e54427264efb5897c9a519605/store/e109902fdf8ed94602a3f88a84b79690c9708e4c1514cb3a9775a289b6fd/product_227349_product_shots1.jpg&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;p&gt;&lt;p style=&#34;font-size: 16px;color: #222222;line-height: 120%;margin-bottom: 15px;width: 250px&#34;&gt;&lt;a class=campaign-sale-link style=&#34;color: #222222;text-decoration: none&#34; href=&#34;http://deals.javacodegeeks.com/sales/adguard-vpn-ad-blocker-family-security-suite?utm_source=JVG&amp;amp;utm_medium=referral&amp;amp;utm_campaign=2026-04-16_JVG_microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&amp;amp;utm_content=adguard-vpn-ad-blocker-family-security-suite&#34;&gt;AdGuard VPN + Ad Blocker Family Security Suite&lt;/a&gt;&lt;br&gt;&lt;strong&gt;&lt;span style=&#34;color: #00B0FF&#34;&gt;(90% off)&lt;/span&gt;&lt;/strong&gt;&lt;td valign=top width=300 style=&#34;padding-top: 30px;padding-left: 15px&#34;&gt;&lt;a class=campaign-sale-link href=&#34;http://deals.javacodegeeks.com/sales/sterling-stock-picker-lifetime-subscription?utm_source=JVG&amp;amp;utm_medium=referral&amp;amp;utm_campaign=2026-04-16_JVG_microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&amp;amp;utm_content=sterling-stock-picker-lifetime-subscription&#34;&gt;&lt;img data-lazyloaded=1 src=https://cdnp2.stackassets.com/ef19dc69d9c09d7bd6dfb337ead9f7912d89c9ff/store/94ed0c4c80e310d05602e21b34ac3c56c3c827ea3cce1bbc4ad393bffc1a/sale_327894_primary_image.jpg decoding=async width=285 data-src=https://cdnp2.stackassets.com/ef19dc69d9c09d7bd6dfb337ead9f7912d89c9ff/store/94ed0c4c80e310d05602e21b34ac3c56c3c827ea3cce1bbc4ad393bffc1a/sale_327894_primary_image.jpg&gt;&lt;noscript&gt;&lt;img decoding=async width=285 src=https://cdnp2.stackassets.com/ef19dc69d9c09d7bd6dfb337ead9f7912d89c9ff/store/94ed0c4c80e310d05602e21b34ac3c56c3c827ea3cce1bbc4ad393bffc1a/sale_327894_primary_image.jpg&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;p&gt;&lt;p style=&#34;font-size: 16px;color: #222222;line-height: 120%;margin-bottom: 15px;width: 250px&#34;&gt;&lt;a class=campaign-sale-link style=&#34;color: #222222;text-decoration: none&#34; href=&#34;http://deals.javacodegeeks.com/sales/sterling-stock-picker-lifetime-subscription?utm_source=JVG&amp;amp;utm_medium=referral&amp;amp;utm_campaign=2026-04-16_JVG_microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&amp;amp;utm_content=sterling-stock-picker-lifetime-subscription&#34;&gt;Sterling Stock Picker: Lifetime Subscription&lt;/a&gt;&lt;br&gt;&lt;strong&gt;&lt;span style=&#34;color: #00B0FF&#34;&gt;(85% off)&lt;/span&gt;&lt;/strong&gt;&lt;tr&gt;&lt;td valign=top width=300 style=&#34;padding-top: 30px;padding-right: 15px&#34;&gt;&lt;a class=campaign-sale-link href=&#34;http://deals.javacodegeeks.com/sales/babbel-language-learning-lifetime-subscription-all-languages?utm_source=JVG&amp;amp;utm_medium=referral&amp;amp;utm_campaign=2026-04-16_JVG_microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&amp;amp;utm_content=babbel-language-learning-lifetime-subscription-all-languages&#34;&gt;&lt;img data-lazyloaded=1 src=https://cdnp0.stackassets.com/4f18236be4de964179975893c1bc6f42f140d7b5/store/83373c99006afa75e9d21275af5270bc5e679758c63648bbef87faa6f107/sale_136716_primary_image.jpg decoding=async width=285 data-src=https://cdnp0.stackassets.com/4f18236be4de964179975893c1bc6f42f140d7b5/store/83373c99006afa75e9d21275af5270bc5e679758c63648bbef87faa6f107/sale_136716_primary_image.jpg&gt;&lt;noscript&gt;&lt;img decoding=async width=285 src=https://cdnp0.stackassets.com/4f18236be4de964179975893c1bc6f42f140d7b5/store/83373c99006afa75e9d21275af5270bc5e679758c63648bbef87faa6f107/sale_136716_primary_image.jpg&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;p&gt;&lt;p style=&#34;font-size: 16px;color: #222222;line-height: 120%;margin-bottom: 15px;width: 250px&#34;&gt;&lt;a class=campaign-sale-link style=&#34;color: #222222;text-decoration: none&#34; href=&#34;http://deals.javacodegeeks.com/sales/babbel-language-learning-lifetime-subscription-all-languages?utm_source=JVG&amp;amp;utm_medium=referral&amp;amp;utm_campaign=2026-04-16_JVG_microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&amp;amp;utm_content=babbel-language-learning-lifetime-subscription-all-languages&#34;&gt;Babbel Language Learning: Lifetime Subscription (All Languages)&lt;/a&gt;&lt;br&gt;&lt;strong&gt;&lt;span style=&#34;color: #00B0FF&#34;&gt;(61% off)&lt;/span&gt;&lt;/strong&gt;&lt;td valign=top width=300 style=&#34;padding-top: 30px;padding-left: 15px&#34;&gt;&lt;a class=campaign-sale-link href=&#34;http://deals.javacodegeeks.com/sales/the-2024-premium-learn-to-code-certification-bundle?utm_source=JVG&amp;amp;utm_medium=referral&amp;amp;utm_campaign=2026-04-16_JVG_microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&amp;amp;utm_content=the-2024-premium-learn-to-code-certification-bundle&#34;&gt;&lt;img data-lazyloaded=1 src=https://cdnp2.stackassets.com/701df9ef182640b40770aa37d10303a92054603d/store/52f177f7705123ec18a77094670c3e1031159922b07a479cf6ca3847f559/sale_323881_primary_image.jpg decoding=async width=285 data-src=https://cdnp2.stackassets.com/701df9ef182640b40770aa37d10303a92054603d/store/52f177f7705123ec18a77094670c3e1031159922b07a479cf6ca3847f559/sale_323881_primary_image.jpg&gt;&lt;noscript&gt;&lt;img decoding=async width=285 src=https://cdnp2.stackassets.com/701df9ef182640b40770aa37d10303a92054603d/store/52f177f7705123ec18a77094670c3e1031159922b07a479cf6ca3847f559/sale_323881_primary_image.jpg&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;p&gt;&lt;p style=&#34;font-size: 16px;color: #222222;line-height: 120%;margin-bottom: 15px;width: 250px&#34;&gt;&lt;a class=campaign-sale-link style=&#34;color: #222222;text-decoration: none&#34; href=&#34;http://deals.javacodegeeks.com/sales/the-2024-premium-learn-to-code-certification-bundle?utm_source=JVG&amp;amp;utm_medium=referral&amp;amp;utm_campaign=2026-04-16_JVG_microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-2&amp;amp;utm_content=the-2024-premium-learn-to-code-certification-bundle&#34;&gt;The Premium Learn to Code Certification Bundle&lt;/a&gt;&lt;br&gt;&lt;strong&gt;&lt;span style=&#34;color: #00B0FF&#34;&gt;(97% off)&lt;/span&gt;&lt;/strong&gt;&lt;/table&gt;&lt;style&gt;.lepopup-progress-60 div.lepopup-progress-t1&gt;div{background-color:#e0e0e0;}.lepopup-progress-60 div.lepopup-progress-t1&gt;div&gt;div{background-color:#bd4070;}.lepopup-progress-60 div.lepopup-progress-t1&gt;div&gt;div{color:#ffffff;}.lepopup-progress-60 div.lepopup-progress-t1&gt;label{color:#444444;}.lepopup-form-60, .lepopup-form-60 *, .lepopup-progress-60 {font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-signature-box span i{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#555555;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-signature-box,.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;text&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;email&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;password&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input select,.lepopup-form-60 .lepopup-element div.lepopup-input select option,.lepopup-form-60 .lepopup-element div.lepopup-input textarea{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#555555;font-style:normal;text-decoration:none;text-align:left;background-color:rgba(255, 255, 255, 0.7);background-image:none;border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow: inset 0px 0px 15px -7px #000000;}.lepopup-form-60 .lepopup-element div.lepopup-input ::placeholder{color:#555555; opacity: 0.9;} .lepopup-form-60 .lepopup-element div.lepopup-input ::-ms-input-placeholder{color:#555555; opacity: 0.9;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect::-webkit-scrollbar-thumb{background-color:#cccccc;}.lepopup-form-60 .lepopup-element div.lepopup-input&gt;i.lepopup-icon-left, .lepopup-form-60 .lepopup-element div.lepopup-input&gt;i.lepopup-icon-right{font-size:20px;color:#444444;border-radius:0px;}.lepopup-form-60 .lepopup-element .lepopup-button,.lepopup-form-60 .lepopup-element .lepopup-button:visited{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#ffffff;font-weight:700;font-style:normal;text-decoration:none;text-align:center;background-color:#326693;background-image:none;border-width:1px;border-style:solid;border-color:#326693;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element div.lepopup-input .lepopup-imageselect+label{border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element div.lepopup-input .lepopup-imageselect+label span.lepopup-imageselect-label{font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl:checked+label:after{background-color:rgba(255, 255, 255, 0.7);}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-classic+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-fa-check+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-square+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl+label{background-color:rgba(255, 255, 255, 0.7);border-color:#cccccc;color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-square:checked+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl:checked+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-classic+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-fa-check+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-dot+label{background-color:rgba(255, 255, 255, 0.7);border-color:#cccccc;color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-dot:checked+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect&gt;input[type=&#39;checkbox&#39;]+label:hover{background-color:#bd4070;color:#ffffff;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect&gt;input[type=&#39;checkbox&#39;]:checked+label{background-color:#a93a65;color:#ffffff;}.lepopup-form-60 .lepopup-element input[type=&#39;checkbox&#39;].lepopup-tile+label, .lepopup-form-60 .lepopup-element input[type=&#39;radio&#39;].lepopup-tile+label {font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:center;background-color:#ffffff;background-image:none;border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element-error{font-size:15px;color:#ffffff;font-style:normal;text-decoration:none;text-align:left;background-color:#d9534f;background-image:none;}.lepopup-form-60 .lepopup-element-2 {background-color:rgba(226, 236, 250, 1);background-image:none;border-width:1px;border-style:solid;border-color:rgba(216, 216, 216, 1);border-radius:3px;box-shadow: 1px 1px 15px -6px #d7e1eb;}.lepopup-form-60 .lepopup-element-3 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:26px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-3 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:26px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-3 .lepopup-element-html-content {min-height:73px;}.lepopup-form-60 .lepopup-element-4 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:19px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-4 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:19px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-4 .lepopup-element-html-content {min-height:23px;}.lepopup-form-60 .lepopup-element-5 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-5 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-5 .lepopup-element-html-content {min-height:24px;}.lepopup-form-60 .lepopup-element-6 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-6 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-6 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-7 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-7 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-7 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-8 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-8 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-8 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-9 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-9 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-9 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-10 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-10 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-10 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-11 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-11 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-11 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-12 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-12 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-12 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-13 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-13 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-13 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-14 div.lepopup-input .lepopup-icon-left, .lepopup-form-60 .lepopup-element-14 div.lepopup-input .lepopup-icon-right {line-height:36px;}.lepopup-form-60 .lepopup-element-15 div.lepopup-input{height:auto;line-height:1;}.lepopup-form-60 .lepopup-element-16 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:14px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-16 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:14px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-16 .lepopup-element-html-content {min-height:5px;}.lepopup-form-60 .lepopup-element-19 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#333333;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-19 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#333333;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-19 .lepopup-element-html-content {min-height:363px;}.lepopup-form-60 .lepopup-element-0 * {font-size:15px;color:#ffffff;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-0 {font-size:15px;color:#ffffff;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:#5cb85c;background-image:none;border-width:0px;border-style:solid;border-color:#ccc;border-radius:5px;box-shadow: 1px 1px 15px -6px #000000;padding-top:40px;padding-right:40px;padding-bottom:40px;padding-left:40px;}.lepopup-form-60 .lepopup-element-0 .lepopup-element-html-content {min-height:160px;}&lt;/style&gt;&lt;div class=lepopup-inline style=&#34;margin: 0 auto;&#34;&gt;&lt;div class=&#34;lepopup-form lepopup-form-60 lepopup-form-AahazvjOS9CuflxI lepopup-form-icon-inside lepopup-form-position-middle-right&#34; data-session=0 data-id=AahazvjOS9CuflxI data-form-id=60 data-slug=7lQM6oyWL5bTm5lw data-title=&#34;Under the Post Inline&#34; data-page=1 data-xd=off data-width=820 data-height=430 data-position=middle-right data-esc=off data-enter=on data-disable-scrollbar=off style=display:none;width:820px;height:430px; onclick=event.stopPropagation();&gt;&lt;div class=lepopup-form-inner style=width:820px;height:430px;&gt;&lt;div class=&#34;lepopup-element lepopup-element-2 lepopup-element-rectangle&#34; data-type=rectangle data-top=0 data-left=0 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:501;top:0px;left:0px;width:820px;height:430px;&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-3 lepopup-element-html&#34; data-type=html data-top=7 data-left=10 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:502;top:7px;left:10px;width:797px;height:73px;&gt;&lt;div class=lepopup-element-html-content&gt;Do you want to know how to develop your skillset to become a &lt;span style=&#34;color: #CAB43D; text-shadow: 1px 1px #835D5D;&#34;&gt;Java Rockstar?&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-4 lepopup-element-html&#34; data-type=html data-top=83 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:503;top:83px;left:308px;width:473px;height:23px;&gt;&lt;div class=lepopup-element-html-content&gt;Subscribe to our newsletter to start Rocking &lt;span style=&#34;text-decoration: underline;&#34;&gt;right now!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-5 lepopup-element-html&#34; data-type=html data-top=107 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:504;top:107px;left:308px;width:473px;height:24px;&gt;&lt;div class=lepopup-element-html-content&gt;To get you started we give you our best selling eBooks for &lt;span style=&#34;color:#e01404; text-shadow: 1px 1px #C99924; font-size: 15px;&#34;&gt;FREE!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-6 lepopup-element-html&#34; data-type=html data-top=136 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:505;top:136px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;1.&lt;/span&gt; JPA Mini Book&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-7 lepopup-element-html&#34; data-type=html data-top=156 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:506;top:156px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;2.&lt;/span&gt; JVM Troubleshooting Guide&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-8 lepopup-element-html&#34; data-type=html data-top=176 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:507;top:176px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;3.&lt;/span&gt; JUnit Tutorial for Unit Testing&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-9 lepopup-element-html&#34; data-type=html data-top=196 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:508;top:196px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;4.&lt;/span&gt; Java Annotations Tutorial&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-10 lepopup-element-html&#34; data-type=html data-top=216 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:509;top:216px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;5.&lt;/span&gt; Java Interview Questions&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-11 lepopup-element-html&#34; data-type=html data-top=236 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:510;top:236px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;6.&lt;/span&gt; Spring Interview Questions&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-12 lepopup-element-html&#34; data-type=html data-top=256 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:511;top:256px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;7.&lt;/span&gt; Android UI Design&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-13 lepopup-element-html&#34; data-type=html data-top=282 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:512;top:282px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;and many more ....&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-14&#34; data-type=email data-deps data-id=14 data-top=305 data-left=308 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:513;top:305px;left:308px;width:473px;height:36px;&gt;&lt;div class=lepopup-input&gt;&lt;input type=email name=lepopup-14 class=lepopup-ta-left placeholder=&#34;Enter your e-mail...&#34; autocomplete=email data-default aria-label=&#34;Email Field&#34; oninput=lepopup_input_changed(this); onfocus=lepopup_input_error_hide(this);&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-15&#34; data-type=checkbox data-deps data-id=15 data-top=344 data-left=308 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:514;top:344px;left:308px;width:160px;&gt;&lt;div class=&#34;lepopup-input lepopup-cr-layout-1 lepopup-cr-layout-left&#34;&gt;&lt;div class=&#34;lepopup-cr-container lepopup-cr-container-medium lepopup-cr-container-left&#34;&gt;&lt;div class=lepopup-cr-box&gt;&lt;input class=&#34;lepopup-checkbox lepopup-checkbox-classic lepopup-checkbox-medium&#34; type=checkbox name=lepopup-15[] id=lepopup-checkbox-MORwJ873mFPYTyDp-14-0 value=on data-default=off onchange=lepopup_input_changed(this);&gt;&lt;label for=lepopup-checkbox-MORwJ873mFPYTyDp-14-0 onclick=lepopup_input_error_hide(this);&gt;&lt;/label&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-cr-label lepopup-ta-left&#34;&gt;&lt;label for=lepopup-checkbox-MORwJ873mFPYTyDp-14-0 onclick=lepopup_input_error_hide(this);&gt;&lt;/label&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-16 lepopup-element-html&#34; data-type=html data-top=344 data-left=338 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:515;top:344px;left:338px;width:350px;height:5px;&gt;&lt;div class=lepopup-element-html-content&gt;I agree to the &lt;a href=https://www.javacodegeeks.com/about/terms-of-use target=_blank&gt;Terms&lt;/a&gt; and &lt;a href=https://www.javacodegeeks.com/about/privacy-policy target=_blank&gt;Privacy Policy&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-17&#34; data-type=button data-top=372 data-left=308 data-animation-in=bounceIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:516;top:372px;left:308px;width:85px;height:37px;&gt;&lt;a class=&#34;lepopup-button lepopup-button-zoom-out&#34; href=https://www.javacodegeeks.com/feed/ onclick=&#34;return lepopup_submit(this);&#34; data-label=&#34;Sign up&#34; data-loading=Loading...&gt;&lt;span&gt;Sign up&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-19 lepopup-element-html&#34; data-type=html data-top=67 data-left=-15 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:518;top:67px;left:-15px;width:320px;height:363px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;img data-lazyloaded=1 src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png fetchpriority=high decoding=async data-src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png alt width=320 height=363&gt;&lt;noscript&gt;&lt;img fetchpriority=high decoding=async src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png alt width=320 height=363&gt;&lt;/noscript&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-form lepopup-form-60 lepopup-form-AahazvjOS9CuflxI lepopup-form-icon-inside lepopup-form-position-middle-right&#34; data-session=0 data-id=AahazvjOS9CuflxI data-form-id=60 data-slug=7lQM6oyWL5bTm5lw data-title=&#34;Under the Post Inline&#34; data-page=confirmation data-xd=off data-width=420 data-height=320 data-position=middle-right data-esc=off data-enter=on data-disable-scrollbar=off style=display:none;width:420px;height:320px; onclick=event.stopPropagation();&gt;&lt;div class=lepopup-form-inner style=width:420px;height:320px;&gt;&lt;div class=&#34;lepopup-element lepopup-element-0 lepopup-element-html&#34; data-type=html data-top=80 data-left=70 data-animation-in=bounceInDown data-animation-out=fadeOutUp style=animation-duration:1000ms;animation-delay:0ms;z-index:500;top:80px;left:70px;width:280px;height:160px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;h4 style=&#34;text-align: center; font-size: 18px; font-weight: bold;&#34;&gt;Thank you!&lt;/h4&gt;&lt;p style=&#34;text-align: center;&#34;&gt;We will contact you soon.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;input type=hidden id=lepopup-logic-AahazvjOS9CuflxI value=[]&gt;&lt;/div&gt;&lt;div class=&#34;post-bottom-meta post-bottom-tags post-tags-classic&#34;&gt;&lt;div class=post-bottom-meta-title&gt;&lt;span class=tie-icon-tags aria-hidden=true&gt;&lt;/span&gt;Tags&lt;/div&gt;&lt;span class=tagcloud&gt;&lt;a href=https://www.javacodegeeks.com/tag/deals rel=tag&gt;Deals&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=post-extra-info&gt;&lt;div class=theiaStickySidebar&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=clearfix&gt;&lt;/div&gt;</description>
      <author>Java Code Geeks</author>
      <guid>https://www.javacodegeeks.com/2026/04/deals-microsoft-visual-studio-professional-2022-the-premium-learn-to-code-certification-bundle-98-off-other-deals-up-to-98-off-2.html</guid>
      <pubDate>Thu, 16 Apr 2026 10:30:30 +0000</pubDate>
    </item>
    <item>
      <title>Post-Quantum Cryptography in Java: What the NIST Standards Mean for Your TLS, JWT, and Key Management Code</title>
      <link>https://www.javacodegeeks.com/2026/04/post-quantum-cryptography-in-java-what-the-nist-standards-mean-for-your-tls-jwt-and-key-management-code.html</link>
      <description>&lt;header class=entry-header-outer&gt;&lt;nav id=breadcrumb&gt;&lt;a href=https://www.javacodegeeks.com/&gt;&lt;span class=tie-icon-home aria-hidden=true&gt;&lt;/span&gt;Home&lt;/a&gt;&lt;em class=delimiter&gt;»&lt;/em&gt;&lt;a href=https://www.javacodegeeks.com/category/java&gt;Java&lt;/a&gt;&lt;em class=delimiter&gt;»&lt;/em&gt;&lt;a href=https://www.javacodegeeks.com/category/java/core-java&gt;Core Java&lt;/a&gt;&lt;em class=delimiter&gt;»&lt;/em&gt;&lt;span class=current&gt;Post-Quantum Cryptography in Java: What the NIST Standards Mean for Your TLS, JWT, and Key Management Code&lt;/span&gt;&lt;/nav&gt;&lt;div class=entry-header&gt;&lt;span class=post-cat-wrap&gt;&lt;a class=&#34;post-cat tie-cat-7&#34; href=https://www.javacodegeeks.com/category/java/core-java&gt;Core Java&lt;/a&gt;&lt;/span&gt;&lt;h1 class=&#34;post-title entry-title&#34;&gt;Post-Quantum Cryptography in Java: What the NIST Standards Mean for Your TLS, JWT, and Key Management Code&lt;/h1&gt;&lt;/div&gt;&lt;/header&gt;&lt;div class=&#34;entry-content entry clearfix&#34;&gt;&lt;div class=&#34;stream-item stream-item-above-post-content&#34;&gt;&lt;div class=stream-item-size&gt;&lt;div id=adngin-in-post-0 style=&#34;float:left; margin-right:20px; margin-bottom:10px; width:300px; height:274px;&#34;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;In August 2024, NIST finalized the world’s first post-quantum cryptography standards. JDK 24 and 25 have already begun shipping the new algorithms. If you run Java services that handle authentication, encrypted transport, or long-lived secrets, this transition affects you — and the window to act is narrower than most teams realize.&lt;/em&gt;&lt;p&gt;For most of software history, breaking RSA-2048 or ECDH key exchange required either a room-sized classical computer running for billions of years, or simply being fictional. Quantum computers have changed that calculus — not today, but on a timeline that is now concretely measurable. &lt;a href=https://pq-crystals.org/ target=_blank rel=&#34;noreferrer noopener&#34;&gt;Shor’s algorithm&lt;/a&gt;, running on a sufficiently large fault-tolerant quantum computer, reduces RSA and elliptic curve key exchange from computationally infeasible to a matter of hours. The question is no longer whether this is theoretically possible — it is a question of when.&lt;p&gt;That “when” is what drove NIST to spend eight years evaluating 69 candidate algorithms and then, in August 2024, publish &lt;a href=https://csrc.nist.gov/pubs/fips/203/final target=_blank rel=&#34;noreferrer noopener&#34;&gt;FIPS 203&lt;/a&gt;, &lt;a href=https://csrc.nist.gov/pubs/fips/204/final target=_blank rel=&#34;noreferrer noopener&#34;&gt;FIPS 204&lt;/a&gt;, and &lt;a href=https://csrc.nist.gov/pubs/fips/205/final target=_blank rel=&#34;noreferrer noopener&#34;&gt;FIPS 205&lt;/a&gt; as finalized standards. For Java developers, the practical impact falls across three critical areas: TLS handshakes, JWT signing and verification, and key generation and storage. This article walks through each one, explains what the new algorithms are and why they exist, and shows exactly what you need to change in your code.&lt;p&gt;What this article covers&lt;ul class=wp-block-list&gt;&lt;li&gt;Why quantum computers break RSA and ECDH — and why symmetric AES-256 is mostly fine&lt;li&gt;The three finalized NIST PQC standards and what each one replaces in your Java stack&lt;li&gt;JDK 24 and 25 support status: what is in the JCA provider today and what requires BouncyCastle&lt;li&gt;Concrete code changes for TLS configuration, JWT signing, and &lt;code&gt;KeyStore&lt;/code&gt; / &lt;code&gt;KeyGenerator&lt;/code&gt; usage&lt;li&gt;The “harvest now, decrypt later” threat model and why urgency is higher than most teams assume&lt;li&gt;A migration checklist and algorithm recommendation table for 2026&lt;/ul&gt;&lt;h2 class=wp-block-heading&gt;1. Why Quantum Computers Break the Algorithms You Are Currently Using&lt;/h2&gt;&lt;p&gt;The security of RSA, Diffie-Hellman, and elliptic curve cryptography all rest on mathematical problems that are hard for classical computers — specifically, integer factorisation and the discrete logarithm problem. Shor’s algorithm, published in 1994, solves both problems in polynomial time on a quantum computer. That means a quantum computer with enough logical qubits could, in principle, factor a 2048-bit RSA modulus or solve an elliptic curve discrete log in hours rather than geological time.&lt;p&gt;Importantly, symmetric encryption is not equally vulnerable. Grover’s algorithm offers a quantum speedup for searching unsorted data — effectively halving the security of symmetric keys. AES-128 drops to approximately 64 bits of quantum security; AES-256 drops to 128 bits, which remains strong by any practical standard. So the asymmetric algorithms you use for key exchange and digital signatures are the critical exposure surface — not your bulk data encryption.&lt;blockquote class=&#34;wp-block-quote is-layout-flow wp-block-quote-is-layout-flow&#34;&gt;&lt;p&gt;Nation-state adversaries and well-funded groups are believed to be recording encrypted TLS traffic today with the explicit intention of decrypting it once a cryptographically relevant quantum computer exists. If any data you transmit today must remain confidential for more than 5–10 years — healthcare records, financial contracts, classified communications — your current RSA/ECDH TLS sessions are already at risk. This threat model is sometimes called HNDL (Harvest Now, Decrypt Later) and it is the primary driver of the urgency behind the NIST timeline.&lt;/blockquote&gt;&lt;p&gt;The following timeline places the NIST process in context so you can calibrate your own migration urgency:&lt;p&gt;&lt;strong&gt;2016&lt;/strong&gt;&lt;p&gt;NIST opens the Post-Quantum Cryptography Standardization process. 69 algorithms submitted from researchers worldwide.&lt;p&gt;&lt;strong&gt;2022&lt;/strong&gt;&lt;p&gt;NIST announces four finalists: CRYSTALS-Kyber (KEM), CRYSTALS-Dilithium, FALCON, and SPHINCS+ (signatures).&lt;p&gt;&lt;strong&gt;August 2024&lt;/strong&gt;&lt;p&gt;FIPS 203 (ML-KEM / Kyber), FIPS 204 (ML-DSA / Dilithium), and FIPS 205 (SLH-DSA / SPHINCS+) finalized. These are the first post-quantum cryptographic standards in history.&lt;p&gt;&lt;strong&gt;2025 — JDK 24 / 25&lt;/strong&gt;&lt;p&gt;&lt;a href=https://openjdk.org/jeps/496 target=_blank rel=&#34;noreferrer noopener&#34;&gt;JEP 496&lt;/a&gt; (Quantum-Resistant Module-Lattice-Based Key Encapsulation) and &lt;a href=https://openjdk.org/jeps/497 target=_blank rel=&#34;noreferrer noopener&#34;&gt;JEP 497&lt;/a&gt; (Quantum-Resistant Module-Lattice-Based Digital Signatures) integrated into the JCA provider in JDK 24 and 25 as preview / standard features.&lt;p&gt;&lt;strong&gt;2030 (estimated)&lt;/strong&gt;&lt;p&gt;NIST plans to begin deprecating classical algorithms for federal use. Most compliance frameworks (FedRAMP, CMMC, PCI-DSS) expected to follow with mandatory PQC timelines.&lt;p&gt;&lt;strong&gt;2035 (estimated)&lt;/strong&gt;&lt;p&gt;Cryptographically relevant quantum computers (CRQCs) possible according to multiple national intelligence assessments, including the US NSA and UK NCSC. Classical asymmetric algorithms considered at risk.&lt;p class=has-text-align-center&gt;&lt;strong&gt;Security bit levels: classical vs post-quantum algorithms under quantum attack&lt;/strong&gt;&lt;div class=wp-block-image&gt;&lt;figure class=&#34;aligncenter size-full&#34;&gt;&lt;a href=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-11_17-51-46.png&gt;&lt;img data-lazyloaded=1 src=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-11_17-51-46.png fetchpriority=high decoding=async width=600 height=354 data-src=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-11_17-51-46.png alt class=wp-image-142733 data-srcset=&#34;https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-11_17-51-46.png 600w, https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-11_17-51-46-300x177.png 300w&#34; data-sizes=&#34;(max-width: 600px) 100vw, 600px&#34;&gt;&lt;noscript&gt;&lt;img fetchpriority=high decoding=async width=600 height=354 src=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-11_17-51-46.png alt class=wp-image-142733 srcset=&#34;https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-11_17-51-46.png 600w, https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-11_17-51-46-300x177.png 300w&#34; sizes=&#34;(max-width: 600px) 100vw, 600px&#34;&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;figcaption class=wp-element-caption&gt;Effective security in bits when attacked by a cryptographically relevant quantum computer (Grover / Shor). Higher is better. Source: NIST SP 800-57, FIPS 203–205.&lt;strong&gt; Quantum security estimates use Grover’s algorithm for symmetric and Shor’s algorithm for asymmetric schemes. PQC estimates based on NIST parameter set specifications.&lt;/strong&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;&lt;h2 class=wp-block-heading&gt;2. The Three NIST Standards: What Each One Does and What It Replaces&lt;/h2&gt;&lt;p&gt;Before diving into Java code, it is worth being precise about what each standard actually is — because the naming is inconsistent across documentation and the algorithms serve distinct purposes.&lt;figure class=wp-block-table&gt;&lt;table class=has-fixed-layout&gt;&lt;thead&gt;&lt;tr&gt;&lt;th class=has-text-align-left data-align=left&gt;FIPS Standard&lt;th class=has-text-align-left data-align=left&gt;Algorithm name&lt;th class=has-text-align-left data-align=left&gt;Origin name&lt;th class=has-text-align-left data-align=left&gt;Type&lt;th class=has-text-align-left data-align=left&gt;Replaces&lt;th class=has-text-align-left data-align=left&gt;JDK 25 support&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;FIPS 203&lt;td&gt;ML-KEM&lt;td&gt;CRYSTALS-Kyber&lt;td&gt;Key Encapsulation Mechanism (KEM)&lt;td&gt;RSA-OAEP, ECDH key exchange in TLS&lt;td&gt;JEP 496 — standard&lt;tr&gt;&lt;td&gt;FIPS 204&lt;td&gt;ML-DSA&lt;td&gt;CRYSTALS-Dilithium&lt;td&gt;Digital signature&lt;td&gt;RSA-PSS, ECDSA in JWT, TLS cert signing&lt;td&gt;JEP 497 — standard&lt;tr&gt;&lt;td&gt;FIPS 205&lt;td&gt;SLH-DSA&lt;td&gt;SPHINCS+&lt;td&gt;Stateless hash-based signature&lt;td&gt;RSA-PSS, ECDSA (conservative alternative)&lt;td&gt;BouncyCastle 1.80+&lt;tr&gt;&lt;td&gt;FIPS 206 (draft)&lt;td&gt;FN-DSA&lt;td&gt;FALCON&lt;td&gt;Digital signature (compact)&lt;td&gt;ECDSA where small signature size matters&lt;td&gt;BouncyCastle 1.80+&lt;/table&gt;&lt;/figure&gt;&lt;p&gt;The two algorithms with first-class JDK support — ML-KEM and ML-DSA — are both based on the hardness of the Module Learning With Errors (MLWE) problem, which is believed to resist attacks from both classical and quantum computers. ML-KEM handles key encapsulation (the process of establishing a shared secret over an untrusted channel, used in TLS), while ML-DSA handles digital signatures (used in JWT signing, TLS certificate verification, and code signing).&lt;p&gt;SLH-DSA (SPHINCS+) is the conservative choice if you distrust lattice-based cryptography — it is based entirely on hash functions, which have a longer and better-understood security history. Its downside is signature size: an SLH-DSA signature is roughly 8–50 KB depending on the parameter set, versus 2–4 KB for ML-DSA. That matters for JWT tokens in HTTP headers or for TLS certificate chains. Still, for signing artifacts, firmware, or code — where size is less critical — SLH-DSA is an excellent choice.&lt;div style=&#34;display:inline-block; margin: 15px 0;&#34;&gt;&lt;div id=adngin-JavaCodeGeeks_incontent_video-0 style=display:inline-block;&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;h2 class=wp-block-heading&gt;3. JDK 24 and 25 Support: What Is in the Box&lt;/h2&gt;&lt;p&gt;&lt;a href=https://openjdk.org/jeps/496 target=_blank rel=&#34;noreferrer noopener&#34;&gt;JEP 496&lt;/a&gt; landed in JDK 24 as a preview feature and was finalized in JDK 25, adding ML-KEM to the JCA provider under the algorithm name &lt;code&gt;&amp;#34;ML-KEM&amp;#34;&lt;/code&gt; with parameter sets &lt;code&gt;ML-KEM-512&lt;/code&gt;, &lt;code&gt;ML-KEM-768&lt;/code&gt;, and &lt;code&gt;ML-KEM-1024&lt;/code&gt;. &lt;a href=https://openjdk.org/jeps/497 target=_blank rel=&#34;noreferrer noopener&#34;&gt;JEP 497&lt;/a&gt; follows the same track, adding ML-DSA with parameter sets &lt;code&gt;ML-DSA-44&lt;/code&gt;, &lt;code&gt;ML-DSA-65&lt;/code&gt;, and &lt;code&gt;ML-DSA-87&lt;/code&gt;.&lt;p&gt;Critically, however, TLS 1.3 integration is not yet complete in the standard JDK TLS provider (JSSE). The &lt;code&gt;SunJSSE&lt;/code&gt; provider does not yet support ML-KEM as a named group for TLS key exchange by default. You can negotiate it experimentally via the &lt;code&gt;jdk.tls.namedGroups&lt;/code&gt; system property, but for production-grade hybrid TLS (a pattern we cover below), BouncyCastle’s JSSE provider is the more reliable path for now.&lt;p class=has-text-align-center&gt;&lt;strong&gt;PQC feature availability by Java version&lt;/strong&gt;&lt;div class=wp-block-image&gt;&lt;figure class=&#34;aligncenter size-full&#34;&gt;&lt;a href=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-11_17-52-50.png&gt;&lt;img data-lazyloaded=1 src=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-11_17-52-50.png decoding=async width=608 height=291 data-src=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-11_17-52-50.png alt class=wp-image-142734 data-srcset=&#34;https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-11_17-52-50.png 608w, https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-11_17-52-50-300x144.png 300w&#34; data-sizes=&#34;(max-width: 608px) 100vw, 608px&#34;&gt;&lt;noscript&gt;&lt;img decoding=async width=608 height=291 src=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-11_17-52-50.png alt class=wp-image-142734 srcset=&#34;https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-11_17-52-50.png 608w, https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-11_17-52-50-300x144.png 300w&#34; sizes=&#34;(max-width: 608px) 100vw, 608px&#34;&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;figcaption class=wp-element-caption&gt;Support level across JDK versions for each algorithm and integration point. Data from OpenJDK JEP tracker and BouncyCastle changelog. Sources: &lt;a href=https://openjdk.org/jeps/496 target=_blank rel=&#34;noreferrer noopener&#34;&gt;JEP 496&lt;/a&gt;, &lt;a href=https://openjdk.org/jeps/497 target=_blank rel=&#34;noreferrer noopener&#34;&gt;JEP 497&lt;/a&gt;, &lt;a href=https://www.bouncycastle.org/releasenotes.html target=_blank rel=&#34;noreferrer noopener&#34;&gt;BouncyCastle release notes&lt;/a&gt;.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;For teams on JDK 17 or 21 (the current LTS releases as of writing), the practical path to PQC today runs through &lt;a href=https://www.bouncycastle.org/java.html target=_blank rel=&#34;noreferrer noopener&#34;&gt;BouncyCastle 1.80+&lt;/a&gt;, which implements FIPS 203, 204, and 205 and integrates cleanly with the standard JCA &lt;code&gt;KeyPairGenerator&lt;/code&gt;, &lt;code&gt;Signature&lt;/code&gt;, and &lt;code&gt;KeyGenerator&lt;/code&gt; APIs. The same code runs on JDK 25 with the native provider once you remove the BouncyCastle provider registration — the API surface is identical.&lt;h2 class=wp-block-heading&gt;4. TLS: Hybrid Key Exchange and What to Configure&lt;/h2&gt;&lt;p&gt;The recommended migration strategy for TLS is not to rip out ECDH and replace it wholesale with ML-KEM overnight. Instead, the cryptographic community — including the &lt;a href=https://www.ietf.org/archive/id/draft-ietf-tls-hybrid-design-09.txt target=_blank rel=&#34;noreferrer noopener&#34;&gt;IETF TLS hybrid design draft&lt;/a&gt; — recommends a &lt;strong&gt;hybrid key exchange&lt;/strong&gt; approach: combine a classical algorithm (ECDH P-256 or X25519) with a post-quantum KEM (ML-KEM-768) such that the resulting shared secret is secure unless both algorithms are simultaneously broken. This gives you quantum resistance against HNDL attacks while maintaining backward compatibility with classical infrastructure.&lt;p&gt;In practice, hybrid TLS in Java today requires BouncyCastle’s JSSE provider. Below is a working configuration using Spring Boot 3.x with the BC-JSSE provider, enabling the &lt;code&gt;X25519MLKEM768&lt;/code&gt; hybrid named group — the same group now supported in Chrome and Firefox:&lt;pre class=brush:xml&gt;&amp;lt;!-- pom.xml — add BouncyCastle TLS and FIPS providers --&amp;gt;&#xA;&amp;lt;dependency&amp;gt;&#xA;    &amp;lt;groupId&amp;gt;org.bouncycastle&amp;lt;/groupId&amp;gt;&#xA;    &amp;lt;artifactId&amp;gt;bcprov-jdk18on&amp;lt;/artifactId&amp;gt;&#xA;    &amp;lt;version&amp;gt;1.80&amp;lt;/version&amp;gt;&#xA;&amp;lt;/dependency&amp;gt;&#xA;&amp;lt;dependency&amp;gt;&#xA;    &amp;lt;groupId&amp;gt;org.bouncycastle&amp;lt;/groupId&amp;gt;&#xA;    &amp;lt;artifactId&amp;gt;bctls-jdk18on&amp;lt;/artifactId&amp;gt;&#xA;    &amp;lt;version&amp;gt;1.80&amp;lt;/version&amp;gt;&#xA;&amp;lt;/dependency&amp;gt;&#xA;&lt;/pre&gt;&lt;pre class=brush:java&gt;import org.bouncycastle.jsse.provider.BouncyCastleJsseProvider;&#xA;import org.bouncycastle.jce.provider.BouncyCastleProvider;&#xA;import javax.net.ssl.*;&#xA;import java.security.Security;&#xA;&#xA;public class PQCTlsConfig {&#xA;&#xA;    public static SSLContext buildHybridTlsContext() throws Exception {&#xA;        // Register BC providers at the front of the provider list&#xA;        Security.insertProviderAt(new BouncyCastleProvider(), 1);&#xA;        Security.insertProviderAt(new BouncyCastleJsseProvider(), 2);&#xA;&#xA;        SSLContext ctx = SSLContext.getInstance(&amp;#34;TLSv1.3&amp;#34;, &amp;#34;BCJSSE&amp;#34;);&#xA;&#xA;        // KeyManager and TrustManager loaded from your existing KeyStore&#xA;        KeyManagerFactory kmf = KeyManagerFactory.getInstance(&amp;#34;PKIX&amp;#34;, &amp;#34;BCJSSE&amp;#34;);&#xA;        TrustManagerFactory tmf = TrustManagerFactory.getInstance(&amp;#34;PKIX&amp;#34;, &amp;#34;BCJSSE&amp;#34;);&#xA;        // kmf.init(keyStore, password);  tmf.init(trustStore);&#xA;        ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);&#xA;&#xA;        // Enable the hybrid X25519 + ML-KEM-768 named group for key exchange&#xA;        SSLParameters params = ctx.getDefaultSSLParameters();&#xA;        params.setNamedGroups(new String[]{&#xA;            &amp;#34;X25519MLKEM768&amp;#34;,   // hybrid PQC (recommended for transition)&#xA;            &amp;#34;x25519&amp;#34;,           // classical fallback&#xA;            &amp;#34;secp256r1&amp;#34;         // classical fallback&#xA;        });&#xA;        ctx.getDefaultSSLParameters().setNamedGroups(params.getNamedGroups());&#xA;&#xA;        return ctx;&#xA;    }&#xA;}&#xA;&lt;/pre&gt;&lt;blockquote class=&#34;wp-block-quote is-layout-flow wp-block-quote-is-layout-flow&#34;&gt;&lt;p&gt;TLS has two distinct cryptographic operations: &lt;strong&gt;key exchange&lt;/strong&gt; (establishing the session secret — this is where ML-KEM applies) and &lt;strong&gt;certificate signature verification&lt;/strong&gt; (authenticating the server’s identity — this is where ML-DSA would apply). Today’s recommendation is to upgrade key exchange to hybrid PQC immediately, but continue using classical ECDSA or RSA for certificate signatures until browser trust stores and intermediate CA infrastructure catches up to ML-DSA certificates.&lt;/blockquote&gt;&lt;h2 class=wp-block-heading&gt;5. JWT Signing: ML-DSA Keys and What Changes in Your Token Pipeline&lt;/h2&gt;&lt;p&gt;JSON Web Tokens signed with RS256 (RSA + SHA-256) or ES256 (ECDSA + P-256) are quantum-vulnerable — Shor’s algorithm can recover the private key from any captured signature. The post-quantum replacement is ML-DSA, which produces a different key type, a different signature format, and larger tokens.&lt;p&gt;The first thing to understand is that no major JWT library — Nimbus JOSE+JWT, jjwt, Auth0 java-jwt — natively supports ML-DSA algorithm identifiers yet, because the IANA “JSON Web Algorithms” registry has not yet assigned official algorithm names for FIPS 204. IETF drafts are in progress (&lt;a href=https://www.ietf.org/archive/id/draft-ietf-cose-dilithium-01.txt target=_blank rel=&#34;noreferrer noopener&#34;&gt;draft-ietf-cose-dilithium&lt;/a&gt;), and the expected registered name is &lt;code&gt;&amp;#34;ML-DSA-65&amp;#34;&lt;/code&gt;. In the interim, you can use custom algorithm identifiers with Nimbus JOSE+JWT’s extensible algorithm framework:&lt;pre class=brush:java&gt;import com.nimbusds.jose.*;&#xA;import com.nimbusds.jose.crypto.*;&#xA;import com.nimbusds.jwt.*;&#xA;import org.bouncycastle.jce.provider.BouncyCastleProvider;&#xA;import org.bouncycastle.pqc.jcajce.provider.BouncyCastlePQCProvider;&#xA;import java.security.*;&#xA;import java.util.Date;&#xA;&#xA;public class PQCJwtExample {&#xA;&#xA;    static {&#xA;        Security.addProvider(new BouncyCastleProvider());&#xA;        Security.addProvider(new BouncyCastlePQCProvider());&#xA;    }&#xA;&#xA;    // Generate an ML-DSA-65 key pair using BouncyCastle (JDK 17/21 compatible)&#xA;    public static KeyPair generateMlDsaKeyPair() throws Exception {&#xA;        KeyPairGenerator kpg = KeyPairGenerator.getInstance(&amp;#34;ML-DSA&amp;#34;, &amp;#34;BCPQC&amp;#34;);&#xA;        // ML-DSA-65 offers 128-bit quantum security — the recommended general-purpose parameter set&#xA;        kpg.initialize(new org.bouncycastle.pqc.jcajce.spec.MLDSAParameterSpec(&#xA;            org.bouncycastle.pqc.jcajce.spec.MLDSAParameterSpec.ml_dsa_65&#xA;        ));&#xA;        return kpg.generateKeyPair();&#xA;    }&#xA;&#xA;    // Sign a JWT with ML-DSA-65 using a custom JWS algorithm identifier&#xA;    // Note: &amp;#34;ML-DSA-65&amp;#34; as alg header is a placeholder until IANA registration completes&#xA;    public static String signToken(KeyPair keyPair, String subject) throws Exception {&#xA;        JWSSigner signer = new Ed25519Signer((java.security.interfaces.EdECPrivateKey) null) {&#xA;            // Custom signer delegating to ML-DSA via JCA Signature API&#xA;            @Override&#xA;            public Base64URL sign(JWSHeader header, byte[] signingInput) throws JOSEException {&#xA;                try {&#xA;                    Signature sig = Signature.getInstance(&amp;#34;ML-DSA&amp;#34;, &amp;#34;BCPQC&amp;#34;);&#xA;                    sig.initSign(keyPair.getPrivate());&#xA;                    sig.update(signingInput);&#xA;                    return Base64URL.encode(sig.sign());&#xA;                } catch (Exception e) { throw new JOSEException(&amp;#34;ML-DSA signing failed&amp;#34;, e); }&#xA;            }&#xA;            @Override&#xA;            public Set&amp;lt;JWSAlgorithm&amp;gt; supportedJWSAlgorithms() {&#xA;                return Collections.singleton(new JWSAlgorithm(&amp;#34;ML-DSA-65&amp;#34;));&#xA;            }&#xA;        };&#xA;&#xA;        JWSHeader header = new JWSHeader.Builder(new JWSAlgorithm(&amp;#34;ML-DSA-65&amp;#34;))&#xA;            .type(JOSEObjectType.JWT).build();&#xA;&#xA;        JWTClaimsSet claims = new JWTClaimsSet.Builder()&#xA;            .subject(subject)&#xA;            .issuer(&amp;#34;https://auth.example.com&amp;#34;)&#xA;            .expirationTime(new Date(System.currentTimeMillis() + 3_600_000))&#xA;            .build();&#xA;&#xA;        SignedJWT jwt = new SignedJWT(header, claims);&#xA;        jwt.sign(signer);&#xA;        return jwt.serialize();&#xA;    }&#xA;}&#xA;&lt;/pre&gt;&lt;p&gt;An ML-DSA-65 signature is approximately &lt;strong&gt;3,293 bytes&lt;/strong&gt;, compared to 64 bytes for ES256 (ECDSA P-256). This has a direct impact on HTTP Authorization header sizes, cookie storage limits, and any system that stores or indexes JWT tokens. Plan for roughly a 4–5× increase in token payload size when using ML-DSA. If that is unacceptable, FN-DSA (FALCON) produces ~1,280-byte signatures — but at the cost of a more complex key generation procedure and no current IANA registration.&lt;p class=has-text-align-center&gt;&lt;strong&gt;Signature and public key sizes: classical vs post-quantum algorithms (bytes)&lt;/strong&gt;&lt;div class=wp-block-image&gt;&lt;figure class=&#34;aligncenter size-full&#34;&gt;&lt;a href=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-11_17-56-00.png&gt;&lt;img data-lazyloaded=1 src=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-11_17-56-00.png decoding=async width=611 height=311 data-src=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-11_17-56-00.png alt class=wp-image-142735 data-srcset=&#34;https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-11_17-56-00.png 611w, https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-11_17-56-00-300x153.png 300w&#34; data-sizes=&#34;(max-width: 611px) 100vw, 611px&#34;&gt;&lt;noscript&gt;&lt;img decoding=async width=611 height=311 src=https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-11_17-56-00.png alt class=wp-image-142735 srcset=&#34;https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-11_17-56-00.png 611w, https://www.javacodegeeks.com/wp-content/uploads/2026/04/2026-04-11_17-56-00-300x153.png 300w&#34; sizes=&#34;(max-width: 611px) 100vw, 611px&#34;&gt;&lt;/noscript&gt;&lt;/a&gt;&lt;figcaption class=wp-element-caption&gt;Directly impacts JWT token sizes, TLS certificate chain sizes, and storage requirements. Logarithmic scale — each gridline is 10×. Sizes from FIPS 203, 204, 205 specifications and FALCON specification. Logarithmic scale used due to large range.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;&lt;h2 class=wp-block-heading&gt;6. Key Management: KeyStore, KeyGenerator, and Storage Implications&lt;/h2&gt;&lt;p&gt;Key management is where the practical friction of PQC migration is highest. The standard Java KeyStore formats — JKS, PKCS12, and JCE — support any key type that implements the &lt;code&gt;java.security.Key&lt;/code&gt; interface, so ML-KEM and ML-DSA keys can be stored in an existing PKCS12 keystore without format changes. However, hardware security modules (HSMs), cloud KMS services, and PKCS#11 providers are a different story.&lt;p&gt;As of April 2026, most HSMs do not yet support ML-KEM or ML-DSA natively. AWS KMS, Google Cloud KMS, and Azure Key Vault have all announced PQC roadmaps but have not shipped GA support. The practical consequence is that for applications relying on an HSM-backed keystore, you will need to either generate and store PQC keys in a software keystore (with appropriate wrapping or protection strategy) or wait for HSM vendor support.&lt;pre class=brush:java&gt;import org.bouncycastle.pqc.jcajce.provider.BouncyCastlePQCProvider;&#xA;import org.bouncycastle.pqc.jcajce.spec.MLKEMParameterSpec;&#xA;import java.security.*;&#xA;import java.security.KeyStore.*;&#xA;import java.io.*;&#xA;&#xA;public class PQCKeyManagement {&#xA;&#xA;    static {&#xA;        Security.addProvider(new BouncyCastleProvider());&#xA;        Security.addProvider(new BouncyCastlePQCProvider());&#xA;    }&#xA;&#xA;    // Generate ML-KEM-768 key pair — recommended for general-purpose key encapsulation&#xA;    public static KeyPair generateMlKemKeyPair() throws Exception {&#xA;        KeyPairGenerator kpg = KeyPairGenerator.getInstance(&amp;#34;ML-KEM&amp;#34;, &amp;#34;BCPQC&amp;#34;);&#xA;        kpg.initialize(MLKEMParameterSpec.ml_kem_768);&#xA;        return kpg.generateKeyPair();&#xA;    }&#xA;&#xA;    // Store PQC keys in a standard PKCS12 keystore — no format change required&#xA;    public static void storePqcKeyPair(KeyPair keyPair, char[] password,&#xA;                                        String alias, String outputPath) throws Exception {&#xA;        KeyStore ks = KeyStore.getInstance(&amp;#34;PKCS12&amp;#34;);&#xA;        ks.load(null, password); // create new keystore&#xA;&#xA;        // Self-signed certificate wrapper is needed for PKCS12 private key entries&#xA;        // In production, get this from your CA with an ML-DSA subject key&#xA;        java.security.cert.Certificate[] chain = generateSelfSignedCert(keyPair);&#xA;&#xA;        ks.setKeyEntry(alias, keyPair.getPrivate(), password, chain);&#xA;&#xA;        try (FileOutputStream fos = new FileOutputStream(outputPath)) {&#xA;            ks.store(fos, password);&#xA;        }&#xA;        System.out.println(&amp;#34;Stored ML-KEM-768 key pair to: &amp;#34; + outputPath);&#xA;    }&#xA;&#xA;    // Retrieve and use the stored ML-KEM key pair&#xA;    public static KeyPair loadPqcKeyPair(String keystorePath,&#xA;                                          char[] password, String alias) throws Exception {&#xA;        KeyStore ks = KeyStore.getInstance(&amp;#34;PKCS12&amp;#34;);&#xA;        try (FileInputStream fis = new FileInputStream(keystorePath)) {&#xA;            ks.load(fis, password);&#xA;        }&#xA;        PrivateKey privateKey = (PrivateKey) ks.getKey(alias, password);&#xA;        PublicKey publicKey   = ks.getCertificate(alias).getPublicKey();&#xA;        return new KeyPair(publicKey, privateKey);&#xA;    }&#xA;&#xA;    private static java.security.cert.Certificate[] generateSelfSignedCert(KeyPair kp)&#xA;            throws Exception {&#xA;        // Use BouncyCastle X509 certificate generator for ML-DSA/ML-KEM subject keys&#xA;        // Omitted for brevity — see BouncyCastle X509v3CertificateBuilder docs&#xA;        return new java.security.cert.Certificate[]{};&#xA;    }&#xA;}&#xA;&lt;/pre&gt;&lt;h2 class=wp-block-heading&gt;7. What Breaks in Your Existing Code and How to Fix It&lt;/h2&gt;&lt;p&gt;Beyond the specific code changes above, there are several existing patterns that break or require adjustment when you introduce PQC algorithms. Each one is straightforward to address once you know to look for it.&lt;figure class=wp-block-table&gt;&lt;table class=has-fixed-layout&gt;&lt;thead&gt;&lt;tr&gt;&lt;th class=has-text-align-left data-align=left&gt;Existing pattern&lt;th class=has-text-align-left data-align=left&gt;Problem&lt;th class=has-text-align-left data-align=left&gt;Fix&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Hardcoded algorithm strings like &lt;code&gt;&amp;#34;RSA&amp;#34;&lt;/code&gt;, &lt;code&gt;&amp;#34;EC&amp;#34;&lt;/code&gt;&lt;td&gt;Will not resolve to PQC algorithms&lt;td&gt;Replace with &lt;code&gt;&amp;#34;ML-KEM&amp;#34;&lt;/code&gt; / &lt;code&gt;&amp;#34;ML-DSA&amp;#34;&lt;/code&gt; and add BC provider&lt;tr&gt;&lt;td&gt;JWT libraries with algorithm whitelist&lt;td&gt;Most libraries reject unknown algorithm identifiers&lt;td&gt;Use extensible custom algorithm framework (Nimbus) or wait for library updates&lt;tr&gt;&lt;td&gt;TLS cipher suite allow-lists&lt;td&gt;Static lists will block hybrid KEM named groups&lt;td&gt;Add &lt;code&gt;X25519MLKEM768&lt;/code&gt; to named group list; keep classical fallbacks&lt;tr&gt;&lt;td&gt;Key size validation (e.g. “minimum 2048-bit RSA”)&lt;td&gt;ML-KEM/ML-DSA key sizes are not directly comparable to RSA key sizes&lt;td&gt;Validate by algorithm name and parameter set, not raw key size in bits&lt;tr&gt;&lt;td&gt;HTTP header size limits (load balancers, API gateways)&lt;td&gt;ML-DSA JWT tokens are 4–5× larger than ECDSA tokens&lt;td&gt;Increase header buffer limits; consider short-lived opaque token references for high-throughput APIs&lt;tr&gt;&lt;td&gt;HSM-backed private key operations&lt;td&gt;Most HSMs do not yet support PQC algorithms natively&lt;td&gt;Use software keystore for PQC keys now; migrate to HSM when vendor support lands&lt;tr&gt;&lt;td&gt;Certificate pinning with classical ECDSA pins&lt;td&gt;Pinned certificates will be invalid once you rotate to ML-DSA certs&lt;td&gt;Plan pin rotation as part of certificate migration; pin by SPKI hash, not algorithm&lt;tr&gt;&lt;td&gt;Serialised &lt;code&gt;PublicKey&lt;/code&gt; objects in databases&lt;td&gt;PQC public keys use different DER/SubjectPublicKeyInfo OIDs&lt;td&gt;Re-encode keys in standard SPKI format; update OID-based lookups&lt;/table&gt;&lt;/figure&gt;&lt;h2 class=wp-block-heading&gt;8. Your Migration Checklist for 2026&lt;/h2&gt;&lt;p&gt;PQC migration does not need to happen in a single sprint. The recommended approach is a phased transition that prioritises the highest-risk attack surface first — TLS key exchange, which is the vector for HNDL attacks — and defers less urgent changes like certificate authority migration to later phases.&lt;p&gt;&lt;strong&gt;Phase 1 — immediate (now)&lt;/strong&gt;&lt;p&gt;1. Audit all services using RSA or ECDH for TLS key exchange. Add hybrid named groups (&lt;code&gt;X25519MLKEM768&lt;/code&gt;) via BouncyCastle JSSE.&lt;br&gt;2. Upgrade BouncyCastle to 1.80+ in all projects.&lt;br&gt;3. Upgrade to JDK 21 LTS minimum; evaluate JDK 25 for services where you need native ML-KEM / ML-DSA support without BouncyCastle.&lt;br&gt;4. Ensure AES-256 (not AES-128) is used for all symmetric encryption at rest and in transit.&lt;p&gt;&lt;strong&gt;Phase 2 — near term (6–18 months)&lt;/strong&gt;&lt;p&gt;5. Identify all JWT issuers and verifiers. Plan algorithm agility: store algorithm identifier alongside keys so you can rotate without code changes.&lt;br&gt;6. Increase HTTP header and response size limits to accommodate larger PQC signatures.&lt;br&gt;7. Engage your HSM vendor to confirm PQC roadmap timing.&lt;br&gt;8. Review certificate pinning implementations to ensure they are algorithm-agnostic.&lt;p&gt;&lt;strong&gt;Phase 3 — medium term (18–36 months)&lt;/strong&gt;&lt;p&gt;9. Rotate JWT signing keys to ML-DSA-65 once IANA registration and library support is GA.&lt;br&gt;10. Request or issue ML-DSA TLS certificates from your CA once the CA/B Forum and browser trust stores support them.&lt;br&gt;11. Migrate HSM-backed key operations to PQC once your HSM vendor ships support.&lt;br&gt;12. Review all compliance requirements (FedRAMP, PCI-DSS, ISO 27001) for PQC migration mandates as standards bodies update their frameworks.&lt;h2 class=wp-block-heading&gt;9. What We’ve Learned&lt;/h2&gt;&lt;p&gt;The shift to post-quantum cryptography is not a distant theoretical concern — it is a concrete engineering project with a specific starting point, specific algorithms, and specific Java APIs you can use today. NIST’s finalization of FIPS 203, 204, and 205 in August 2024 gave the industry the stable target it needed. JDK 24 and 25 have made ML-KEM and ML-DSA first-class JCA citizens. BouncyCastle 1.80+ bridges the gap for teams on JDK 17 and 21.&lt;p&gt;The most urgent change is enabling hybrid TLS key exchange — because the HNDL threat means traffic recorded today can be decrypted in a future with quantum hardware. JWT signing and key management follow on a less urgent but still concrete timeline. The key lesson across all three areas is the same: build algorithm agility in now, before you are forced to make breaking changes under a compliance deadline. The algorithms change; the JCA API pattern stays the same.&lt;/p&gt;&lt;style&gt;.lepopup-progress-60 div.lepopup-progress-t1&gt;div{background-color:#e0e0e0;}.lepopup-progress-60 div.lepopup-progress-t1&gt;div&gt;div{background-color:#bd4070;}.lepopup-progress-60 div.lepopup-progress-t1&gt;div&gt;div{color:#ffffff;}.lepopup-progress-60 div.lepopup-progress-t1&gt;label{color:#444444;}.lepopup-form-60, .lepopup-form-60 *, .lepopup-progress-60 {font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-signature-box span i{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#555555;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-signature-box,.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;text&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;email&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;password&#39;],.lepopup-form-60 .lepopup-element div.lepopup-input select,.lepopup-form-60 .lepopup-element div.lepopup-input select option,.lepopup-form-60 .lepopup-element div.lepopup-input textarea{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#555555;font-style:normal;text-decoration:none;text-align:left;background-color:rgba(255, 255, 255, 0.7);background-image:none;border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow: inset 0px 0px 15px -7px #000000;}.lepopup-form-60 .lepopup-element div.lepopup-input ::placeholder{color:#555555; opacity: 0.9;} .lepopup-form-60 .lepopup-element div.lepopup-input ::-ms-input-placeholder{color:#555555; opacity: 0.9;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect::-webkit-scrollbar-thumb{background-color:#cccccc;}.lepopup-form-60 .lepopup-element div.lepopup-input&gt;i.lepopup-icon-left, .lepopup-form-60 .lepopup-element div.lepopup-input&gt;i.lepopup-icon-right{font-size:20px;color:#444444;border-radius:0px;}.lepopup-form-60 .lepopup-element .lepopup-button,.lepopup-form-60 .lepopup-element .lepopup-button:visited{font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#ffffff;font-weight:700;font-style:normal;text-decoration:none;text-align:center;background-color:#326693;background-image:none;border-width:1px;border-style:solid;border-color:#326693;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element div.lepopup-input .lepopup-imageselect+label{border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element div.lepopup-input .lepopup-imageselect+label span.lepopup-imageselect-label{font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl:checked+label:after{background-color:rgba(255, 255, 255, 0.7);}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-classic+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-fa-check+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-square+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl+label{background-color:rgba(255, 255, 255, 0.7);border-color:#cccccc;color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-square:checked+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl:checked+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;checkbox&#39;].lepopup-checkbox-tgl+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-classic+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-fa-check+label,.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-dot+label{background-color:rgba(255, 255, 255, 0.7);border-color:#cccccc;color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input input[type=&#39;radio&#39;].lepopup-radio-dot:checked+label:after{background-color:#555555;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect&gt;input[type=&#39;checkbox&#39;]+label:hover{background-color:#bd4070;color:#ffffff;}.lepopup-form-60 .lepopup-element div.lepopup-input div.lepopup-multiselect&gt;input[type=&#39;checkbox&#39;]:checked+label{background-color:#a93a65;color:#ffffff;}.lepopup-form-60 .lepopup-element input[type=&#39;checkbox&#39;].lepopup-tile+label, .lepopup-form-60 .lepopup-element input[type=&#39;radio&#39;].lepopup-tile+label {font-size:15px;color:#444444;font-style:normal;text-decoration:none;text-align:center;background-color:#ffffff;background-image:none;border-width:1px;border-style:solid;border-color:#cccccc;border-radius:0px;box-shadow:none;}.lepopup-form-60 .lepopup-element-error{font-size:15px;color:#ffffff;font-style:normal;text-decoration:none;text-align:left;background-color:#d9534f;background-image:none;}.lepopup-form-60 .lepopup-element-2 {background-color:rgba(226, 236, 250, 1);background-image:none;border-width:1px;border-style:solid;border-color:rgba(216, 216, 216, 1);border-radius:3px;box-shadow: 1px 1px 15px -6px #d7e1eb;}.lepopup-form-60 .lepopup-element-3 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:26px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-3 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:26px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-3 .lepopup-element-html-content {min-height:73px;}.lepopup-form-60 .lepopup-element-4 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:19px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-4 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:19px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-4 .lepopup-element-html-content {min-height:23px;}.lepopup-form-60 .lepopup-element-5 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-5 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-5 .lepopup-element-html-content {min-height:24px;}.lepopup-form-60 .lepopup-element-6 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-6 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-6 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-7 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-7 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-7 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-8 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-8 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-8 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-9 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-9 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-9 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-10 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-10 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-10 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-11 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-11 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-11 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-12 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-12 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-12 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-13 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-13 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:15px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-13 .lepopup-element-html-content {min-height:18px;}.lepopup-form-60 .lepopup-element-14 div.lepopup-input .lepopup-icon-left, .lepopup-form-60 .lepopup-element-14 div.lepopup-input .lepopup-icon-right {line-height:36px;}.lepopup-form-60 .lepopup-element-15 div.lepopup-input{height:auto;line-height:1;}.lepopup-form-60 .lepopup-element-16 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:14px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-16 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:14px;color:#333333;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-16 .lepopup-element-html-content {min-height:5px;}.lepopup-form-60 .lepopup-element-19 * {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#333333;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-19 {font-family:&#39;Arial&#39;,&#39;arial&#39;;font-size:13px;color:#333333;font-style:normal;text-decoration:none;text-align:left;background-color:transparent;background-image:none;border-width:1px;border-style:none;border-color:transparent;border-radius:0px;box-shadow:none;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.lepopup-form-60 .lepopup-element-19 .lepopup-element-html-content {min-height:363px;}.lepopup-form-60 .lepopup-element-0 * {font-size:15px;color:#ffffff;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;}.lepopup-form-60 .lepopup-element-0 {font-size:15px;color:#ffffff;font-weight:normal;font-style:normal;text-decoration:none;text-align:left;background-color:#5cb85c;background-image:none;border-width:0px;border-style:solid;border-color:#ccc;border-radius:5px;box-shadow: 1px 1px 15px -6px #000000;padding-top:40px;padding-right:40px;padding-bottom:40px;padding-left:40px;}.lepopup-form-60 .lepopup-element-0 .lepopup-element-html-content {min-height:160px;}&lt;/style&gt;&lt;div class=lepopup-inline style=&#34;margin: 0 auto;&#34;&gt;&lt;div class=&#34;lepopup-form lepopup-form-60 lepopup-form-tujzRl6RCNJEXpyw lepopup-form-icon-inside lepopup-form-position-middle-right&#34; data-session=0 data-id=tujzRl6RCNJEXpyw data-form-id=60 data-slug=7lQM6oyWL5bTm5lw data-title=&#34;Under the Post Inline&#34; data-page=1 data-xd=off data-width=820 data-height=430 data-position=middle-right data-esc=off data-enter=on data-disable-scrollbar=off style=display:none;width:820px;height:430px; onclick=event.stopPropagation();&gt;&lt;div class=lepopup-form-inner style=width:820px;height:430px;&gt;&lt;div class=&#34;lepopup-element lepopup-element-2 lepopup-element-rectangle&#34; data-type=rectangle data-top=0 data-left=0 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:501;top:0px;left:0px;width:820px;height:430px;&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-3 lepopup-element-html&#34; data-type=html data-top=7 data-left=10 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:502;top:7px;left:10px;width:797px;height:73px;&gt;&lt;div class=lepopup-element-html-content&gt;Do you want to know how to develop your skillset to become a &lt;span style=&#34;color: #CAB43D; text-shadow: 1px 1px #835D5D;&#34;&gt;Java Rockstar?&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-4 lepopup-element-html&#34; data-type=html data-top=83 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:503;top:83px;left:308px;width:473px;height:23px;&gt;&lt;div class=lepopup-element-html-content&gt;Subscribe to our newsletter to start Rocking &lt;span style=&#34;text-decoration: underline;&#34;&gt;right now!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-5 lepopup-element-html&#34; data-type=html data-top=107 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:504;top:107px;left:308px;width:473px;height:24px;&gt;&lt;div class=lepopup-element-html-content&gt;To get you started we give you our best selling eBooks for &lt;span style=&#34;color:#e01404; text-shadow: 1px 1px #C99924; font-size: 15px;&#34;&gt;FREE!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-6 lepopup-element-html&#34; data-type=html data-top=136 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:505;top:136px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;1.&lt;/span&gt; JPA Mini Book&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-7 lepopup-element-html&#34; data-type=html data-top=156 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:506;top:156px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;2.&lt;/span&gt; JVM Troubleshooting Guide&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-8 lepopup-element-html&#34; data-type=html data-top=176 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:507;top:176px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;3.&lt;/span&gt; JUnit Tutorial for Unit Testing&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-9 lepopup-element-html&#34; data-type=html data-top=196 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:508;top:196px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;4.&lt;/span&gt; Java Annotations Tutorial&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-10 lepopup-element-html&#34; data-type=html data-top=216 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:509;top:216px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;5.&lt;/span&gt; Java Interview Questions&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-11 lepopup-element-html&#34; data-type=html data-top=236 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:510;top:236px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;6.&lt;/span&gt; Spring Interview Questions&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-12 lepopup-element-html&#34; data-type=html data-top=256 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:511;top:256px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;span style=&#34;font-weight: bold;&#34;&gt;7.&lt;/span&gt; Android UI Design&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-13 lepopup-element-html&#34; data-type=html data-top=282 data-left=308 data-animation-in=bounceInDown data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:512;top:282px;left:308px;width:473px;height:18px;&gt;&lt;div class=lepopup-element-html-content&gt;and many more ....&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-14&#34; data-type=email data-deps data-id=14 data-top=305 data-left=308 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:513;top:305px;left:308px;width:473px;height:36px;&gt;&lt;div class=lepopup-input&gt;&lt;input type=email name=lepopup-14 class=lepopup-ta-left placeholder=&#34;Enter your e-mail...&#34; autocomplete=email data-default aria-label=&#34;Email Field&#34; oninput=lepopup_input_changed(this); onfocus=lepopup_input_error_hide(this);&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-15&#34; data-type=checkbox data-deps data-id=15 data-top=344 data-left=308 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:514;top:344px;left:308px;width:160px;&gt;&lt;div class=&#34;lepopup-input lepopup-cr-layout-1 lepopup-cr-layout-left&#34;&gt;&lt;div class=&#34;lepopup-cr-container lepopup-cr-container-medium lepopup-cr-container-left&#34;&gt;&lt;div class=lepopup-cr-box&gt;&lt;input class=&#34;lepopup-checkbox lepopup-checkbox-classic lepopup-checkbox-medium&#34; type=checkbox name=lepopup-15[] id=lepopup-checkbox-OP9Tw5xRaTTWTwML-14-0 value=on data-default=off onchange=lepopup_input_changed(this);&gt;&lt;label for=lepopup-checkbox-OP9Tw5xRaTTWTwML-14-0 onclick=lepopup_input_error_hide(this);&gt;&lt;/label&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-cr-label lepopup-ta-left&#34;&gt;&lt;label for=lepopup-checkbox-OP9Tw5xRaTTWTwML-14-0 onclick=lepopup_input_error_hide(this);&gt;&lt;/label&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-16 lepopup-element-html&#34; data-type=html data-top=344 data-left=338 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:515;top:344px;left:338px;width:350px;height:5px;&gt;&lt;div class=lepopup-element-html-content&gt;I agree to the &lt;a href=https://www.javacodegeeks.com/about/terms-of-use target=_blank&gt;Terms&lt;/a&gt; and &lt;a href=https://www.javacodegeeks.com/about/privacy-policy target=_blank&gt;Privacy Policy&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-17&#34; data-type=button data-top=372 data-left=308 data-animation-in=bounceIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:516;top:372px;left:308px;width:85px;height:37px;&gt;&lt;a class=&#34;lepopup-button lepopup-button-zoom-out&#34; href=https://www.javacodegeeks.com/feed/ onclick=&#34;return lepopup_submit(this);&#34; data-label=&#34;Sign up&#34; data-loading=Loading...&gt;&lt;span&gt;Sign up&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-element lepopup-element-19 lepopup-element-html&#34; data-type=html data-top=67 data-left=-15 data-animation-in=fadeIn data-animation-out=fadeOut style=animation-duration:0ms;animation-delay:0ms;z-index:518;top:67px;left:-15px;width:320px;height:363px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;img data-lazyloaded=1 src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png decoding=async data-src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png alt width=320 height=363&gt;&lt;noscript&gt;&lt;img decoding=async src=https://www.javacodegeeks.com/wp-content/uploads/2015/01/books_promo.png alt width=320 height=363&gt;&lt;/noscript&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;lepopup-form lepopup-form-60 lepopup-form-tujzRl6RCNJEXpyw lepopup-form-icon-inside lepopup-form-position-middle-right&#34; data-session=0 data-id=tujzRl6RCNJEXpyw data-form-id=60 data-slug=7lQM6oyWL5bTm5lw data-title=&#34;Under the Post Inline&#34; data-page=confirmation data-xd=off data-width=420 data-height=320 data-position=middle-right data-esc=off data-enter=on data-disable-scrollbar=off style=display:none;width:420px;height:320px; onclick=event.stopPropagation();&gt;&lt;div class=lepopup-form-inner style=width:420px;height:320px;&gt;&lt;div class=&#34;lepopup-element lepopup-element-0 lepopup-element-html&#34; data-type=html data-top=80 data-left=70 data-animation-in=bounceInDown data-animation-out=fadeOutUp style=animation-duration:1000ms;animation-delay:0ms;z-index:500;top:80px;left:70px;width:280px;height:160px;&gt;&lt;div class=lepopup-element-html-content&gt;&lt;h4 style=&#34;text-align: center; font-size: 18px; font-weight: bold;&#34;&gt;Thank you!&lt;/h4&gt;&lt;p style=&#34;text-align: center;&#34;&gt;We will contact you soon.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;input type=hidden id=lepopup-logic-tujzRl6RCNJEXpyw value=[]&gt;&lt;/div&gt;&lt;div class=&#34;post-bottom-meta post-bottom-tags post-tags-classic&#34;&gt;&lt;div class=post-bottom-meta-title&gt;&lt;span class=tie-icon-tags aria-hidden=true&gt;&lt;/span&gt;Tags&lt;/div&gt;&lt;span class=tagcloud&gt;&lt;a href=https://www.javacodegeeks.com/tag/java-security rel=tag&gt;Java Security&lt;/a&gt; &lt;a href=https://www.javacodegeeks.com/tag/nistpqc rel=tag&gt;NISTPQC&lt;/a&gt; &lt;a href=https://www.javacodegeeks.com/tag/post-quantum-cryptography-2 rel=tag&gt;Post Quantum Cryptography&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=post-extra-info&gt;&lt;div class=theiaStickySidebar&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=clearfix&gt;&lt;/div&gt;</description>
      <author>Eleftheria Drosopoulou</author>
      <guid>https://www.javacodegeeks.com/2026/04/post-quantum-cryptography-in-java-what-the-nist-standards-mean-for-your-tls-jwt-and-key-management-code.html</guid>
      <pubDate>Thu, 16 Apr 2026 05:45:00 +0000</pubDate>
    </item>
  </channel>
</rss>