PageSourceSearch

https://www.javaadvent.com/calendar

html javaadvent.com collected 2026-10-03 22:00:56 UTC 69,789 bytes, 758 lines download raw bytes

1<!DOCTYPE html>
2
3<html class="no-js" lang="en-US">
4
5	<head profile="http://gmpg.org/xfn/11">
6		
7		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
8		<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" >
9		 
10		<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
11<script>document.documentElement.className = document.documentElement.className.replace("no-js","js");</script>
11
12<!-- Jetpack Site Verification Tags -->
13<meta name="google-site-verification" content="nxwCqd78tXrmiHRFzHBUmse1FNbMpaFxhYTeBTS7pus">
14<meta name="msvalidate.01" content="C5E83869E9A630D3937463911DD0F38C">
15
16	<!-- This site is optimized with the Yoast SEO plugin v28.6 - https://yoast.com/product/yoast-seo-wordpress/ -->
17	<title>Calendar - JVM Advent</title>
18	<link rel="canonical" href="https://www.javaadvent.com/calendar" />
19	<link rel="next" href="https://www.javaadvent.com/calendar/page/2" />
20	<meta property="og:locale" content="en_US" />
21	<meta property="og:type" content="article" />
22	<meta property="og:title" content="Calendar - JVM Advent" />
23	<meta property="og:url" content="https://www.javaadvent.com/calendar" />
24	<meta property="og:site_name" content="JVM Advent" />
25	<meta name="twitter:card" content="summary_large_image" />
26	<meta name="twitter:site" content="@javaadvent" />
27	
27<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":["WebPage","CollectionPage"],"@id":"https:\/\/www.javaadvent.com\/calendar","url":"https:\/\/www.javaadvent.com\/calendar","name":"Calendar - JVM Advent","isPartOf":{"@id":"https:\/\/www.javaadvent.com\/#website"},"datePublished":"2021-10-01T13:39:08+00:00","dateModified":"2023-11-26T05:47:00+00:00","breadcrumb":{"@id":"https:\/\/www.javaadvent.com\/calendar#breadcrumb"},"inLanguage":"en-US"},{"@type":"BreadcrumbList","@id":"https:\/\/www.javaadvent.com\/calendar#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javaadvent.com\/"},{"@type":"ListItem","position":2,"name":"Calendar"}]},{"@type":"WebSite","@id":"https:\/\/www.javaadvent.com\/#website","url":"https:\/\/www.javaadvent.com\/","name":"JVM Advent","description":"The JVM Programming Advent Calendar","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javaadvent.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}</script>
27
28	<!-- / Yoast SEO plugin. -->
29
30
31<link rel='dns-prefetch' href='//secure.gravatar.com' />
32<link rel='dns-prefetch' href='//v0.wordpress.com' />
33<link rel='dns-prefetch' href='//jetpack.wordpress.com' />
34<link rel='dns-prefetch' href='//s0.wp.com' />
35<link rel='dns-prefetch' href='//public-api.wordpress.com' />
36<link rel='dns-prefetch' href='//widgets.wp.com' />
37<link rel='dns-prefetch' href='//0.gravatar.com' />
38<link rel='dns-prefetch' href='//1.gravatar.com' />
39<link rel='dns-prefetch' href='//2.gravatar.com' />
40<link rel='preconnect' href='//i0.wp.com' />
41<link rel='preconnect' href='//c0.wp.com' />
42<link rel="alternate" type="application/rss+xml" title="JVM Advent &raquo; Feed" href="http://feeds.feedburner.com/JavaAdventCalendar" />
43<link rel="alternate" type="application/rss+xml" title="JVM Advent &raquo; Comments Feed" href="https://www.javaadvent.com/comments/feed" />
44<style id="wp-img-auto-sizes-contain-inline-css">
45img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
46/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
47</style>
48<style id="wp-emoji-styles-inline-css">
49
50	img.wp-smiley, img.emoji {
51		display: inline !important;
52		border: none !important;
53		box-shadow: none !important;
54		height: 1em !important;
55		width: 1em !important;
56		margin: 0 0.07em !important;
57		vertical-align: -0.1em !important;
58		background: none !important;
59		padding: 0 !important;
60	}
61/*# sourceURL=wp-emoji-styles-inline-css */
62</style>
63<style id="wp-block-library-inline-css">
64:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
64--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
65
66/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */
67</style>
68<style id="classic-theme-styles-inline-css">
69/*! This file is auto-generated */
70.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
71/*# sourceURL=/wp-includes/css/classic-themes.min.css */
72</style>
73
74<style id="global-styles-inline-css">
75:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #1d1d1d;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #fff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--accent: #3bc492;--wp--preset--color--dark-gray: #555;--wp--preset--color--light-gray: #757575;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,
750) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 14px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 21px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--normal: 16px;--wp--preset--font-size--larger: 26px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-accent-color{color: var(--wp--preset--color--accent) !important;}.has-dark-gray-color{color: var(--wp--preset--color--dark-gray) !important;}.has-light-gray-color{color: var(--wp--preset--color--light-gray) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-accent-background-color{background-color: var(--wp--preset--color--accent) !important;}.has-dark-gray-background-color{background-color: var(--wp--preset--color--dark-gray) !important;}.has-light-gray-background-color{background-color: var(--wp--preset--color--light-gray) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-accent-border-color{border-color: var(--wp--preset--color--accent) !important;}.has-dark-gray-border-color{border-color: var(--wp--preset--color--dark-gray) !important;}.has-light-gray-border-color{border-color: var(--wp--preset--color--light-gray) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
75.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-normal-font-size{font-size: var(--wp--preset--font-size--normal) !important;}.has-larger-font-size{font-size: var(--wp--preset--font-size--larger) !important;}
76/*# sourceURL=global-styles-inline-css */
77</style>
78
79<link rel='stylesheet' id='simple-banner-style-css' href='https://www.javaadvent.com/content/plugins/simple-banner/simple-banner.css?ver=3.3.2' media='all' />
80<link rel='stylesheet' id='yawab-author-box-css' href='https://www.javaadvent.com/content/plugins/yawab/style.css?ver=20181228' media='all' />
81<style id="jetpack-stats-inline-css">
82img#wpstats{display:none}
83/*# sourceURL=jetpack-stats-inline-css */
84</style>
85<style id="jetpack_likes-inline-css">
86#jp-post-flair{padding-top:.5em}#content div.sharedaddy,#main div.sharedaddy,div.sharedaddy{clear:both}div.sharedaddy h3.sd-title{display:inline-block;font-size:9pt;font-weight:700;line-height:1.2;margin:0 0 1em}div.sharedaddy h3.sd-title:before{border-top:1px solid #dcdcde;content:"";display:block;margin-bottom:1em;min-width:30px;width:100%}div.jetpack-likes-widget-wrapper{min-height:50px;position:relative;width:100%}div.jetpack-likes-widget-wrapper .sd-link-color{font-size:12px}div.jetpack-comment-likes-widget-wrapper{min-height:31px;position:relative;width:100%}div.jetpack-comment-likes-widget-wrapper iframe{margin-bottom:0}#likes-other-gravatars{background-color:#fff;border:1px solid #dcdcde;border-radius:4px;box-shadow:none;display:none;height:auto;max-height:240px;min-width:220px;overflow:auto;padding:9px 12px 10px;position:absolute;z-index:1000}#likes-other-gravatars *{line-height:normal}#likes-other-gravatars .likes-text{color:#101517;font-size:12px;font-weight:500;padding-bottom:8px}#likes-other-gravatars :is(li,ul){list-style-type:none;margin:0;padding:0;text-indent:0}#likes-other-gravatars li:before{content:""}#likes-other-gravatars ul.wpl-avatars{display:block;max-height:190px;overflow:auto}#likes-other-gravatars ul.wpl-avatars li{float:none;height:28px;margin:0 0 4px;width:196px}#likes-other-gravatars ul.wpl-avatars li a{align-items:center;border-bottom:none!important;display:flex;gap:8px;margin:0 2px 0 0;text-decoration:none}#likes-other-gravatars ul.wpl-avatars li a span{color:#2c3338;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#likes-other-gravatars ul.wpl-avatars li a img{background:none;border:none;border-radius:50%;box-sizing:border-box;margin:0!important;padding:1px!important;position:static}div.sd-box{border-top:1px solid #00000021}.jetpack-likes-widget-loaded iframe,.jetpack-likes-widget-loading .likes-widget-placeholder,.jetpack-likes-widget-unloaded .likes-widget-placeholder{display:block}.jetpack-likes-widget-loaded .likes-widget-placeholder,.jetpack-likes-widget-loading iframe,.jetpack-likes-widget-unloaded iframe{display:none}.comment-likes-widget,.entry-content .post-likes-widget,.post-likes-widget{border-width:0;margin:0}.comment-likes-widget-placeholder,.post-likes-widget-placeholder{border-width:0;margin:0;position:relative}.comment-likes-widget-placeholder{display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;height:18px;position:absolute}.comment-likes-widget-placeholder:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3Cpath fill='%232ea2cc' d='m12 2 2.582 6.953L22 9.257l-5.822 4.602L18.18 21 12 16.89 5.82 21l2.002-7.14L2 9.256l7.418-.304'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:16px 16px;color:#2ea2cc;content:"";display:inline-block;height:16px;padding-right:5px;position:relative;top:3px;width:16px}.post-likes-widget-placeholder .button{display:none}:is(.comment-likes-widget-placeholder,.post-likes-widget-placeholder) .loading{color:#999;font-size:12px}.comment-likes-widget-placeholder .loading{align-self:center;color:#4e4e4e;margin-top:4px;padding-left:5px}
86div.sharedaddy.sd-like-enabled .sd-like h3{display:none}div.sharedaddy.sd-like-enabled .sd-like .post-likes-widget{float:none;position:absolute;top:0;width:100%}.comment-likes-widget{width:100%}.cs-rating,.pd-rating{display:block!important}.sd-gplus .sd-title{display:none}@media print{.jetpack-likes-widget-wrapper{display:none}}
87/*# sourceURL=https://www.javaadvent.com/content/plugins/jetpack/_inc/build/likes/style.min.css */
88</style>
89<link rel='stylesheet' id='hitchcock_google_fonts-css' href='https://www.javaadvent.com/content/uploads/fonts/7ed5474470d445eb9888bc52a225318a/font.css?v=1783880475' media='all' />
90<link rel='stylesheet' id='hitchcock_fontawesome-css' href='https://www.javaadvent.com/content/themes/hitchcock-advent-theme/assets/fonts/font-awesome/css/font-awesome.css?ver=2.2.1' media='all' />
91<link rel='stylesheet' id='hitchcock_style-css' href='https://www.javaadvent.com/content/themes/hitchcock-advent-theme/style.css?ver=2.2.1' media='all' />
92<script id="jquery-core-js" src="https://c0.wp.com/c/7.1.2/wp-includes/js/jquery/jquery.min.js"></script>
vendor: 1 bytes, line 92
92
93<script id="jquery-migrate-js" src="https://c0.wp.com/c/7.1.2/wp-includes/js/jquery/jquery-migrate.min.js"></script>
vendor: 1 bytes, line 93
93
94<script id="simple-banner-script-js-before">
95const simpleBannerScriptParams = {"pro_version_enabled":"","debug_mode":false,"id":5916,"version":"3.3.2","banner_params":[{"hide_simple_banner":"yes","simple_banner_prepend_element":"body","simple_banner_position":"","header_margin":"","header_padding":"","wp_body_open_enabled":"","wp_body_open":true,"simple_banner_z_index":"","disabled_on_current_page":false,"disabled_pages_array":[],"is_current_page_a_post":true,"disabled_on_posts":"","simple_banner_disabled_page_paths":false,"simple_banner_font_size":"","simple_banner_color":"","simple_banner_text_color":"","simple_banner_link_color":"","simple_banner_close_color":"","simple_banner_text":"Win a one-year license for one of Jetbrains' amazing IDEs. Enter the raffle <a href=\"https:\/\/tinyurl.com\/javaadvent22-raffle\" target=\"_blank\">here<\/a>.","simple_banner_custom_css":"","simple_banner_scrolling_custom_css":"","simple_banner_text_custom_css":"","simple_banner_button_css":"","site_custom_css":"","keep_site_custom_css":"","site_custom_js":"","keep_site_custom_js":"","close_button_enabled":"on","close_button_expiration":"","close_button_cookie_set":false,"current_date":{"date":"2026-10-03 22:00:54.649575","timezone_type":3,"timezone":"UTC"},"start_date":{"date":"2026-10-03 22:00:54.649606","timezone_type":3,"timezone":"UTC"},"end_date":{"date":"2026-10-03 22:00:54.649627","timezone_type":3,"timezone":"UTC"},"simple_banner_start_after_date":"","simple_banner_remove_after_date":"","simple_banner_insert_inside_element":""}]}
96//# sourceURL=simple-banner-script-js-before
97</script>
vendor: 1 bytes, line 97
97
98<script id="simple-banner-script-js" src="https://www.javaadvent.com/content/plugins/simple-banner/simple-banner.js?ver=3.3.2"></script>
vendor: 1 bytes, line 98
98
99<script id="hitchcock_flexslider-js" src="https://www.javaadvent.com/content/themes/hitchcock-advent-theme/assets/js/flexslider.js?ver=2.2.1"></script>
vendor: 1 bytes, line 99
99
100<script id="hitchcock_doubletaptogo-js" src="https://www.javaadvent.com/content/themes/hitchcock-advent-theme/assets/js/doubletaptogo.js?ver=2.2.1"></script>
vendor: 1 bytes, line 100
100
101<script id="hitchcock_global-js" src="https://www.javaadvent.com/content/themes/hitchcock-advent-theme/assets/js/global.js?ver=2.2.1"></script>
101
102<link rel="https://api.w.org/" href="https://www.javaadvent.com/wp-json/" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.javaadvent.com/xmlrpc.php?rsd" />
103<meta name="generator" content="WordPress 7.1.2" />
104		<meta charset="utf-8">
105		<meta name="abstract" content="The JVM Programming Advent Calendar">
106		<meta name="author" content="gpanther">
107		<meta name="classification" content="@Primary, 2012, 2013, 2014, 2014 wrap up, 2015, 2015 wrap up, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 4financeit, achartengine, Actors, adopt openjdk, AI, Akka, Amazon Web Services, android, Apache OpenNLP, Apache Zeppelin, ArrayList, Artificial Intelligence, Atomic I/O, audio, Avatar, awesome graal, awk, bananas, bash, Bean Validation, benchmark, boot, Buffer, build, builders, bytecode, c/c++, Caching, CallableStatement, Camel, CI/CD, CircleCI, class file, Classloader, Cloud, CMS, code analysis, collections, command line, Composite, Continuous Query, CPU, cpu caches, debugging, Deep Learning, degraph, dependency, Dependency Injection, design pattern, developers, DevOps, distributed systems, Docker, Docker Image, DSL, executor, executorservice, Expect the unexpected, fork, free software, Friday 13, functional programming, functional relational programming, GAE, Gaming, garbage collection, GC, generics, Google App Engine, Google Cloud SQL, Google Cloud Storage, Graal Compiler, graalvm, gradle, groovy, guava, hardware counters, hg, High performance, hotspot, hybrid programming, I18N, iteration, java, java 8, java 9, Java Advent, java advent 2014, java agent, java closures, Java EE6, java self healing, javaagent, JavaEE, JavaScript, JAX-RS, JDBC, jdk, jdk 7, jdk 8, JDK 9, JEP, JInput, JIT, JMX, jni, join, jooq, JRebel, JSON API, JSR, JSR 353, jtreg, junit, JuPyteR, JuPyteR notebooks, JVM, JVM scripting, JVMCI, jypthon, jython, kawa, kotlin, lambda, LambdaJ, latency, lightweight, LinkedList, Linux, load testing, local, low latency, Machine Learning, macos, make, mathematics, maths, maven, mechanical sympathy, memory, Memory Barriers, memory mapped files, mercurial, messaging, meta, microservices, ML, mongodb, Murphy&#039;s Law, music, mutation, mutation testing, mutually recursive bounds, mx, MXBeans, MySQL, native-image, Natural Language Processing, netrexx, NetWeaver, NLP, Notebooks, Notes, Observable, Observer, open source, openjdk, oracle-labs-graalvm, other stuff, overseer, parallel, parameters, Performance, performance counters, performance testing, performance tuning, pipelines, PIT, PL/SQL, Programming, prototyping, python, Quercus, query, random rage, reactive, Realtime, reference, regular expression, repos, resource management, Resources, REST, rules, SAP, SAP HANA, Scala, script, self healing, serialization, service, Simon Maple, skynet, Spring, spring boot, SQL, statistics, stored procedure, streams, String, substring, T-SQL, test, testing, Things that go wrong, thread, threading, threadpool, transformations, truffle, type safety, Uncategorized, unit testing, unsafe, visualization, whatever can go wrong will go wrong, windows, Wordpress, work environment, ZeroTurnaround">
108		<meta name="copyright" content="Copyright JVM Advent - All rights Reserved.">
109		<meta name="designer" content="Anders Norén, Holger Steinhauer">
110		<meta name="distribution" content="Global">
111		<meta name="language" content="en-US">
112		<meta name="publisher" content="JVM Advent">
113		<meta name="rating" content="General">
114		<meta name="resource-type" content="Document">
115		<meta name="revisit-after" content="3">
116		<meta name="subject" content="@Primary, 2012, 2013, 2014, 2014 wrap up, 2015, 2015 wrap up, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 4financeit, achartengine, Actors, adopt openjdk, AI, Akka, Amazon Web Services, android, Apache OpenNLP, Apache Zeppelin, ArrayList, Artificial Intelligence, Atomic I/O, audio, Avatar, awesome graal, awk, bananas, bash, Bean Validation, benchmark, boot, Buffer, build, builders, bytecode, c/c++, Caching, CallableStatement, Camel, CI/CD, CircleCI, class file, Classloader, Cloud, CMS, code analysis, c
116ollections, command line, Composite, Continuous Query, CPU, cpu caches, debugging, Deep Learning, degraph, dependency, Dependency Injection, design pattern, developers, DevOps, distributed systems, Docker, Docker Image, DSL, executor, executorservice, Expect the unexpected, fork, free software, Friday 13, functional programming, functional relational programming, GAE, Gaming, garbage collection, GC, generics, Google App Engine, Google Cloud SQL, Google Cloud Storage, Graal Compiler, graalvm, gradle, groovy, guava, hardware counters, hg, High performance, hotspot, hybrid programming, I18N, iteration, java, java 8, java 9, Java Advent, java advent 2014, java agent, java closures, Java EE6, java self healing, javaagent, JavaEE, JavaScript, JAX-RS, JDBC, jdk, jdk 7, jdk 8, JDK 9, JEP, JInput, JIT, JMX, jni, join, jooq, JRebel, JSON API, JSR, JSR 353, jtreg, junit, JuPyteR, JuPyteR notebooks, JVM, JVM scripting, JVMCI, jypthon, jython, kawa, kotlin, lambda, LambdaJ, latency, lightweight, LinkedList, Linux, load testing, local, low latency, Machine Learning, macos, make, mathematics, maths, maven, mechanical sympathy, memory, Memory Barriers, memory mapped files, mercurial, messaging, meta, microservices, ML, mongodb, Murphy&#039;s Law, music, mutation, mutation testing, mutually recursive bounds, mx, MXBeans, MySQL, native-image, Natural Language Processing, netrexx, NetWeaver, NLP, Notebooks, Notes, Observable, Observer, open source, openjdk, oracle-labs-graalvm, other stuff, overseer, parallel, parameters, Performance, performance counters, performance testing, performance tuning, pipelines, PIT, PL/SQL, Programming, prototyping, python, Quercus, query, random rage, reactive, Realtime, reference, regular expression, repos, resource management, Resources, REST, rules, SAP, SAP HANA, Scala, script, self healing, serialization, service, Simon Maple, skynet, Spring, spring boot, SQL, statistics, stored procedure, streams, String, substring, T-SQL, test, testing, Things that go wrong, thread, threading, threadpool, transformations, truffle, type safety, Uncategorized, unit testing, unsafe, visualization, whatever can go wrong will go wrong, windows, Wordpress, work environment, ZeroTurnaround">
117		<meta name="template" content="Hitchcock">
118		<meta name="robots" content="index,follow">
119		<meta name="fediverse:creator" content="@[email protected]">
120<style id="simple-banner-hide" type="text/css">.simple-banner{display:none;}</style><style id="simple-banner-background-color" type="text/css">.simple-banner{background: #024985;}</style><style id="simple-banner-text-color" type="text/css">.simple-banner .simple-banner-text{color: #ffffff;}</style><style id="simple-banner-link-color" type="text/css">.simple-banner .simple-banner-text a{color:#f16521;}</style><style id="simple-banner-z-index" type="text/css">.simple-banner{z-index: 99999;}</style><style id="simple-banner-site-custom-css-dummy" type="text/css"></style>
120<script id="simple-banner-site-custom-js-dummy" type="text/javascript"></script>
120<!-- There is no amphtml version available for this URL. --><link rel="icon" href="https://i0.wp.com/www.javaadvent.com/content/uploads/2017/12/DukeFavicon.png?fit=32%2C32&#038;ssl=1" sizes="32x32" />
121<link rel="icon" href="https://i0.wp.com/www.javaadvent.com/content/uploads/2017/12/DukeFavicon.png?fit=139%2C140&#038;ssl=1" sizes="192x192" />
122<link rel="apple-touch-icon" href="https://i0.wp.com/www.javaadvent.com/content/uploads/2017/12/DukeFavicon.png?fit=139%2C140&#038;ssl=1" />
123<meta name="msapplication-TileImage" content="https://i0.wp.com/www.javaadvent.com/content/uploads/2017/12/DukeFavicon.png?fit=139%2C140&#038;ssl=1" />
124	
125	</head>
126	
127	<body class="blog wp-theme-hitchcock-advent-theme">
128
129		
130		<a class="skip-link button" href="#site-content">Skip to the content</a>
131		
132		<div class="navigation">
133			
134			<div class="section-inner">
135				
136				<ul class="main-menu">
137																		
138					<li id="menu-item-2959" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-2959"><a href="https://www.javaadvent.com/">Home</a></li>
139<li id="menu-item-2474" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2474"><a href="https://www.javaadvent.com/about-page">About</a></li>
140<li id="menu-item-2965" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-2960 current_page_item current_page_parent menu-item-2965"><a href="https://www.javaadvent.com/calendar" aria-current="page">Calendar</a></li>
141<li id="menu-item-2475" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2475"><a href="https://www.javaadvent.com/archive">Archive</a></li>
142<li id="menu-item-2476" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2476"><a href="https://www.javaadvent.com/sponsors">Sponsors</a></li>
143					
144					<li class="header-search">
145						
146<form method="get" class="search-form" id="search-form-6ac17b16ae5eb" action="https://www.javaadvent.com/">
147	<input type="search" class="search-field" placeholder="Search Form" name="s" id="search-field-6ac17b16ae5ed" /> 
148	<button type="submit" class="search-button">
149		<span class="screen-reader-text">Search</span>
150		<div class="fa fw fa-search"></div>
151	</button>
152</form>					</li>
153					
154				</ul>
155				
156			</div><!-- .section-inner -->
157			
158			<button type="button" class="nav-toggle">
159					
160				<div class="bars">
161					<div class="bar"></div>
162					<div class="bar"></div>
163					<div class="bar"></div>
164				</div>
165				
166			</button><!-- .nav-toggle -->
167			
168			<div class="mobile-navigation">
169			
170				<ul class="mobile-menu">
171																			
172					<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-2959"><a href="https://www.javaadvent.com/">Home</a></li>
173<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2474"><a href="https://www.javaadvent.com/about-page">About</a></li>
174<li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-2960 current_page_item current_page_parent menu-item-2965"><a href="https://www.javaadvent.com/calendar" aria-current="page">Calendar</a></li>
175<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2475"><a href="https://www.javaadvent.com/archive">Archive</a></li>
176<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2476"><a href="https://www.javaadvent.com/sponsors">Sponsors</a></li>
177					
178				</ul>
179				
180				
181<form method="get" class="search-form" id="search-form-6ac17b16aedaf" action="https://www.javaadvent.com/">
182	<input type="search" class="search-field" placeholder="Search Form" name="s" id="search-field-6ac17b16aedb2" /> 
183	<button type="submit" class="search-button">
184		<span class="screen-reader-text">Search</span>
185		<div class="fa fw fa-search"></div>
186	</button>
187</form>			
188			</div><!-- .mobile-navigation -->
189			
190		</div><!-- .navigation -->
191
192				
193		<div class="header-image" style="background-image: url( https://www.javaadvent.com/content/themes/hitchcock-advent-theme/assets/images/bg.jpg );"></div>
194	
195		<div class="header section-inner">
196		
197				
198			<div class="blog-title">
199									<a href="https://www.javaadvent.com" rel="home">JVM Advent</a>
200							</div>
201			
202							<div class="blog-description"><p>The JVM Programming Advent Calendar</p>
203</div>
204						
205						
206		</div><!-- .header -->
207
208		<main id="site-content">
209<div class="content section-inner">
210
211	
212	
213	
214		<div class="posts group" id="posts">
215
216			
217<a href="https://www.javaadvent.com/2025/12/santas-python-pitfalls-a-java-developers-guide-to-staying-safe-this-christmas.html" id="post-5916" class="post post-5916 type-post status-publish format-standard has-post-thumbnail hentry category-765" style="background-image: url( https://i0.wp.com/www.javaadvent.com/content/uploads/2021/12/Feature-Image-Day-24.png?fit=508%2C508&ssl=1 );">
218
219	<div class="post-overlay">
220		
221				
222		<div class="archive-post-header">
223		
224		    <p class="archive-post-date">December 24, 2025</p>
225							
226		    		    	<h2 class="archive-post-title">Santa&#8217;s Python Pitfalls: A Java Developer&#8217;s Guide to Staying Safe This Christmas</h2>
227		    
228            <p class="archive-post-author">By: Steve Poole</p>
229		</div>
230
231	</div>
232	
233</a><!-- .post -->
234<a href="https://www.javaadvent.com/2025/12/chicory-webassembly-on-the-jvm.html" id="post-6289" class="post post-6289 type-post status-publish format-standard has-post-thumbnail hentry category-276" style="background-image: url( https://i0.wp.com/www.javaadvent.com/content/uploads/2021/12/Feature-Image-Day-23.png?fit=508%2C508&ssl=1 );">
235
236	<div class="post-overlay">
237		
238				
239		<div class="archive-post-header">
240		
241		    <p class="archive-post-date">December 23, 2025</p>
242							
243		    		    	<h2 class="archive-post-title">Bring WebAssembly to the JVM. How Chicory Is Powering a New Generation of Java Libraries</h2>
244		    
245            <p class="archive-post-author">By: Andrea Peruffo</p>
246		</div>
247
248	</div>
249	
250</a><!-- .post -->
251<a href="https://www.javaadvent.com/2025/12/delegating-java-tasks-to-supervised-ai-dev-pipelines.html" id="post-6278" class="post post-6278 type-post status-publish format-standard has-post-thumbnail hentry category-765" style="background-image: url( https://i0.wp.com/www.javaadvent.com/content/uploads/2021/12/Feature-Image-Day-22.png?fit=508%2C508&ssl=1 );">
252
253	<div class="post-overlay">
254		
255				
256		<div class="archive-post-header">
257		
258		    <p class="archive-post-date">December 22, 2025</p>
259							
260		    		    	<h2 class="archive-post-title">Delegating Java tasks to Supervised AI Dev Pipelines</h2>
261		    
262            <p class="archive-post-author">
262By: Juan Antonio Breña Moral</p>
263		</div>
264
265	</div>
266	
267</a><!-- .post -->
268<a href="https://www.javaadvent.com/2025/12/how-to-really-measure-llms-for-jvm-code-a-benchmarking-guide-for-late-2025.html" id="post-6343" class="post post-6343 type-post status-publish format-standard has-post-thumbnail hentry category-276" style="background-image: url( https://i0.wp.com/www.javaadvent.com/content/uploads/2021/12/Feature-Image-Day-21.png?fit=508%2C508&ssl=1 );">
269
270	<div class="post-overlay">
271		
272				
273		<div class="archive-post-header">
274		
275		    <p class="archive-post-date">December 21, 2025</p>
276							
277		    		    	<h2 class="archive-post-title">How to really measure LLMs for JVM Code? A Benchmarking guide for late 2025</h2>
278		    
279            <p class="archive-post-author">By: Artur Skowronski</p>
280		</div>
281
282	</div>
283	
284</a><!-- .post -->
285<a href="https://www.javaadvent.com/2025/12/out-with-the-old-in-with-the-new.html" id="post-5926" class="post post-5926 type-post status-publish format-standard has-post-thumbnail hentry category-765 tag-automatic tag-legacy-application tag-rewrite" style="background-image: url( https://i0.wp.com/www.javaadvent.com/content/uploads/2021/12/Feature-Image-Day-20.png?fit=508%2C508&ssl=1 );">
286
287	<div class="post-overlay">
288		
289				
290		<div class="archive-post-header">
291		
292		    <p class="archive-post-date">December 20, 2025</p>
293							
294		    		    	<h2 class="archive-post-title">Out with the Old, In with the New: A Guide to Application Upkeep</h2>
295		    
296            <p class="archive-post-author">By: Andres Sacco</p>
297		</div>
298
299	</div>
300	
301</a><!-- .post -->
302<a href="https://www.javaadvent.com/2025/12/getting-started-with-springai.html" id="post-6211" class="post post-6211 type-post status-publish format-standard has-post-thumbnail hentry category-765" style="background-image: url( https://i0.wp.com/www.javaadvent.com/content/uploads/2021/12/Feature-Image-Day-19.png?fit=508%2C508&ssl=1 );">
303
304	<div class="post-overlay">
305		
306				
307		<div class="archive-post-header">
308		
309		    <p class="archive-post-date">December 19, 2025</p>
310							
311		    		    	<h2 class="archive-post-title">Getting Started with SpringAI</h2>
312		    
313            <p class="archive-post-author">By: Samuel Lissner</p>
314		</div>
315
316	</div>
317	
318</a><!-- .post -->
319<a href="https://www.javaadvent.com/2025/12/making-java-a-first-class-ai-citizen-with-langchain4j.html" id="post-6271" class="post post-6271 type-post status-publish format-standard has-post-thumbnail hentry category-765" style="background-image: url( https://i0.wp.com/www.javaadvent.com/content/uploads/2021/12/Feature-Image-Day-18.png?fit=508%2C508&ssl=1 );">
320
321	<div class="post-overlay">
322		
323				
324		<div class="archive-post-header">
325		
326		    <p class="archive-post-date">December 18, 2025</p>
327							
328		    		    	<h2 class="archive-post-title">Making Java a first-class AI citizen with Langchain4j</h2>
329		    
330            <p class="archive-post-author">By: deors</p>
331		</div>
332
333	</div>
334	
335</a><!-- .post -->
336<a href="https://www.javaadvent.com/2025/12/run-java-aot-cache-optimizations.html" id="post-6128" class="post post-6128 type-post status-publish format-standard has-post-thumbnail hentry category-765 category-java-advent category-openjdk category-performance tag-java tag-jdk25 tag-performance tag-project-leyden" style="background-image: url( https://i0.wp.com/www.javaadvent.com/content/uploads/2021/12/Feature-Image-Day-17.png?fit=508%2C508&ssl=1 );">
337
338	<div class="post-overlay">
339		
340				
341		<div class="archive-post-header">
342		
343		    <p class="archive-post-date">December 17, 2025</p>
344							
345		    		    	<h2 class="archive-post-title">Run Into the New Year with Java’s Ahead-of-Time Cache Features</h2>
346		    
347            <p class="archive-post-author">By: Ana-Maria Mihalceanu</p>
348		</div>
349
350	</div>
351	
352</a><!-- .post -->
353<a href="https://www.javaadvent.com/2025/12/ffm-api-for-java-on-raspberry-pi.html" id="post-5947" class="post post-5947 type-post status-publish format-standard has-post-thumbnail hentry category-765" style="background-image: url( https://i0.wp.com/www.javaadvent.com/content/uploads/2025/11/pi4j-overview-scaled.jpg?fit=508%2C212&ssl=1 );">
354
355	<div class="post-overlay">
356		
357				
358		<div class="archive-post-header">
359		
360		    <p class="archive-post-date">December 16, 2025</p>
361							
362		    		    	<h2 class="archive-post-title">The FFM API: How OpenJDK Changed the Game for Native Interactions (And Made Pi4J Better!)</h2>
363		    
364            <p class="archive-post-author">
364By: Frank Delporte</p>
365		</div>
366
367	</div>
368	
369</a><!-- .post -->
370<a href="https://www.javaadvent.com/2025/12/tinkering-with-a-hands-off-agent.html" id="post-6080" class="post post-6080 type-post status-publish format-standard has-post-thumbnail hentry category-765 category-java-advent" style="background-image: url( https://i0.wp.com/www.javaadvent.com/content/uploads/2025/11/image-1.png?fit=508%2C339&ssl=1 );">
371
372	<div class="post-overlay">
373		
374				
375		<div class="archive-post-header">
376		
377		    <p class="archive-post-date">December 15, 2025</p>
378							
379		    		    	<h2 class="archive-post-title">Tinkering with a &#8220;hands-off&#8221; agent</h2>
380		    
381            <p class="archive-post-author">By: Tom Cools</p>
382		</div>
383
384	</div>
385	
386</a><!-- .post -->
387<a href="https://www.javaadvent.com/2025/12/spec-driven-development-in-practice-how-ai-simplify-full-stack-java.html" id="post-6132" class="post post-6132 type-post status-publish format-standard has-post-thumbnail hentry category-765" style="background-image: url( https://i0.wp.com/www.javaadvent.com/content/uploads/2021/12/Feature-Image-Day-14.png?fit=508%2C508&ssl=1 );">
388
389	<div class="post-overlay">
390		
391				
392		<div class="archive-post-header">
393		
394		    <p class="archive-post-date">December 14, 2025</p>
395							
396		    		    	<h2 class="archive-post-title">Spec-Driven Development in Practice: How AI Simplify Full-Stack Java</h2>
397		    
398            <p class="archive-post-author">By: Simon Martinelli</p>
399		</div>
400
401	</div>
402	
403</a><!-- .post -->
404<a href="https://www.javaadvent.com/2025/12/hidden-treasures-of-eclipse-collections-2025-edition.html" id="post-6220" class="post post-6220 type-post status-publish format-standard has-post-thumbnail hentry category-765" style="background-image: url( https://i0.wp.com/www.javaadvent.com/content/uploads/2021/12/Feature-Image-Day-13.png?fit=508%2C508&ssl=1 );">
405
406	<div class="post-overlay">
407		
408				
409		<div class="archive-post-header">
410		
411		    <p class="archive-post-date">December 13, 2025</p>
412							
413		    		    	<h2 class="archive-post-title">Hidden Treasures of Eclipse Collections 2025 Edition</h2>
414		    
415            <p class="archive-post-author">By: Nikhil Nanivadekar</p>
416		</div>
417
418	</div>
419	
420</a><!-- .post -->
421<a href="https://www.javaadvent.com/2025/12/strengthening-your-software-supply-chain.html" id="post-6044" class="post post-6044 type-post status-publish format-standard has-post-thumbnail hentry category-765 category-devops category-java" style="background-image: url( https://i0.wp.com/www.javaadvent.com/content/uploads/2021/12/Feature-Image-Day-12.png?fit=508%2C508&ssl=1 );">
422
423	<div class="post-overlay">
424		
425				
426		<div class="archive-post-header">
427		
428		    <p class="archive-post-date">December 12, 2025</p>
429							
430		    		    	<h2 class="archive-post-title">Strengthening your Software Supply Chain</h2>
431		    
432            <p class="archive-post-author">By: Andres Almiray</p>
433		</div>
434
435	</div>
436	
437</a><!-- .post -->
438<a href="https://www.javaadvent.com/2025/12/a-glance-at-gpu-goodness-in-java-llm-inference-with-tornadovm.html" id="post-5844" class="post post-5844 type-post status-publish format-standard has-post-thumbnail hentry category-765 tag-gpu tag-llama3 tag-tornadovm" style="background-image: url( https://i0.wp.com/www.javaadvent.com/content/uploads/2025/11/tornadovm-gpullama3.png?fit=508%2C508&ssl=1 );">
439
440	<div class="post-overlay">
441		
442				
443		<div class="archive-post-header">
444		
445		    <p class="archive-post-date">December 11, 2025</p>
446							
447		    		    	<h2 class="archive-post-title">A Glance at GPU Goodness in Java: LLM Inference with TornadoVM</h2>
448		    
449            <p class="archive-post-author">By: Edoardo Vacchi</p>
450		</div>
451
452	</div>
453	
454</a><!-- .post -->
455<a href="https://www.javaadvent.com/2025/12/breaking-keys-and-building-trust-the-java-way.html" id="post-6008" class="post post-6008 type-post status-publish format-standard has-post-thumbnail hentry category-765" style="background-image: url( https://i0.wp.com/www.javaadvent.com/content/uploads/2021/12/Feature-Image-Day-10.png?fit=508%2C508&ssl=1 );">
456
457	<div class="post-overlay">
458		
459				
460		<div class="archive-post-header">
461		
462		    <p class="archive-post-date">December 10, 2025</p>
463							
464		    		    	<h2 class="archive-post-title">Breaking keys and building trust: The JAVA way!</h2>
465		    
466            <p class="archive-post-author">By: Ixchel Ruiz</p>
467		</div>
468
469	</div>
470	
471</a><!-- .post -->
472<a href="https://www.javaadvent.com/2025/12/discover-roq-the-quarkus-way-for-static-site-generation-in-java.html" id="post-5996" class="post post-5996 type-post status-publish format-standard has-post-thumbnail hentry category-765 category-cms category-java category-javascript tag-java tag-jvm tag-quarkus tag-ssg tag-static-site-generator" style="background-image: url( https://i0.wp.com/www.javaadvent.com/content/uploads/2021/12/Feature-Image-Day-9.png?fit=508%2C508&ssl=1 );">
473
474	<div class="post-overlay">
475		
476				
477		<div class="archive-post-header">
478		
479		    <p class="archive-post-date">December 9, 2025</p>
480							
481		    		    	<h2 class="archive-post-title">Discover Roq, the Quarkus Way for Static Site Generation in Java</h2>
482		    
483            <p class="archive-post-author">By: Andy Damevin</p>
484		</div>
485
486	</div>
487	
488</a><!-- .post -->
489<a href="https://www.javaadvent.com/2025/12/nice-and-naughty-cases-of-pattern-matching.html" id="post-5990" class="post post-5990 type-post status-publish format-standard has-post-thumbnail hentry category-765 tag-pattern-matching" style="background-image: url( https://i0.wp.com/www.javaadvent.com/content/uploads/2021/12/Feature-Image-Day-8.png?fit=508%2C508&ssl=1 );">
490
491	<div class="post-overlay">
492		
493				
494		<div class="archive-post-header">
495		
496		    <p class="archive-post-date">December 8, 2025</p>
497							
498		    		    	<h2 class="archive-post-title">Nice and Naughty Cases of Pattern Matching</h2>
499		    
500            <p class="archive-post-author">By: Cay Horstmann</p>
501		</div>
502
503	</div>
504	
505</a><!-- .post -->
506<a href="https://www.javaadvent.com/2025/12/java-hello-world-llvm-edition.html" id="post-5872" class="post post-5872 type-post status-publish format-standard has-post-thumbnail hentry category-765 tag-java tag-java-advent tag-jdk tag-jvm" style="background-image: url( https://i0.wp.com/www.javaadvent.com/content/uploads/2021/12/Feature-Image-Day-7.png?fit=508%2C508&ssl=1 );">
507
508	<div class="post-overlay">
509		
510				
511		<div class="archive-post-header">
512		
513		    <p class="archive-post-date">December 7, 2025</p>
514							
515		    		    	<h2 class="archive-post-title">Java Hello World, LLVM Edition</h2>
516		    
517            <p class="archive-post-author">By: James Hamilton</p>
518		</div>
519
520	</div>
521	
522</a><!-- .post -->
523<a href="https://www.javaadvent.com/2025/12/comparing-transitive-dependency-version-resolution-in-rust-and-java.html" id="post-5834" class="post post-5834 type-post status-publish format-standard has-post-thumbnail hentry category-765 tag-dependency tag-java tag-rust" style="background-image: url( https://i0.wp.com/www.javaadvent.com/content/uploads/2025/11/cover_large.jpg?fit=508%2C339&ssl=1 );">
524
525	<div class="post-overlay">
526		
527				
528		<div class="archive-post-header">
529		
530		    <p class="archive-post-date">December 6, 2025</p>
531							
532		    		    	<h2 class="archive-post-title">Comparing transitive dependency version resolution in Rust and Java</h2>
533		    
534            <p class="archive-post-author">By: Nicolas Fränkel</p>
535		</div>
536
537	</div>
538	
539</a><!-- .post -->
540<a href="https://www.javaadvent.com/2025/12/beyond-x86-java-on-arm-in-2025.html" id="post-6056" class="post post-6056 type-post status-publish format-standard has-post-thumbnail hentry category-276" style="background-image: url( https://i0.wp.com/www.javaadvent.com/content/uploads/2021/12/Feature-Image-Day-5.png?fit=508%2C508&ssl=1 );">
541
542	<div class="post-overlay">
543		
544				
545		<div class="archive-post-header">
546		
547		    <p class="archive-post-date">December 5, 2025</p>
548							
549		    		    	<h2 class="archive-post-title">Beyond x86: Java on ARM in 2025</h2>
550		    
551            <p class="archive-post-author">By: Artur Skowronski</p>
552		</div>
553
554	</div>
555	
556</a><!-- .post -->
557<a href="https://www.javaadvent.com/2025/12/test-your-test.html" id="post-5925" class="post post-5925 type-post status-publish format-standard has-post-thumbnail hentry category-765 tag-effective tag-mutation tag-testing" style="background-image: url( https://i0.wp.com/www.javaadvent.com/content/uploads/2021/12/Feature-Image-Day-4.png?fit=508%2C508&ssl=1 );">
558
559	<div class="post-overlay">
560		
561				
562		<div class="archive-post-header">
563		
564		    <p class="archive-post-date">December 4, 2025</p>
565							
566		    		    	<h2 class="archive-post-title">Test Your Test</h2>
567		    
568            <p class="archive-post-author">
568By: Andres Sacco</p>
569		</div>
570
571	</div>
572	
573</a><!-- .post -->
574<a href="https://www.javaadvent.com/2025/12/how-understanding-request-flow-in-spring-boot-changed-the-way-i-code.html" id="post-5966" class="post post-5966 type-post status-publish format-standard has-post-thumbnail hentry category-765 tag-java tag-java-advent tag-springboot" style="background-image: url( https://i0.wp.com/www.javaadvent.com/content/uploads/2021/12/Feature-Image-Day-3.png?fit=508%2C508&ssl=1 );">
575
576	<div class="post-overlay">
577		
578				
579		<div class="archive-post-header">
580		
581		    <p class="archive-post-date">December 3, 2025</p>
582							
583		    		    	<h2 class="archive-post-title">How Understanding Request Flow in Spring Boot Changed the Way I Code</h2>
584		    
585            <p class="archive-post-author">By: Mohammed</p>
586		</div>
587
588	</div>
589	
590</a><!-- .post -->
591<a href="https://www.javaadvent.com/2025/12/quarkus-langchain4j-extension-from-grounds-up.html" id="post-5932" class="post post-5932 type-post status-publish format-standard has-post-thumbnail hentry category-765 tag-ai tag-java tag-langchain4j tag-quarkus" style="background-image: url( https://i0.wp.com/www.javaadvent.com/content/uploads/2021/12/Feature-Image-Day-2.png?fit=508%2C508&ssl=1 );">
592
593	<div class="post-overlay">
594		
595				
596		<div class="archive-post-header">
597		
598		    <p class="archive-post-date">December 2, 2025</p>
599							
600		    		    	<h2 class="archive-post-title">Quarkus LangChain4j extension from grounds up</h2>
601		    
602            <p class="archive-post-author">By: Martin Toshev</p>
603		</div>
604
605	</div>
606	
607</a><!-- .post -->
608<a href="https://www.javaadvent.com/2025/12/lighting-the-way-java-ai-and-a-season-of-new-ideas.html" id="post-5922" class="post post-5922 type-post status-publish format-standard has-post-thumbnail hentry category-765" style="background-image: url( https://i0.wp.com/www.javaadvent.com/content/uploads/2021/12/Feature-Image-Day-1.png?fit=508%2C508&ssl=1 );">
609
610	<div class="post-overlay">
611		
612				
613		<div class="archive-post-header">
614		
615		    <p class="archive-post-date">December 1, 2025</p>
616							
617		    		    	<h2 class="archive-post-title">Lighting the Way: Java, AI, and a Season of New Ideas</h2>
618		    
619            <p class="archive-post-author">By: Markus Eisele</p>
620		</div>
621
622	</div>
623	
624</a><!-- .post -->			
625		</div><!-- .posts -->
626
627		
628			
629</div><!-- .content -->
630	              	        
631		</main><!-- #site-content -->
632
633		<div class="credits section-inner">
634            <p>&copy; 2026 <a href="https://www.javaadvent.com">JVM Advent</a> | Powered by <a href="https://steinhauer.software" target="_blank"><img src="https://www.javaadvent.com/content/themes/hitchcock-advent-theme/assets/images/steinhauer.software.png" alt="steinhauer.software Logo"/>steinhauer.software</a></p>
635			<p class="theme-by">Theme by <a href="https://www.andersnoren.se">Anders Nor&eacute;n</a></p>
636		</div><!-- .credits -->
637
638		
638<script type="speculationrules">
639{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/content/uploads/*","/content/*","/content/plugins/*","/content/themes/hitchcock-advent-theme/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
640</script>
vendor: 1 bytes, line 640
640
641<script src="https://www.jdoodle.com/assets/jdoodle-pym.min.js" type="text/javascript"></script>
641<div class="simple-banner simple-banner-text" style="display:none !important"></div><link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.1/css/all.css" />
642<!-- Matomo -->
643<script>
644  var _paq = window._paq = window._paq || [];
645  /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
646  _paq.push(["setCookieDomain", "*.www.javaadvent.com"]);
647  _paq.push(["setDomains", ["*.www.javaadvent.com"]]);
648  _paq.push(["enableCrossDomainLinking"]);
649  _paq.push(['trackPageView']);
650  _paq.push(['enableLinkTracking']);
651  (function() {
652    var u="//analytics.e-mehlbox.eu/";
653    _paq.push(['setTrackerUrl', u+'matomo.php']);
654    _paq.push(['setSiteId', '2']);
655    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
656    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
657  })();
658</script>
658
659<!-- End Matomo Code -->
660<noscript><p><img referrerpolicy="no-referrer-when-downgrade" src="//analytics.e-mehlbox.eu/matomo.php?idsite=2&rec=1" style="border:0;" alt="" /></p></noscript>
661<script id="syntaxhighlighter-core-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shCore.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 661
661
662<script id="syntaxhighlighter-brush-as3-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushAS3.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 662
662
663<script id="syntaxhighlighter-brush-arduino-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushArduino.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 663
663
664<script id="syntaxhighlighter-brush-bash-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushBash.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 664
664
665<script id="syntaxhighlighter-brush-coldfusion-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushColdFusion.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 665
665
666<script id="syntaxhighlighter-brush-clojure-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/third-party-brushes/shBrushClojure.js?ver=20090602"></script>
vendor: 1 bytes, line 666
666
667<script id="syntaxhighlighter-brush-cpp-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushCpp.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 667
667
668<script id="syntaxhighlighter-brush-csharp-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushCSharp.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 668
668
669<script id="syntaxhighlighter-brush-css-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushCss.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 669
669
670<script id="syntaxhighlighter-brush-delphi-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushDelphi.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 670
670
671<script id="syntaxhighlighter-brush-diff-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushDiff.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 671
671
672<script id="syntaxhighlighter-brush-erlang-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushErlang.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 672
672
673<script id="syntaxhighlighter-brush-fsharp-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/third-party-brushes/shBrushFSharp.js?ver=20091003"></script>
vendor: 1 bytes, line 673
673
674<script id="syntaxhighlighter-brush-go-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushGo.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 674
674
675<script id="syntaxhighlighter-brush-groovy-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushGroovy.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 675
675
676<script id="syntaxhighlighter-brush-haskell-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushHaskell.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 676
676
677<script id="syntaxhighlighter-brush-java-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushJava.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 677
677
678<script id="syntaxhighlighter-brush-javafx-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushJavaFX.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 678
678
679<script id="syntaxhighlighter-brush-jscript-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushJScript.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 679
679
680<script id="syntaxhighlighter-brush-latex-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/third-party-brushes/shBrushLatex.js?ver=20090613"></script>
vendor: 1 bytes, line 680
680
681<script id="syntaxhighlighter-brush-matlabkey-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/third-party-brushes/shBrushMatlabKey.js?ver=20091209"></script>
vendor: 1 bytes, line 681
681
682<script id="syntaxhighlighter-brush-objc-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/third-party-brushes/shBrushObjC.js?ver=20091207"></script>
vendor: 1 bytes, line 682
682
683<script id="syntaxhighlighter-brush-perl-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushPerl.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 683
683
684<script id="syntaxhighlighter-brush-php-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushPhp.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 684
684
685<script id="syntaxhighlighter-brush-plain-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushPlain.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 685
685
686<script id="syntaxhighlighter-brush-powershell-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushPowerShell.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 686
686
687<script id="syntaxhighlighter-brush-python-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushPython.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 687
687
688<script id="syntaxhighlighter-brush-r-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/third-party-brushes/shBrushR.js?ver=20100919"></script>
vendor: 1 bytes, line 688
688
689<script id="syntaxhighlighter-brush-ruby-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushRuby.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 689
689
690<script id="syntaxhighlighter-brush-scala-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushScala.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 690
690
691<script id="syntaxhighlighter-brush-sql-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushSql.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 691
691
692<script id="syntaxhighlighter-brush-swift-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushSwift.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 692
692
693<script id="syntaxhighlighter-brush-vb-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushVb.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 693
693
694<script id="syntaxhighlighter-brush-xml-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushXml.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 694
694
695<script id="syntaxhighlighter-brush-yaml-js" src="https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushYaml.js?ver=3.0.9b"></script>
vendor: 1 bytes, line 695
695
696<script type='text/javascript'>
697	(function(){
698		var corecss = document.createElement('link');
699		var themecss = document.createElement('link');
700		var corecssurl = "https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shCore.css?ver=3.0.9b";
701		if ( corecss.setAttribute ) {
702				corecss.setAttribute( "rel", "stylesheet" );
703				corecss.setAttribute( "type", "text/css" );
704				corecss.setAttribute( "href", corecssurl );
705		} else {
706				corecss.rel = "stylesheet";
707				corecss.href = corecssurl;
708		}
709		document.head.appendChild( corecss );
710		var themecssurl = "https://www.javaadvent.com/content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shThemeMidnight.css?ver=3.0.9b";
711		if ( themecss.setAttribute ) {
712				themecss.setAttribute( "rel", "stylesheet" );
713				themecss.setAttribute( "type", "text/css" );
714				themecss.setAttribute( "href", themecssurl );
715		} else {
716				themecss.rel = "stylesheet";
717				themecss.href = themecssurl;
718		}
719		document.head.appendChild( themecss );
720	})();
721	SyntaxHighlighter.config.strings.expandSource = '+ expand source';
722	SyntaxHighlighter.config.strings.help = '?';
723	SyntaxHighlighter.config.strings.alert = 'SyntaxHighlighter\n\n';
724	SyntaxHighlighter.config.strings.noBrush = 'Can\'t find brush for: ';
725	SyntaxHighlighter.config.strings.brushNotHtmlScript = 'Brush wasn\'t configured for html-script option: ';
726	SyntaxHighlighter.defaults['pad-line-numbers'] = false;
727	SyntaxHighlighter.defaults['tab-size'] = 2;
728	SyntaxHighlighter.defaults['toolbar'] = false;
729	SyntaxHighlighter.all();
730
731	// Infinite scroll support
732	if ( typeof( jQuery ) !== 'undefined' ) {
733		jQuery( function( $ ) {
734			$( document.body ).on( 'post-load', function() {
735				SyntaxHighlighter.highlight();
736			} );
737		} );
738	}
739</script>
vendor: 1 bytes, line 739
739
740<script id="jetpack-stats-js-before">
741_stq = window._stq || [];
742_stq.push([ "view", {"v":"ext","blog":"101550570","post":"2960","tz":"0","srv":"www.javaadvent.com","j":"1:16.2"} ]);
743_stq.push([ "clickTrackerInit", "101550570", "2960" ]);
744//# sourceURL=jetpack-stats-js-before
745</script>
vendor: 1 bytes, line 745
745
746<script data-wp-strategy="defer" defer fetchpriority="low" id="jetpack-stats-js" src="https://stats.wp.com/e-202640.js"></script>
vendor: 1 bytes, line 746
746
747<script id="wp-emoji-settings" type="application/json">
748{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://www.javaadvent.com/wp-includes/js/wp-emoji-release.min.js?ver=7.1.2"}}
749</script>
vendor: 1 bytes, line 749
749
750<script type="module">
751/*! This file is auto-generated */
752var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
753//# sourceURL=https://www.javaadvent.com/wp-includes/js/wp-emoji-loader.min.js
754</script>
754
755
756	</body>
757	
758</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.