<?xml version='1.0' encoding='utf-8' ?>
<!-- Made with love by pretalx v2026.3.0.dev0. -->
<schedule>
    <generator name="pretalx" system="pretalx.com" version="2026.3.0.dev0" />
    <version>0.11</version>
    <conference>
        <title>JCConf 2026</title>
        <acronym>jcconf-2026</acronym>
        <start>2026-09-11</start>
        <end>2026-09-11</end>
        <days>1</days>
        <timeslot_duration>00:05</timeslot_duration>
        <base_url>https://pretalx.com</base_url>
        
        <time_zone_name>Asia/Taipei</time_zone_name>
        
        
        <track name="Promotion" slug="7146-promotion"  color="#c19d0c" />
        
        <track name="402AB" slug="7147-402ab"  color="#268785" />
        
        <track name="401" slug="7148-401"  color="#d0104c" />
        
        <track name="402CD" slug="7149-402cd"  color="#1b813e" />
        
        <track name="203" slug="7150-203"  color="#954a45" />
        
        <track name="403" slug="7151-403"  color="#574c57" />
        
    </conference>
    <day index='1' date='2026-09-11' start='2026-09-11T04:00:00+08:00' end='2026-09-12T03:59:00+08:00'>
        <room name='401' guid='509a76de-ca09-5a7b-a6bb-2d69dce72124'>
            <event guid='af1216b9-7e7f-5dbb-93e7-2b3349cf0996' id='103156' code='CRFQF9'>
                <room>401</room>
                <title>Valhalla, Now!</title>
                <subtitle></subtitle>
                <type>Session</type>
                <date>2026-09-11T09:40:00+08:00</date>
                <start>09:40</start>
                <duration>00:45</duration>
                <abstract>No OpenJDK project has excited Java developers as much as Valhalla. And no other has strung us along for that long.But now the wait is over!

Value types are the first step to mending the rift in Java&apos;s type system and allow us the creation of more primitive-like classes. They will (likely) preview for the first time in JDK 28, so it&apos;s time to take a close look at:

- syntax and semantics of value types
- limitations and capabilities
- performance characteristics
- the next steps Valhalla is planning to take

After this talk, you&apos;ll know what value types can do in JDK 28 - and what they can&apos;t. And the latter is just as important because the trek to Valhalla is still long and value types are neither intended nor capable to fulfill all expectations we may have for the project at large.</abstract>
                <slug>jcconf-2026-103156-valhalla-now</slug>
                <track></track>
                
                <persons>
                    <person id='102170'>Nicolai Parlog</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/CRFQF9/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/CRFQF9/feedback/</feedback_url>
            </event>
            <event guid='854f392d-6022-5f38-b5bc-a386d9c7c2e3' id='103476' code='CZKUGQ'>
                <room>401</room>
                <title>Bootiful Spring AI 2.0</title>
                <subtitle></subtitle>
                <type>Session</type>
                <date>2026-09-11T10:45:00+08:00</date>
                <start>10:45</start>
                <duration>00:45</duration>
                <abstract>The age of artificial intelligence (because the search for regular intelligence hasn&apos;t gone well..) is nearly at hand, and it&apos;s everywhere! But is it in your application? It should be. AI is about integration, and here the Java and Spring communities come second to nobody. In this talk, we&apos;ll demystify the concepts of modern day Artificial Intelligence and look at its integration with the white hot new Spring AI project, a framework that builds on the richness of Spring Boot to extend them to the wide world of AI engineering.</abstract>
                <slug>jcconf-2026-103476-bootiful-spring-ai-2-0</slug>
                <track>401</track>
                
                <persons>
                    <person id='102541'>Josh Long</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/CZKUGQ/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/CZKUGQ/feedback/</feedback_url>
            </event>
            <event guid='a996a082-2550-5daf-8676-be81a87eaa2f' id='101229' code='K9PBPB'>
                <room>401</room>
                <title>2026 Java New Feature Introduction</title>
                <subtitle></subtitle>
                <type>Session</type>
                <date>2026-09-11T11:45:00+08:00</date>
                <start>11:45</start>
                <duration>00:45</duration>
                <abstract>2026 &#24180;&#37323;&#20986;&#30340; Java &#29256;&#26412;&#28858; 26 &#21644; 27&#65292;&#21508;&#33258;&#21253;&#25324;&#20102; 10 &#21644; 9 &#38917;&#21151;&#33021;&#65292;&#20854;&#20013;&#26377; 10 &#38917;&#38928;&#35261;&#21151;&#33021;&#65288;&#32317;&#20849;&#28858; 5 &#38917;&#65289;&#12289;6 &#38917;&#24213;&#23652;&#65295;&#25928;&#33021;&#25913;&#21892;&#12289;1 &#38917;&#23433;&#20840;&#24615;&#12289;1 &#38917;&#31227;&#38500;&#65292;&#21644; 1 &#38917;&#20989;&#24335;&#24235;&#26356;&#26032;&#12290;&#30456;&#36611;&#26044;&#21069;&#24190;&#29256;&#20358;&#35498;&#65288;25 &#26377; 18 &#38917;&#12289;24 &#26377; 24 &#38917;&#12289;23 &#21644; 22 &#21508;&#26377; 12 &#38917;&#12289;21 &#26377; 15 &#38917;&#65292;&#19988;&#22810;&#25976;&#28858;&#37325;&#22823;&#26356;&#26032;&#65289;&#65292;&#20170;&#24180;&#30340; Java &#28331;&#21644;&#23433;&#38748;&#35377;&#22810;&#12290;&#26412;&#35696;&#31243;&#23559;&#20171;&#32057;&#24190;&#38917; 2026 &#24180; Java &#37323;&#20986;&#30340;&#37325;&#35201;&#21151;&#33021;&#65292;&#20197;&#21450;&#22914;&#20309;&#36939;&#29992;&#23427;&#20497;&#20197;&#24314;&#31435;&#26356;&#31337;&#20581;&#30340;&#31243;&#24335;&#12290;</abstract>
                <slug>jcconf-2026-101229-2026-java-new-feature-introduction</slug>
                <track>401</track>
                
                <persons>
                    <person id='100456'>Joseph Kuo</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/K9PBPB/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/K9PBPB/feedback/</feedback_url>
            </event>
            <event guid='8fa77388-52cb-50ba-83ce-b52aeef341e4' id='103295' code='RBF9UL'>
                <room>401</room>
                <title>&#127860;Lunch and Break</title>
                <subtitle></subtitle>
                <type>Session</type>
                <date>2026-09-11T12:30:00+08:00</date>
                <start>12:30</start>
                <duration>01:00</duration>
                <abstract>&#127860;Lunch and Break</abstract>
                <slug>jcconf-2026-103295-lunch-and-break</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/RBF9UL/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/RBF9UL/feedback/</feedback_url>
            </event>
            <event guid='91569254-2ca6-5b95-b293-e2aa7f20c386' id='101245' code='8TCNVN'>
                <room>401</room>
                <title>&#30070;&#19968;&#31278; Big5 &#19981;&#22816;&#29992;&#65306;&#22914;&#20309;&#20778;&#38597;&#22320;&#37325;&#27083; JDK &#24213;&#23652;&#25903;&#25588;&#21205;&#24907;&#38627;&#23383;&#38598;</title>
                <subtitle></subtitle>
                <type>Quickie</type>
                <date>2026-09-11T13:30:00+08:00</date>
                <start>13:30</start>
                <duration>00:15</duration>
                <abstract>&#22312;&#33274;&#28771;&#30340;&#20225;&#26989;&#33287;&#25919;&#24220;&#22823;&#22411;&#33290;&#31995;&#32113;&#20013;&#65292;&#34389;&#29702; Big5 &#25844;&#20805;&#38627;&#23383;&#33287;&#33258;&#36896;&#23383;&#19968;&#30452;&#26159;&#25582;&#20043;&#19981;&#21435;&#30340; IT &#22121;&#22818;&#12290;&#30070;&#31995;&#32113;&#38656;&#35201;&#21516;&#26178;&#20171;&#25509;&#22810;&#20491;&#22806;&#37096;&#26989;&#21209;&#20013;&#24515;&#65292;&#19988;&#27599;&#20491;&#20013;&#24515;&#37117;&#32173;&#35703;&#33879;&#21508;&#33258;&#23560;&#23660;&#12289;&#29978;&#33267;&#30456;&#20114;&#34909;&#31361;&#30340;&#38627;&#23383;&#23450;&#32681;&#26178;&#65292;&#20659;&#32113;&#30340;&#23383;&#20803;&#34389;&#29702;&#27231;&#21046;&#20415;&#38754;&#33256;&#26463;&#32283;&#12290;&#30001;&#26044;&#24213;&#23652;&#26694;&#26550;&#22312;&#35373;&#35336;&#19978;&#23660;&#26044;&#20840;&#22495;&#20849;&#20139;&#30340;&#38748;&#24907;&#35215;&#26684;&#65292;&#23566;&#33268;&#22810;&#22871;&#38627;&#23383;&#23565;&#26144;&#28961;&#27861;&#22312;&#21516;&#19968;&#20491;&#22519;&#34892;&#29872;&#22659;&#20013;&#20006;&#23384;&#12290;
&#28858;&#20102;&#35299;&#27770;&#36889;&#20491;&#22256;&#22659;&#65292;&#35377;&#22810;&#23560;&#26696;&#34987;&#36843;&#25505;&#21462;&#19981;&#20778;&#38597;&#30340;&#23458;&#35069;&#21270;&#25163;&#27573;&#65306;&#22312;&#31995;&#32113;&#30340; I/O &#37002;&#30028;&#25776;&#23531;&#22823;&#37327;&#32321;&#29795;&#30340;&#20302;&#38542;&#31243;&#24335;&#30908;&#65292;&#25163;&#21205;&#24478;&#20018;&#27969;&#20013;&#35712;&#21462;&#21407;&#22987;&#20301;&#20803;&#32068;&#65292;&#20877;&#36879;&#36942;&#23494;&#23494;&#40635;&#40635;&#30340;&#26781;&#20214;&#24335;&#30828;&#32232;&#30908;&#21435;&#21028;&#26039;&#39640;&#20302;&#20301;&#20803;&#32068;&#30340;&#25976;&#20540;&#31684;&#22285;&#65292;&#31526;&#21512;&#29305;&#23450;&#31684;&#22285;&#24460;&#25165;&#36914;&#34892;&#26292;&#21147;&#26597;&#34920;&#25110;&#23383;&#20018;&#20195;&#25563;&#12290;&#36889;&#31278;&#36941;&#24067;&#26044;&#31243;&#24335;&#37007;&#36655;&#30340;&#20302;&#38542;&#20301;&#20803;&#32068;&#34389;&#29702;&#65292;&#19981;&#20677;&#35731;&#31243;&#24335;&#30908;&#30772;&#30862;&#12289;&#25216;&#34899;&#20661;&#39640;&#26114;&#65292;&#32173;&#35703;&#25104;&#26412;&#26356;&#26159;&#28797;&#38627;&#24615;&#30340;&#12290;
&#26412;&#22580;&#30701;&#35611;&#23559;&#20998;&#20139;&#19968;&#22871;&#20778;&#38597;&#30340;&#26550;&#27083;&#37325;&#27083;&#26041;&#26696;&#8212;&#8212;&#21205;&#24907;&#23383;&#20803;&#38598;&#27231;&#21046;&#12290;&#36889;&#22871;&#27231;&#21046;&#23559;&#30446;&#20809;&#25237;&#21521; Java &#26680;&#24515;&#65292;&#30452;&#25509;&#37325;&#27083;&#33287;&#32763;&#36681;&#24213;&#23652;&#30340;&#23383;&#20803;&#32232;&#35299;&#30908;&#24341;&#25806;&#65292;&#23559;&#21407;&#26412;&#30828;&#32232;&#30908;&#22312;&#21508;&#34389;&#30340;&#20301;&#20803;&#32068;&#21028;&#26039;&#65292;&#20840;&#38754;&#25910;&#25871;&#20006;&#25552;&#21319;&#33267;&#27161;&#28310;&#23383;&#20803;&#34389;&#29702;&#23652;&#12290;
&#36889;&#22871;&#27231;&#21046;&#30340;&#21109;&#26032;&#22312;&#26044;&#23559;&#21407;&#26412;&#23448;&#26041;&#30828;&#32232;&#30908;&#12289;&#20840;&#22495;&#20849;&#20139;&#30340;&#38748;&#24907;&#32080;&#27083;&#65292;&#22823;&#20992;&#38346;&#26023;&#25913;&#28858;&#12300;&#21205;&#24907;&#23526;&#20363;&#21270;&#12301;&#26550;&#27083;&#65292;&#35731;&#19981;&#21516;&#30340;&#26989;&#21209;&#20013;&#24515;&#22312;&#22519;&#34892;&#26399;&#21508;&#33258;&#25793;&#26377;&#23436;&#20840;&#29544;&#31435;&#30340;&#23383;&#20803;&#38598;&#23526;&#20363;&#65292;&#23436;&#32654;&#36948;&#25104;&#22810;&#23458;&#25142;&#38548;&#38626;&#12290;&#21516;&#26178;&#65292;&#23383;&#20803;&#38598;&#22312;&#21021;&#22987;&#21270;&#26178;&#26371;&#21205;&#24907;&#35712;&#21462;&#22806;&#37096;&#30340; Excel &#38627;&#23383;&#23565;&#26144;&#34920;&#65292;&#23559;&#20854;&#33287;&#27161;&#28310;&#22522;&#30990;&#23383;&#38598;&#34701;&#21512;&#25104;&#19968;&#39636;&#21270;&#30340;&#23565;&#29031;&#35215;&#26684;&#65292;&#23560;&#26696;&#24478;&#27492;&#21482;&#38656;&#21628;&#21483;&#27161;&#28310; API &#21363;&#21487;&#33258;&#21205;&#23436;&#25104;&#26597;&#34920;&#12290;&#26368;&#24460;&#65292;&#27231;&#21046;&#26356;&#35373;&#35336;&#20102;&#29305;&#35069;&#30340;&#28151;&#34880;&#25844;&#20805;&#21312;&#22602;&#65292;&#30070;&#36935;&#21040;&#36229;&#20986;&#24120;&#35215;&#31684;&#22285;&#30340;&#36229;&#22823; Unicode &#32597;&#35211;&#23383;&#26178;&#65292;&#26371;&#33258;&#21205;&#20998;&#27969;&#33267;&#29544;&#31435;&#30340;&#36628;&#21161;&#23565;&#26144;&#20013;&#65292;&#20860;&#39015;&#20102;&#32085;&#22823;&#22810;&#25976;&#24120;&#29992;&#23383;&#30340;&#21407;&#29983;&#39640;&#36895;&#26597;&#34920;&#25928;&#33021;&#65292;&#21448;&#36070;&#20104;&#20102;&#31995;&#32113;&#34389;&#29702;&#36229;&#22823;&#38627;&#23383;&#30340;&#28961;&#38480;&#25844;&#20805;&#24392;&#24615;&#12290;
&#36879;&#36942;&#36889;&#22580; 15 &#20998;&#37912;&#30340;&#25216;&#34899;&#20998;&#20139;&#65292;&#32893;&#30526;&#23559;&#33021;&#25484;&#25569;&#22914;&#20309;&#23559;&#19968;&#20491;&#20725;&#21270;&#30340;&#24213;&#23652;&#20803;&#20214;&#65292;&#37325;&#27083;&#28858;&#20855;&#20633;&#39640;&#24230;&#24392;&#24615;&#30340;&#21205;&#24907;&#36039;&#26009;&#39493;&#21205;&#26550;&#27083;&#65292;&#24505;&#24213;&#21578;&#21029;&#25163;&#21205;&#35299;&#26512;&#20301;&#20803;&#32068;&#33287;&#32173;&#35703;&#28151;&#20098;&#32232;&#30908;&#37007;&#36655;&#30340;&#30171;&#33510;&#12290;</abstract>
                <slug>jcconf-2026-101245-big5---jdk</slug>
                <track>401</track>
                
                <persons>
                    <person id='100472'>Junli Xiao</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/8TCNVN/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/8TCNVN/feedback/</feedback_url>
            </event>
            <event guid='c847addf-1d33-5223-a177-43e8e536fabe' id='99745' code='WZFEQB'>
                <room>401</room>
                <title>Java Agent Stack 2026&#65306;Spring AI&#12289;Koog&#12289;Embabel &#33287; MCP / A2A &#30340;&#20225;&#26989;&#33853;&#22320;&#36335;&#32218;&#22294;</title>
                <subtitle></subtitle>
                <type>Session</type>
                <date>2026-09-11T14:00:00+08:00</date>
                <start>14:00</start>
                <duration>00:45</duration>
                <abstract>AI Agent &#24478; prompt demo &#36914;&#20837;&#20225;&#26989;&#33853;&#22320;&#24460;&#65292;&#30495;&#27491;&#22256;&#38627;&#30340;&#21839;&#38988;&#19981;&#20877;&#21482;&#26159;&#22914;&#20309;&#23531; prompt&#65292;&#32780;&#26159;&#22914;&#20309;&#25226;&#27169;&#22411;&#12289;&#24037;&#20855;&#12289;&#36039;&#26009;&#12289;&#24037;&#20316;&#27969;&#12289;&#35264;&#28204;&#24615;&#12289;&#27402;&#38480;&#33287;&#37096;&#32626;&#27835;&#29702;&#25972;&#21512;&#36914;&#26082;&#26377;&#31995;&#32113;&#12290;&#23565;&#35377;&#22810; Java / Kotlin &#22296;&#38538;&#20358;&#35498;&#65292;&#31572;&#26696;&#19981;&#19968;&#23450;&#26159;&#25226;&#21830;&#26989;&#37007;&#36655;&#25644;&#21040; Python&#65292;&#32780;&#26159;&#22312;&#21407;&#26412;&#25215;&#36617;&#26680;&#24515;&#26381;&#21209;&#30340; JVM stack &#19978;&#24314;&#31435;&#21487;&#32173;&#36939;&#30340; Agent &#24037;&#20855;&#37832;&#12290;

&#26412;&#22580;&#20998;&#20139;&#23559;&#20197; production agent &#30340;&#19977;&#23652;&#26550;&#27083;&#20999;&#20837;&#65306;&#31532;&#19968;&#23652;&#26159; integration layer&#65292;&#20351;&#29992; Spring AI &#23559; ChatClient&#12289;tool calling&#12289;RAG&#12289;memory&#12289;observability&#12289;evaluation &#33287; MCP client / server &#25972;&#21512;&#36914; Spring Boot &#30340; dependency injection &#33287; auto-configuration &#27169;&#22411;&#65307;&#31532;&#20108;&#23652;&#26159; orchestration layer&#65292;&#27604;&#36611; Embabel &#33287; Koog &#22914;&#20309;&#23559;&#22810;&#27493;&#39519;&#20219;&#21209;&#32068;&#32340;&#25104; goal&#12289;action&#12289;planner&#12289;graph &#25110; workflow&#65292;&#32780;&#19981;&#26159;&#20572;&#30041;&#22312;&#21934;&#27425; prompt &#21628;&#21483;&#65307;&#31532;&#19977;&#23652;&#26159; interop layer&#65292;&#35498;&#26126; MCP &#22914;&#20309;&#25104;&#28858;&#24037;&#20855;&#33287;&#36039;&#26009;&#30340;&#27161;&#28310;&#25509;&#27861;&#65292;&#20197;&#21450; A2A &#22914;&#20309;&#22312;&#38656;&#35201;&#26178;&#25226;&#22806;&#37096; agent &#20316;&#28858; remote capability &#32013;&#20837; JVM &#24179;&#21488;&#12290;

&#36889;&#22580;&#28436;&#35611;&#19981;&#26371;&#20027;&#24373; Java &#21462;&#20195; Python&#65292;&#32780;&#26159;&#22238;&#31572;&#19968;&#20491;&#26356;&#23526;&#21209;&#30340;&#21839;&#38988;&#65306;&#30070;&#20320;&#30340;&#36039;&#26009;&#12289;&#20132;&#26131;&#27969;&#31243;&#12289;&#27402;&#38480;&#25511;&#31649;&#33287;&#37096;&#32626;&#24179;&#21488;&#26412;&#20358;&#23601;&#22312; JVM &#29983;&#24907;&#35041;&#65292;&#22914;&#20309;&#22312;&#19981;&#37325;&#23531;&#26082;&#26377;&#31995;&#32113;&#30340;&#21069;&#25552;&#19979;&#65292;&#25226; Agent &#35722;&#25104;&#21487;&#20197;&#28204;&#35430;&#12289;&#21487;&#20197;&#35264;&#28204;&#12289;&#21487;&#20197;&#37096;&#32626;&#12289;&#21487;&#20197;&#27835;&#29702;&#30340; production component&#12290;

&#32893;&#30526;&#23559;&#26371;&#30475;&#21040;&#19968;&#20491;&#20197; Spring Boot / Spring AI &#28858;&#20027;&#30340; agent orchestrator &#31684;&#20363;&#65292;&#25645;&#37197; MCP tool integration&#65292;&#20006;&#36879;&#36942; Koog &#25110; Embabel &#30340; code walkthrough &#27604;&#36611;&#19981;&#21516; orchestration &#39080;&#26684;&#12290;&#26368;&#24460;&#26371;&#20197; A2A remote agent &#20316;&#28858;&#36328; runtime &#20114;&#36890;&#30340;&#25910;&#23614;&#26696;&#20363;&#65292;&#35498;&#26126;&#20225;&#26989;&#29872;&#22659;&#22914;&#20309;&#21516;&#26178;&#23481;&#32013; JVM agent&#12289;&#22806;&#37096; agent &#33287;&#38642;&#31471;&#37096;&#32626;&#12290;</abstract>
                <slug>jcconf-2026-99745-java-agent-stack-2026-spring-ai-koog-embabel--mcp-a2a</slug>
                <track>401</track>
                
                <persons>
                    <person id='99182'>Jiayun Zhou</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/WZFEQB/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/WZFEQB/feedback/</feedback_url>
            </event>
            <event guid='5ee5617b-5ce9-5733-afe8-cf588a77b820' id='98449' code='DR9WXE'>
                <room>401</room>
                <title>&#24460; Coding Agent &#26178;&#20195;&#30340;&#36575;&#39636;&#24037;&#31243;&#65306;TDD&#12289;EDD &#33287; Context Efficiency</title>
                <subtitle></subtitle>
                <type>Session</type>
                <date>2026-09-11T15:00:00+08:00</date>
                <start>15:00</start>
                <duration>00:45</duration>
                <abstract>Coding Agent &#24050;&#32147;&#25104;&#28858;&#35377;&#22810;&#24037;&#31243;&#24107;&#30340;&#26085;&#24120;&#24037;&#20855;&#65292;&#20294;&#35377;&#22810;&#24037;&#31243;&#24107;&#26371;&#21453;&#21839;&#33258;&#24049;&#65306;&#12300;&#37027;&#36996;&#38656;&#35201;&#23416;&#32722;&#36575;&#39636;&#24037;&#31243;&#21966;&#65311;&#24590;&#27171;&#23376;&#30340;&#36914;&#27493;&#22312;&#24460; Coding Agent &#26178;&#20195;&#36996;&#31639;&#26159;&#36914;&#27493;&#21602;&#65311;&#12301;

&#26412; talk &#25552;&#20986;&#19968;&#26781;&#24037;&#31243;&#24107;&#22312;&#24460; Coding Agent &#26178;&#20195;&#30340;&#21319;&#32026;&#36335;&#24465;&#65292;&#20998;&#28858;&#22235;&#20491;&#38364;&#21345;&#65306;
- Level 1&#65306;**IDE for agent** &#8212; &#20808;&#35373;&#32622;&#20491; LSP&#65292;&#35731; agent &#26377; IDE &#21487;&#20197;&#29992;&#21543;&#12290;
- Level 2&#65306;**Integration Test-Driven Development** &#8212; &#24478; unit test &#21319;&#32026;&#21040; integration test&#65292;&#35731; agent &#22312;&#26356;&#26089;&#30340;&#38542;&#27573;&#39511;&#35657;&#26356;&#28145;&#23652;&#30340;&#34892;&#28858;&#12290;
- Level 3&#65306;**EDD&#65288;Eval-Driven Development&#65289;** &#8212; &#20659;&#32113;&#28204;&#35430;&#39511;&#35657;&#12300;&#21151;&#33021;&#23565;&#19981;&#23565;&#12301;&#65292;EDD &#39511;&#35657;&#12300;agent &#30340;&#34892;&#28858;&#23565;&#19981;&#23565;&#12301;&#12290;&#20197;&#23526;&#38555;&#38283;&#30332;&#32147;&#39511;&#28858;&#20363;&#65306;cljfmt &#26684;&#24335;&#21270;&#24037;&#20855;&#22312;&#35519;&#25972;&#32302;&#25490;&#24460;&#65292;agent &#30340; str_replace &#25805;&#20316;&#26371;&#22240;&#28858;&#31354;&#30333;&#23383;&#20803;&#19981;&#31526;&#32780;&#21453;&#35206;&#22833;&#25943;&#65292;&#26368;&#32066;&#25972;&#20491;&#27284;&#26696;&#37325;&#23531;&#8212;&#8212;&#22823;&#37327; token &#28010;&#36027;&#22312;&#19968;&#20491;&#21487;&#20197;&#34987;&#35299;&#27770;&#30340;&#32080;&#27083;&#24615;&#21839;&#38988;&#19978;&#12290;&#19968;&#20491;&#26377;&#25928;&#30340; skill&#65292;&#33021;&#35731; agent &#25913;&#29992; S-expression &#32080;&#27083;&#27604;&#23565;&#20358;&#21462;&#20195;&#25991;&#23383;&#27604;&#23565;&#65292;&#30495;&#27491;&#28040;&#38500;&#36889;&#20491; behavioral gap&#65292;&#32780;&#19981;&#21482;&#26159;&#21578;&#35380; agent &#25033;&#35442;&#23567;&#24515;&#26684;&#24335;&#12290;
- Level 4&#65306;**Context Efficiency** &#8212; AI &#35201;&#23436;&#25104;&#19968;&#20491;&#20219;&#21209;&#65292;&#19981;&#38656;&#35201;&#35712;&#25972;&#20491; codebase&#65292;&#21482;&#38656;&#35201;&#35712;&#12300;&#20219;&#21209;&#30456;&#38364;&#30340;&#37027;&#24190;&#20491;&#27284;&#26696;&#12301;&#8212;&#8212;&#25105;&#20497;&#21487;&#20197;&#31281;&#20043;&#28858;&#23616;&#37096;&#23376;&#22294;&#65288;task-relevant subgraph&#65289;&#12290;&#36889;&#20491;&#23376;&#22294;&#30340;&#22823;&#23567;&#65292;&#30452;&#25509;&#27770;&#23450;&#20102; context &#30340;&#28040;&#32791;&#37327;&#12290;&#28982;&#32780;&#65292;&#23616;&#37096;&#23376;&#22294;&#65288;task-relevant subgraph&#65289;&#30340;&#22823;&#23567;&#65292;&#30001;&#36575;&#39636;&#26550;&#27083;&#27770;&#23450;&#65292;&#19981;&#30001;&#27169;&#22411;&#27770;&#23450;&#12290;</abstract>
                <slug>jcconf-2026-98449-coding-agent--tdd-edd--context-efficiency</slug>
                <track>401</track>
                
                <persons>
                    <person id='97964'>Laurence Chen</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/DR9WXE/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/DR9WXE/feedback/</feedback_url>
            </event>
            <event guid='c8ce5e7c-e613-546c-8a90-dd68b0a1ddf4' id='103292' code='3YEHYW'>
                <room>401</room>
                <title>&#9749; &#19979;&#21320;&#33590;&#26280; Kotlin 15 &#36913;&#24180;&#24950;&#31069;</title>
                <subtitle></subtitle>
                <type>Session</type>
                <date>2026-09-11T15:45:00+08:00</date>
                <start>15:45</start>
                <duration>00:30</duration>
                <abstract>&#9749; &#19979;&#21320;&#33590;&#26280; Kotlin 15 &#36913;&#24180;&#24950;&#31069;</abstract>
                <slug>jcconf-2026-103292-kotlin-15</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/3YEHYW/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/3YEHYW/feedback/</feedback_url>
            </event>
            <event guid='9853aa82-c238-5517-8909-fe3043cc8517' id='99751' code='NNXDNM'>
                <room>401</room>
                <title>Is Internal Quality Still Relevant for AI agents?</title>
                <subtitle></subtitle>
                <type>Session</type>
                <date>2026-09-11T16:15:00+08:00</date>
                <start>16:15</start>
                <duration>00:45</duration>
                <abstract>&quot;With AI, Code doesn&apos;t matter anymore.&quot; It&apos;s a seductive idea, and it&apos;s gaining believers: if specs and tests are the real source of truth and code is just a disposable artifact the model regenerates on demand, then technical debt stops being a problem. If the code has become impossible to change, just let AI rewrite it all from scratch. Clean architecture, naming, and separation of concerns have become yesterday&apos;s rituals &#8212; like punch cards.
This talk argues the opposite: internal quality matters more in an AI-driven workflow, not less. There are technical reasons why LLMs are more sensitive to well-structured code than humans are, and we&apos;ll look at examples drawn from real experience, alongside research papers that shed some light on the matter.
It&apos;s also a question of economics. If technical debt can be measured in the tokens &#8212; that is dollars &#8212; needed to work around it, then keeping it low directly saves money.
But there&apos;s a catch: &quot;code quality&quot; for an LLM is not exactly the same thing as what computing literature has traditionally called code quality. Modularization and good naming matter even more than before, but some classic &quot;clean code&quot; advice can actually worsen a model&apos;s performance. We&apos;ll look at where the two notions diverge, and how to improve your productivity scientifically &#8212; by measuring the effect of good structure and good instructions rather than assuming it.
Main Takeways:
Why LLMs are technically more sensitive to code structure than human readers
Which conventional &quot;clean code&quot; practices can backfire on a model, and why
How to measure and improve assistant productivity scientifically, rather than by gut feel</abstract>
                <slug>jcconf-2026-99751-is-internal-quality-still-relevant-for-ai-agents</slug>
                <track>401</track>
                
                <persons>
                    <person id='99187'>Uberto Barbini</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/NNXDNM/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/NNXDNM/feedback/</feedback_url>
            </event>
            
        </room>
        <room name='402AB' guid='5e58c945-cd27-590a-94c1-2ab3c5399653'>
            <event guid='ea768e27-b447-5c49-800b-6e128149d54c' id='103153' code='JTUQJX'>
                <room>402AB</room>
                <title>&#24478;&#28204;&#35430;&#21040;&#35215;&#26684;&#65306;Java &#33287; Kotlin &#38283;&#30332;&#32773;&#30340; SDD &#23526;&#25136;&#25351;&#21335;</title>
                <subtitle></subtitle>
                <type>Session</type>
                <date>2026-09-11T10:45:00+08:00</date>
                <start>10:45</start>
                <duration>00:45</duration>
                <abstract>&#30070; AI &#21152;&#20837;&#36575;&#39636;&#38283;&#30332;&#27969;&#31243;&#24460;&#65292;&#38614;&#28982;&#29986;&#20986;&#35722;&#22810;&#20102;&#65292;&#20294;&#33509;&#26159;&#38656;&#27714;&#19981;&#28165;&#26970;&#12289;&#37002;&#30028;&#27794;&#23450;&#32681;&#12289;&#39511;&#25910;&#26781;&#20214;&#19981;&#26126;&#30906;&#26178;&#65292;&#21363;&#20415;&#27169;&#22411;&#32880;&#26126;&#20063;&#21487;&#33021;&#29986;&#29983;&#30475;&#20284;&#21512;&#29702;&#12289;&#23526;&#38555;&#21371;&#19981;&#31526;&#21512;&#26399;&#24453;&#30340;&#23526;&#20316;&#12290;&#32780;&#30475;&#20284;&#32769;&#27966;&#30340;&#28204;&#35430;&#26041;&#27861;&#35542;&#65292;&#22312;&#36889;&#27171;&#30340;&#27969;&#31243;&#35041;&#21453;&#32780;&#30332;&#25582;&#38364;&#37749;&#30340;&#20316;&#29992;&#12290;

&#36889;&#22580;&#20998;&#20139;&#23559;&#24478;&#38283;&#30332;&#32773;&#29087;&#24713;&#30340; TDD &#32147;&#39511;&#20986;&#30332;&#65292;&#37325;&#26032;&#29702;&#35299; Spec-Driven Development&#65288;SDD&#65289;&#22312; AI &#26178;&#20195;&#30340;&#20729;&#20540;&#12290;SDD &#23559;&#35215;&#26684;&#12289;&#35373;&#35336;&#12289;&#20219;&#21209;&#25286;&#35299;&#12289;&#28204;&#35430;&#33287;&#23526;&#20316;&#20018;&#25104;&#23436;&#25972;&#30340;&#38283;&#30332;&#27969;&#31243;&#65292;&#20006;&#36879;&#36942; TDD &#39511;&#35657;&#32080;&#26524;&#26159;&#21542;&#31526;&#21512;&#38928;&#26399;&#12290;&#25105;&#20497;&#23559;&#20197; Java/Kotlin &#23560;&#26696;&#20013;&#24120;&#35211;&#30340;&#38283;&#30332;&#24773;&#22659;&#28858;&#20363;&#65292;&#31034;&#31684;&#22914;&#20309;&#20808;&#23450;&#32681;&#21151;&#33021;&#35215;&#26684;&#12289;&#38480;&#21046;&#26781;&#20214;&#33287;&#39511;&#25910;&#27161;&#28310;&#65292;&#20877;&#24341;&#23566; AI Agent &#29986;&#29983;&#28204;&#35430;&#33287;&#23526;&#20316;&#65292;&#20006;&#29992;&#28204;&#35430;&#22238;&#39243;&#27298;&#26597;&#29986;&#20986;&#26159;&#21542;&#30495;&#30340;&#23565;&#40778;&#35215;&#26684;&#12290;

&#38500;&#20102;&#22522;&#30990;&#27969;&#31243;&#22806;&#65292;&#20063;&#26371;&#35342;&#35542;&#22914;&#20309;&#36879;&#36942;&#22686;&#21152; Context&#12289;Skill &#31561;&#26041;&#24335;&#65292;&#35731; AI Agent &#33021;&#26356;&#31337;&#23450;&#22320;&#29702;&#35299;&#38283;&#30332;&#24931;&#20363;&#33287;&#22296;&#38538;&#24037;&#20316;&#27969;&#31243;&#12290;&#32893;&#23436;&#36889;&#22580;&#28436;&#35611;&#24460;&#65292;&#32893;&#30526;&#23559;&#23565; SDD &#22914;&#20309;&#25552;&#21319; AI &#29983;&#25104;&#21697;&#36074;&#12289;&#21332;&#21161;&#22296;&#38538;&#21462;&#24471;&#26356;&#31337;&#23450;&#30340;&#38283;&#30332;&#25104;&#26524;&#26377;&#26356;&#36914;&#19968;&#27493;&#30340;&#35469;&#35672;&#65292;&#20006;&#37325;&#26032;&#24605;&#32771;&#22312; AI Agent &#26178;&#20195;&#65292;&#38283;&#30332;&#32773;&#25033;&#35442;&#22914;&#20309;&#23432;&#20303;&#35215;&#26684;&#12289;&#28204;&#35430;&#33287;&#21697;&#36074;&#36012;&#20219;&#12290;</abstract>
                <slug>jcconf-2026-103153-java--kotlin--sdd</slug>
                <track>402AB</track>
                
                <persons>
                    <person id='97406'>&#33539;&#32854;&#20305;</person><person id='102382'>&#39640;&#35211;&#40845;</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/JTUQJX/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/JTUQJX/feedback/</feedback_url>
            </event>
            <event guid='54b69ff8-e54b-50c9-b7d7-ec89d8565739' id='100209' code='AUFDC8'>
                <room>402AB</room>
                <title>Why Spring Boot Feels Smaller in Kotlin</title>
                <subtitle></subtitle>
                <type>Session</type>
                <date>2026-09-11T11:45:00+08:00</date>
                <start>11:45</start>
                <duration>00:45</duration>
                <abstract>Spring Boot applications often grow into layers of builders, null checks, utility classes, and repetitive mapping code. Kotlin removes much of that weight without replacing it with &#8220;magic.&#8221;

Join me for a practical introduction to Kotlin from the perspective of a Spring Boot developer. I will show how features like strict nullability, smart casts, extension functions, reified generics, and Kotlin DSLs make backend code safer, smaller, and easier to reason about while still working seamlessly with existing Java codebases.

Along the way, we will look under the hood at what actually happens when Kotlin meets Spring. Why does Spring need the allOpen plugin? What changes when classes become final by default? How does Java interoperability really work? And why do some Kotlin features feel so natural in Spring applications while others can quietly work against you?

I will also share lessons from introducing Kotlin into large production systems, including common mistakes Java developers make early on, how Kotlin&#8217;s type system changes everyday coding habits, and how libraries like Mappie, MockK, Kotest, and Exposed fit naturally into the ecosystem.

By the end of the talk, you will understand not just how to write Kotlin in Spring Boot, but why Kotlin changes the way Spring applications feel to build and maintain.</abstract>
                <slug>jcconf-2026-100209-why-spring-boot-feels-smaller-in-kotlin</slug>
                <track>402AB</track>
                
                <persons>
                    <person id='99575'>Frederik Pietzko</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/AUFDC8/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/AUFDC8/feedback/</feedback_url>
            </event>
            <event guid='638e924e-a37b-5aa7-ac16-659bfeb21a46' id='99421' code='9UQNVE'>
                <room>402AB</room>
                <title>&#21363;&#23531;&#21363;&#26356;&#26032;&#65306;&#29992; Compose Hot Reload &#25552;&#21319; UI &#38283;&#30332;&#39636;&#39511;</title>
                <subtitle></subtitle>
                <type>Quickie</type>
                <date>2026-09-11T13:30:00+08:00</date>
                <start>13:30</start>
                <duration>00:15</duration>
                <abstract>&#23531; UI &#24456;&#26377;&#36259;&#65292;&#20294;&#27599;&#27425;&#20462;&#25913;&#19968;&#40670;&#23601;&#35201;&#31561;&#32232;&#35695;&#65292;&#23601;&#19968;&#40670;&#37117;&#19981;&#26377;&#36259;&#20102;&#65281;&#38568;&#33879; Compose Multiplatform &#30340;&#20986;&#29694;&#65292;Kotlin &#38283;&#30332;&#32773;&#24050;&#32147;&#33021;&#29992;&#23459;&#21578;&#24335;&#35486;&#27861;&#25171;&#36896;&#36328;&#24179;&#21488; UI&#12290;&#20294;&#38283;&#30332;&#32773;&#23565; UI &#38283;&#30332;&#30340;&#26399;&#24453;&#65292;&#38500;&#20102;&#35486;&#27861;&#35373;&#35336;&#22806;&#65292;&#20063;&#24076;&#26395;&#33021;&#22312;&#38283;&#30332;&#36942;&#31243;&#20013;&#24555;&#36895;&#30475;&#35211;&#20462;&#25913;&#32080;&#26524;&#12290;&#38614;&#28982; Jetpack Compose &#36879;&#36942; @Preview Annotation &#25913;&#21892;&#20102;&#37096;&#20998;&#38928;&#35261;&#39636;&#39511;&#65292;&#20294;&#36935;&#21040;&#30495;&#23526; App &#29376;&#24907;&#12289;Navigation&#12289;ViewModel &#25110;&#36328;&#24179;&#21488; UI &#26178;&#65292;&#20173;&#24456;&#38627;&#23436;&#20840;&#21462;&#20195;&#23526;&#38555;&#36305;&#36215;&#20358;&#30340;&#25033;&#29992;&#31243;&#24335;&#12290;

&#29694;&#22312;&#65292;JetBrains &#22296;&#38538;&#25512;&#20986; Compose Hot Reload&#65292;&#35731;&#38283;&#30332;&#32773;&#33021;&#22312;&#36939;&#20316;&#20013;&#30340; Compose Multiplatform &#25033;&#29992;&#35041;&#20462;&#25913; UI &#31243;&#24335;&#30908;&#65292;&#20786;&#23384;&#24460;&#24555;&#36895;&#30475;&#21040;&#35722;&#21270;&#65292;&#20006;&#30433;&#21487;&#33021;&#20445;&#30041;&#30070;&#21069;&#30059;&#38754;&#33287;&#29376;&#24907;&#12290;&#36889;&#22580;&#30701;&#35611;&#26371;&#24555;&#36895;&#20171;&#32057; Compose Hot Reload &#30340;&#26680;&#24515;&#21407;&#29702;&#12289;&#23433;&#35037;&#26041;&#24335;&#33287;&#24037;&#20316;&#27969;&#31243;&#65292;&#21253;&#21547;&#23427;&#22914;&#20309;&#36879;&#36942; JetBrains Runtime &#33287; DCEVM&#65292;&#25226;&#20462;&#25913;&#24460;&#30340;&#31243;&#24335;&#30908;&#36617;&#20837;&#26082;&#26377;&#25033;&#29992;&#31243;&#24335;&#12290;&#20063;&#26371;&#29694;&#22580;&#31034;&#31684;&#22914;&#20309;&#36879;&#36942; Hot Reload &#24555;&#36895;&#29986;&#35069; UI&#65292;&#20006;&#35498;&#26126;&#30070;&#21069;&#36969;&#21512;&#20351;&#29992;&#30340;&#24773;&#22659;&#33287;&#38480;&#21046;&#12290;&#32893;&#23436;&#24460;&#65292;&#32893;&#30526;&#23559;&#33021;&#29702;&#35299; Compose Hot Reload &#30340;&#20778;&#21218;&#65292;&#20197;&#21450;&#22914;&#20309;&#25226;&#23427;&#24118;&#36914;&#29694;&#26377;&#23560;&#26696;&#30340; UI &#38283;&#30332;&#27969;&#31243;&#12290;</abstract>
                <slug>jcconf-2026-99421-compose-hot-reload--ui</slug>
                <track>402AB</track>
                
                <persons>
                    <person id='97406'>&#33539;&#32854;&#20305;</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/9UQNVE/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/9UQNVE/feedback/</feedback_url>
            </event>
            <event guid='0a7cd8e6-d1ed-5a97-b85e-b450aef90c8f' id='98843' code='NYHCXE'>
                <room>402AB</room>
                <title>&#30070; Kotlin &#36935;&#19978;&#19977;&#22823;&#24460;&#31471;&#26694;&#26550;&#65306;Spring Boot&#12289;Quarkus &#33287; Ktor &#30340;&#29983;&#24907;&#31995;&#27770;&#25136;&#33287;&#26550;&#27083;&#23526;&#36368;</title>
                <subtitle></subtitle>
                <type>Session</type>
                <date>2026-09-11T14:00:00+08:00</date>
                <start>14:00</start>
                <duration>00:45</duration>
                <abstract>&#22312; JVM &#30340;&#24460;&#31471;&#19990;&#30028;&#20013;&#65292;Kotlin &#24977;&#34249;&#33879;&#31777;&#28500;&#30340;&#35486;&#27861;&#33287;&#24375;&#22823;&#30340;&#21332;&#31243;&#65288;Coroutines&#65289;&#27231;&#21046;&#65292;&#24050;&#32147;&#25104;&#28858;&#35377;&#22810;&#22296;&#38538;&#38283;&#30332;&#26032;&#26381;&#21209;&#30340;&#39318;&#36984;&#12290;

&#28982;&#32780;&#65292;&#38754;&#23565;&#24460;&#31471;&#26694;&#26550;&#30340;&#36984;&#25799;&#65292;&#25105;&#20497;&#24120;&#24120;&#38519;&#20837;&#31998;&#32080;&#65306;&#35442;&#36984;&#25799;&#27511;&#21490;&#24736;&#20037;&#12289;&#29983;&#24907;&#31995;&#26368;&#23436;&#25972;&#30340; Spring Boot&#65311;&#36996;&#26159;&#20027;&#25171;&#38642;&#21407;&#29983;&#12289;&#36229;&#24555;&#21855;&#21205;&#36895;&#24230;&#33287;&#20302;&#35352;&#25014;&#39636;&#20308;&#29992;&#30340; Quarkus&#65311;&#25233;&#25110;&#26159; JetBrains &#35242;&#29983;&#12289;&#32020; Kotlin &#22522;&#22240;&#30340;&#36629;&#37327;&#32026; Ktor&#65311;

&#26412;&#35696;&#31243;&#23559;&#24478; Kotlin &#38283;&#30332;&#32773;&#30340;&#35222;&#35282;&#20986;&#30332;&#65292;&#28145;&#20837;&#25506;&#35342;&#36889;&#19977;&#20491;&#26694;&#26550;&#20351;&#29992; Kotlin &#38283;&#30332;&#26178;&#30340;&#21508;&#31278;&#24046;&#30064;&#12290;

&#28961;&#35542;&#20320;&#26159;&#27491;&#22312;&#32771;&#24942;&#23559; Java &#23560;&#26696;&#36681;&#31227;&#21040; Kotlin&#65292;&#36996;&#26159;&#27491;&#22312;&#28858;&#24494;&#26381;&#21209;&#23563;&#25214;&#26368;&#20339;&#30340;&#24460;&#31471;&#26550;&#27083;&#65292;&#36889;&#22580;&#28436;&#35611;&#37117;&#23559;&#28858;&#20320;&#25552;&#20379;&#28165;&#26224;&#12289;&#23458;&#35264;&#19988;&#22522;&#26044;&#23526;&#25136;&#30340;&#25216;&#34899;&#36984;&#22411;&#25351;&#21335;&#12290;</abstract>
                <slug>jcconf-2026-98843-kotlin--spring-boot-quarkus--ktor</slug>
                <track>402AB</track>
                
                <persons>
                    <person id='98325'>Recca Chao</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/NYHCXE/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/NYHCXE/feedback/</feedback_url>
            </event>
            <event guid='0631cfd3-cdda-5513-bf30-e8becdfd1371' id='100232' code='FNNJXV'>
                <room>402AB</room>
                <title>AI Tooling for Java Development</title>
                <subtitle></subtitle>
                <type>Session</type>
                <date>2026-09-11T15:00:00+08:00</date>
                <start>15:00</start>
                <duration>00:45</duration>
                <abstract>AI coding assistants can generate Java code in seconds, but code generation is the easy part. The harder questions remain: What should we build? Why should we build it? Which functional and technical requirements must the implementation satisfy? How do we review the result, and what evidence tells us it is ready?

This talk examines how AI tools are changing the software development life cycle for Java enterprise teams.

The talk emphasizes the importance of expressing both functional requirements&#8212;the behavior and outcomes the software must deliver&#8212;and technical requirements such as architecture, security, performance, compatibility, observability, and regulatory constraints. Without this context, faster code generation can simply produce the wrong system more quickly.

Attendees will also learn the main concepts behind modern AI development tools:

- **Commands** express repeatable engineering actions.
- **Skills** provide reusable domain and technical knowledge.
- **Agents** perform bounded tasks with a defined role and context.
- **MCP Servers** connect AI tools to trusted systems and project information.

Examples using tools such as Cursor AI, Claude Code, Codex, and GitHub Copilot will make these concepts concrete without prescribing a single workflow or product. The central theme is engineering discipline: treat generated code and agent instructions with a Zero Trust mindset, keep software engineers in the loop, and require traceable evidence before accepting a change.

Attendees will leave with a clearer understanding of how the Java SDLC is evolving, why well-defined requirements become even more important when working with AI, and how these tools can support engineers without replacing architectural judgment, review, or accountability.

The talk will be delivered in English.</abstract>
                <slug>jcconf-2026-100232-ai-tooling-for-java-development</slug>
                <track>402AB</track>
                
                <persons>
                    <person id='99594'>Juan Antonio Brena Moral</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/FNNJXV/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/FNNJXV/feedback/</feedback_url>
            </event>
            <event guid='7531101e-161d-54a6-8211-a717c86b4d2b' id='100402' code='YN9MKZ'>
                <room>402AB</room>
                <title>Kotlin 2.x&#65306;&#24478;&#35486;&#35328;&#21319;&#32026;&#21040; AI &#26032;&#26178;&#20195;</title>
                <subtitle></subtitle>
                <type>Session</type>
                <date>2026-09-11T16:15:00+08:00</date>
                <start>16:15</start>
                <duration>00:45</duration>
                <abstract>Kotlin 2.x &#19981;&#21482;&#26159;&#19968;&#27425;&#29256;&#26412;&#26356;&#26032;&#65292;&#26356;&#20195;&#34920; Kotlin &#29983;&#24907;&#31995;&#36993;&#20837;&#26032;&#30340;&#30332;&#23637;&#38542;&#27573;&#12290;&#24478;&#20840;&#26032;&#30340; K2 Compiler&#12289;Context Parameters &#21040; Collection Literals&#65292;Kotlin &#25345;&#32396;&#25552;&#21319;&#35486;&#35328;&#34920;&#36948;&#33021;&#21147;&#12289;&#38283;&#30332;&#25928;&#29575;&#33287;&#26410;&#20358;&#28436;&#36914;&#30340;&#21487;&#33021;&#24615;&#12290;&#36889;&#20123;&#25913;&#35722;&#19981;&#20677;&#25913;&#21892;&#26085;&#24120;&#38283;&#30332;&#39636;&#39511;&#65292;&#20063;&#28858;&#36328;&#24179;&#21488;&#33287;&#26032;&#19990;&#20195;&#25033;&#29992;&#22880;&#23450;&#37325;&#35201;&#22522;&#30990;&#12290;

&#26412;&#27425;&#20998;&#20139;&#23559;&#24478; Kotlin 2.x &#26368;&#20540;&#24471;&#38364;&#27880;&#30340;&#35486;&#35328;&#38761;&#26032;&#38283;&#22987;&#65292;&#20171;&#32057; K2 Compiler &#24118;&#20358;&#30340;&#26550;&#27083;&#36681;&#35722;&#65292;&#20197;&#21450; Context Parameters &#33287; Collection Literals &#22914;&#20309;&#35731;&#31243;&#24335;&#30908;&#26356;&#20855;&#21487;&#35712;&#24615;&#33287;&#34920;&#36948;&#21147;&#12290;

&#38500;&#20102;&#35486;&#35328;&#26412;&#36523;&#30340;&#36914;&#21270;&#65292;&#25105;&#20497;&#20063;&#23559;&#36914;&#19968;&#27493;&#25506;&#35342; Kotlin &#22312; AI &#38936;&#22495;&#30340;&#26368;&#26032;&#24067;&#23616;&#65292;&#21253;&#25324; Koog&#12289;MCP SDK &#33287; Agent Skills &#31561;&#26032;&#33288;&#25216;&#34899;&#65292;&#20102;&#35299; Kotlin &#22914;&#20309;&#24478;&#19968;&#38272;&#29694;&#20195;&#21270;&#31243;&#24335;&#35486;&#35328;&#65292;&#36880;&#27493;&#30332;&#23637;&#25104;&#25903;&#25588; AI Agent &#33287;&#26234;&#24935;&#25033;&#29992;&#38283;&#30332;&#30340;&#24179;&#21488;&#12290;

&#36879;&#36942;&#26412;&#27425;&#20998;&#20139;&#65292;&#33287;&#26371;&#32773;&#23559;&#33021;&#25484;&#25569; Kotlin 2.x &#30340;&#26680;&#24515;&#35722;&#38761;&#12289;&#29702;&#35299; Kotlin &#33287; AI &#29983;&#24907;&#30340;&#32080;&#21512;&#26041;&#21521;&#65292;&#20006;&#24478;&#20013;&#30475;&#35211; Kotlin &#30340;&#30332;&#23637;&#26041;&#21521;&#12290;</abstract>
                <slug>jcconf-2026-100402-kotlin-2-x--ai</slug>
                <track>402AB</track>
                
                <persons>
                    <person id='99743'>Andy Lu</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/YN9MKZ/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/YN9MKZ/feedback/</feedback_url>
            </event>
            
        </room>
        <room name='402CD' guid='fd68a3d4-70ed-5689-9187-8602e1d2154d'>
            <event guid='7e7886eb-5929-55f6-bb6e-f2d3facdb575' id='100275' code='AEFSS9'>
                <room>402CD</room>
                <title>&#25361;&#25136; Java &#30340;&#29289;&#29702;&#26997;&#38480;&#65306;&#22914;&#20309;&#25171;&#36896;&#24449;&#26381; 1TB RAM &#33287;&#20740;&#32026;&#36039;&#26009;&#30340; EDA &#25928;&#33021;&#24341;&#25806;</title>
                <subtitle></subtitle>
                <type>Session</type>
                <date>2026-09-11T10:45:00+08:00</date>
                <start>10:45</start>
                <duration>00:45</duration>
                <abstract>&#22312;&#21322;&#23566;&#39636;&#38651;&#36335;&#35373;&#35336;&#65288;EDA&#65289;&#38936;&#22495;&#65292;C/C++ &#32113;&#27835;&#20102;&#36229;&#36942;&#19977;&#21313;&#24180;&#65292;&#20351;&#29992; Java &#38283;&#30332;&#24120;&#34987;&#35222;&#28858;&#12300;&#19981;&#21487;&#33021;&#30340;&#20219;&#21209;&#12301;&#12290;&#28982;&#32780;&#36942;&#21435;&#21313;&#24180;&#65292;&#25105;&#20497;&#22296;&#38538;&#24478; JDK 8 &#19968;&#36335;&#25512;&#36914;&#21040; JDK 25&#65292;&#27491;&#38754;&#25361;&#25136; Java &#22312;&#26997;&#33268;&#25928;&#33021;&#33287;&#36229;&#22823;&#23481;&#37327;&#30340;&#29289;&#29702;&#19978;&#38480;&#12290;&#25105;&#20497;&#32147;&#27511;&#20102;&#26089;&#26399;&#25928;&#33021;&#33287;&#35352;&#25014;&#39636;&#36275;&#36321;&#33853;&#24460; C/C++ &#39640;&#36948;&#21313;&#20493;&#30340;&#22256;&#22659;&#65292;&#19968;&#36335;&#20778;&#21270;&#21040;&#22914;&#20170;&#65292;&#36889;&#26159;&#19968;&#27573; Java &#22312;&#21322;&#23566;&#39636;&#38914;&#23574;&#25136;&#22580;&#30340;&#36870;&#35186;&#24515;&#36335;&#27511;&#31243;&#12290;

&#26412;&#22580;&#28436;&#35611;&#23559;&#28145;&#24230;&#35299;&#23494;&#25105;&#20497;&#22914;&#20309;&#31361;&#30772; Java &#21407;&#29983;&#26997;&#38480;&#65292;&#35299;&#27770;&#22235;&#22823;&#26680;&#24515;&#30828;&#26680;&#25361;&#25136;&#65306;

* &#25850;&#33067;&#21253;&#34993;&#65306; &#28858;&#20160;&#40636; Java Stream&#12289;Eclipse Collections &#33287; Guava &#22312;&#26997;&#31471;&#22580;&#26223;&#19981;&#20877;&#25975;&#20351;&#65311;&#25105;&#20497;&#22914;&#20309;&#25913;&#35722;&#20351;&#29992;&#24605;&#32173;&#33287;&#20778;&#21270;&#23566;&#21521;&#12290;
* &#20840;&#25163;&#21051; EDA &#36039;&#26009;&#24235;&#65306; &#38754;&#23565; 1TB RAM &#20282;&#26381;&#22120;&#12289;100M&#65288;&#20740;&#32026;&#65289;&#36039;&#26009;&#37327;&#65292;&#21407;&#29983; HashMap &#22914;&#20309;&#23849;&#28528;&#65311;&#35299;&#23494;&#39640;&#20302;&#23494;&#24230;&#27396;&#20301;&#35373;&#35336;&#30340;&#35352;&#25014;&#39636;&#20296;&#23616;&#12290;
* &#39348;&#26381; 1TB &#30340; GC &#24040;&#29560;&#65306; &#32147;&#27511;&#36942; GC &#20572;&#38931;&#39640;&#36948;&#25976;&#20998;&#37912;&#30340;&#40657;&#26263;&#26399;&#65292;&#25105;&#20497;&#22914;&#20309;&#36879;&#36942; Zero-allocation&#65288;&#38646;&#37197;&#32622;&#65289;&#33287; GC Invisibility&#65288;GC &#38577;&#24418;&#65289;&#25216;&#34899;&#23526;&#29694;&#27969;&#26274;&#36939;&#34892;&#65292;&#20006;&#37325;&#26032;&#35373;&#35336;&#39640;&#25928;&#29575;&#30340;&#29983;&#21629;&#36913;&#26399;&#31649;&#29702;&#12290;
* &#25171;&#30772; OOP &#29254;&#22721;&#65306; &#28145;&#20837;&#32202;&#28234;&#33287;&#22739;&#32302;&#29289;&#20214;&#30340;&#24213;&#23652;&#23526;&#36368;&#65292;&#22914;&#20309;&#28961;&#24773;&#28040;&#38500;&#29289;&#20214;&#38957;&#65288;Object Header&#65289;&#28010;&#36027;&#65292;&#19981;&#35731;&#29289;&#20214;&#23566;&#21521;&#25104;&#28858;&#25928;&#33021;&#32070;&#33139;&#30707;&#12290;

&#32893;&#30526;&#25910;&#31339;&#65306;&#36889;&#36255;&#26053;&#31243;&#36996;&#22312;&#32380;&#32396;&#12290;&#36879;&#36942;&#26412;&#22580;&#20998;&#20139;&#65292;&#24744;&#23559;&#24118;&#36208;&#19968;&#22871;&#23559; Java &#25512;&#21521;&#30828;&#39636;&#26997;&#38480;&#30340;&#24213;&#23652;&#20778;&#21270;&#24605;&#32173;&#65292;&#39003;&#35206;&#20320;&#23565; Java &#25928;&#33021;&#19978;&#38480;&#30340;&#26082;&#23450;&#35469;&#30693;&#12290;</abstract>
                <slug>jcconf-2026-100275-java---1tb-ram--eda</slug>
                <track>402CD</track>
                
                <persons>
                    <person id='99629'>Morris Yang</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>true</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/AEFSS9/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/AEFSS9/feedback/</feedback_url>
            </event>
            <event guid='041f7c27-607b-5794-aa88-ca355996bd92' id='100301' code='3RLNLK'>
                <room>402CD</room>
                <title>&#30070; 1+1 &#19981;&#20877;&#27704;&#36960;&#31561;&#26044; 2&#65306;LLM &#22312;&#38936;&#22495;&#27169;&#22411;&#20013;&#30340;&#33021;&#21147;&#33287;&#37002;&#30028;</title>
                <subtitle></subtitle>
                <type>Session</type>
                <date>2026-09-11T11:45:00+08:00</date>
                <start>11:45</start>
                <duration>00:45</duration>
                <abstract>LM &#27491;&#24555;&#36895;&#28402;&#36879;&#21508;&#31278;&#25033;&#29992;&#22580;&#26223;&#65292;&#20294;&#30070;&#23427;&#36914;&#20837;&#35079;&#38620;&#26989;&#21209;&#38936;&#22495;&#26178;&#65292;&#25105;&#20497;&#20063;&#38283;&#22987;&#30475;&#35211;&#23427;&#22312;&#29702;&#35299;&#33287;&#25512;&#29702;&#19978;&#30340;&#38480;&#21046; &#129300;

&#36879;&#36942;&#23526;&#38555;&#25913;&#36896;&#21476;&#32769;&#31995;&#32113;&#30340;&#26696;&#20363;&#65292;&#24118;&#20320;&#37325;&#26032;&#35469;&#35672; LLM &#22312;&#38936;&#22495;&#27169;&#22411;&#20013;&#30340;&#35282;&#33394;&#65292;&#20006;&#24605;&#32771;&#22312;&#20154;&#27231;&#21332;&#20316;&#33287;&#22296;&#38538;&#21332;&#20316;&#20013;&#65292;&#22914;&#20309;&#26356;&#22909;&#30340;&#35672;&#21029;&#31995;&#32113;&#25033;&#30070;&#35373;&#35336;&#21040;&#20160;&#40636;&#27171;&#30340;&#29986;&#20986;&#27700;&#28310;&#65292;&#25165;&#36969;&#21512;&#22570;&#31281;&#28858;&#21487;&#20132;&#20184;&#30340;&#29376;&#24907;&#12290;

&#22312;&#36889;&#20491;&#28436;&#35611;&#20839;&#23481;&#20013;&#65292;&#28041;&#21450;&#20294;&#19981;&#20677;&#38480;&#26044;&#20197;&#19979;&#20027;&#38988; : &#22296;&#38538;&#21332;&#20316;&#12289; mainframe&#12289;&#38936;&#22495;&#39493;&#21205;&#35373;&#35336;&#12289;&#24341;&#23566;&#24037;&#20316;&#22346;&#12289; Example Mapping &#12289; Wardley Mapping&#12289;Context engineering&#12289;  Harness engineering&#12289;Ontology&#12289;SSOT (Single Source of Truth)&#12290;</abstract>
                <slug>jcconf-2026-100301-1-1--2-llm</slug>
                <track>402CD</track>
                
                <persons>
                    <person id='99651'>Kim Kao</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>true</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/3RLNLK/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/3RLNLK/feedback/</feedback_url>
            </event>
            <event guid='b034244f-f4d1-5d9e-8f13-b43eab996db0' id='103168' code='WESL3X'>
                <room>402CD</room>
                <title>JSpecify: Bringing Standard Nullability to Java</title>
                <subtitle></subtitle>
                <type>Quickie</type>
                <date>2026-09-11T13:30:00+08:00</date>
                <start>13:30</start>
                <duration>00:15</duration>
                <abstract>Nullability annotations have been part of the Java ecosystem for years, but every library seems to have its own flavor&#8212;javax.annotation, JetBrains, Eclipse, Spring, and more. This fragmentation makes it difficult to share nullness information consistently across tools and libraries.

JSpecify aims to solve this by defining a standard, tool-agnostic way to express nullness in Java. As support from Java tooling continues to grow, many teams are beginning to consider migrating to JSpecify.

In this session, I&apos;ll introduce the motivation behind JSpecify, explain how it differs from legacy nullability annotations, and share practical lessons from migrating an existing Java application. We&apos;ll cover migration strategies, the tooling that can help automate the process, and a few surprising framework compatibility issues we encountered.</abstract>
                <slug>jcconf-2026-103168-jspecify-bringing-standard-nullability-to-java</slug>
                <track>402CD</track>
                
                <persons>
                    <person id='102187'>LEE HAO CHENG</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/WESL3X/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/WESL3X/feedback/</feedback_url>
            </event>
            <event guid='4cf78f52-5424-5440-b94a-2a2363027272' id='98500' code='WPYY9W'>
                <room>402CD</room>
                <title>Java Goes Outside: FFM API, Vector API, and Beyond</title>
                <subtitle></subtitle>
                <type>Session</type>
                <date>2026-09-11T14:00:00+08:00</date>
                <start>14:00</start>
                <duration>00:45</duration>
                <abstract>Java runs on the JVM, which brings great benefits: memory safety, type safety, and platform independence. However, Java has long been considered weak when it comes to the &quot;outside world&quot; &#8212; calling native libraries, controlling hardware, and optimizing at the CPU instruction level have all been pain points for Java developers.

Project Panama changes that. The FFM API (Foreign Function &amp; Memory API), released as a standard feature in Java 22, introduces new abstractions such as MemorySegment and Linker, allowing native functions and off-heap memory to be accessed in a way that feels natural within the Java world. In this session, I will walk through a simple electronics demo to explain the advantages of the FFM API compared to the traditional JNI approach.

This session will also cover the Vector API, another output of Project Panama. By explicitly leveraging CPU SIMD instructions from Java, this API delivers significant performance gains in areas such as image processing and numerical computation. This session will also introduce Project Babylon, an OpenJDK project that aims to run Java on accelerators such as GPUs and FPGAs. 

Java is now stepping out beyond the JVM. To boldly go where Java has never gone before.</abstract>
                <slug>jcconf-2026-98500-java-goes-outside-ffm-api-vector-api-and-beyond</slug>
                <track>402CD</track>
                
                <persons>
                    <person id='98014'>Takaaki Sugiyama</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/WPYY9W/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/WPYY9W/feedback/</feedback_url>
            </event>
            <event guid='8012cb12-c6d9-5d6b-bf22-9f76c3fd9edc' id='98890' code='EPKX8E'>
                <room>402CD</room>
                <title>&#25226; AI &#32013;&#20837;&#36575;&#39636;&#24037;&#34269;&#65306;&#29992; Codex Skills &#33287; Multi-Agent &#36070;&#33021; Java &#22296;&#38538;&#21332;&#20316;&#33287;&#20132;&#20184;</title>
                <subtitle></subtitle>
                <type>Session</type>
                <date>2026-09-11T15:00:00+08:00</date>
                <start>15:00</start>
                <duration>00:45</duration>
                <abstract>&#37329;&#34701;&#36575;&#39636;&#38283;&#30332;&#20197;&#22196;&#35641;&#12289;&#27969;&#31243;&#22266;&#23450;&#65288;SA&#12289;SD&#12289;&#23526;&#20316;&#12289;&#25972;&#21512;&#28204;&#35430;&#12289;&#22238;&#27512;&#28204;&#35430;&#65289;&#33879;&#31281;&#65292;&#25991;&#20214;&#26356;&#26159;&#19981;&#21487;&#25110;&#32570;&#30340;&#22522;&#30707;&#12290;&#22312; Agent &#19990;&#20195;&#65292;&#36889;&#31278;&#28145;&#21402;&#30340;&#25991;&#20214;&#25991;&#21270;&#38750;&#20294;&#27794;&#26377;&#36942;&#26178;&#65292;&#21453;&#32780;&#33287;&#20027;&#27969;&#30340; **SDD&#65288;Specification-Driven Development&#65292;&#35215;&#26684;&#39493;&#21205;&#38283;&#30332;&#65289;** &#23436;&#32654;&#32080;&#21512;&#12290;
&#26412;&#20998;&#20139;&#23559;&#20197;&#33258;&#36523;&#24460;&#31471;&#22296;&#38538;&#30340;&#23526;&#25136;&#32147;&#39511;&#20986;&#30332;&#65292;&#23637;&#31034;&#22914;&#20309;&#20197; **API-First** &#28858;&#28317;&#36890;&#20013;&#27166;&#65292;&#23559;&#20659;&#32113; SA/SD &#25991;&#20214;&#36681;&#21270;&#28858;&#27231;&#22120;&#21487;&#35712;&#30340;&#35215;&#26684;&#22865;&#32004;&#12290;&#30001;&#26044; LLM &#27169;&#22411;&#26412;&#36523;&#26159;&#28961;&#29376;&#24907;&#65288;Stateless&#65289;&#19988;&#20276;&#38568;&#24187;&#35258;&#39080;&#38570;&#65292;&#25105;&#20497;&#36879;&#36942;&#19968;&#22871;&#24037;&#31243;&#21270;&#30340; **Harness&#65288;&#38283;&#30332;&#27835;&#20855;&#65289;** &#22196;&#26684;&#25511;&#21046;&#38283;&#30332;&#27969;&#31243;&#65307;&#21516;&#26178;&#21033;&#29992; **Codex Skills** &#23559;&#22296;&#38538;&#26082;&#26377;&#30340;&#26550;&#27083;&#35215;&#31684;&#33287;&#23433;&#20840;&#28310;&#21063;&#27161;&#28310;&#21270;&#12290;
&#36879;&#36942; **Multi-Agent &#21332;&#20316;&#27231;&#21046;**&#65292;&#25105;&#20497;&#23559; SA&#12289;SD&#12289;PG&#12289;QA &#35282;&#33394;&#34395;&#25836;&#21270;&#65288;Virtual Dev Team&#65289;&#65292;&#28858;&#27599;&#20491;&#35282;&#33394;&#35373;&#23450;&#26126;&#30906;&#30340;&#20219;&#21209;&#30446;&#27161;&#33287;&#22196;&#26684;&#30340;&#20132;&#20184;&#37002;&#30028;&#12290;&#26412;&#22580; talk &#23559;&#23436;&#25972;&#35299;&#26512;&#24478;&#31995;&#32113;&#35373;&#35336;&#12289;API &#22865;&#32004;&#23450;&#32681;&#12289;&#31243;&#24335;&#33258;&#21205;&#29983;&#25104;&#12289;&#25972;&#21512;&#28204;&#35430;&#65292;&#21040;&#26368;&#32066;&#37096;&#32626;&#33287; E2E &#22238;&#27512;&#28204;&#35430;&#30340;&#23436;&#25972;&#38281;&#29872;&#12290;&#36889;&#22871;&#26041;&#27861;&#35657;&#26126;&#20102;&#65306;&#21152;&#24375; SDD &#33287;&#20659;&#32113;&#38283;&#30332;&#26041;&#24335;&#19981;&#20677;&#27794;&#26377;&#34909;&#31361;&#65292;&#21453;&#32780;&#26159;&#30456;&#36628;&#30456;&#25104;&#65292;&#22312;&#22823;&#24133;&#25552;&#21319;&#20132;&#20184;&#25928;&#29575;&#30340;&#21516;&#26178;&#65292;&#26356;&#33021;&#23559;&#20154;&#28858;&#22833;&#35492;&#38477;&#33267;&#26368;&#20302;&#65292;&#23526;&#36368;&#37329;&#34701;&#32026;&#30340;&#36575;&#39636;&#24037;&#34269;&#33853;&#22320;&#12290;</abstract>
                <slug>jcconf-2026-98890-ai---codex-skills--multi-agent--java</slug>
                <track>402CD</track>
                
                <persons>
                    <person id='98370'>Samson</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/EPKX8E/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/EPKX8E/feedback/</feedback_url>
            </event>
            <event guid='0cdc68ee-1637-54a6-8275-9af936673581' id='98606' code='VYMLCA'>
                <room>402CD</room>
                <title>From Theory to Practice: Real-World Lessons in Post-Quantum Cryptography Migration</title>
                <subtitle></subtitle>
                <type>Session</type>
                <date>2026-09-11T16:15:00+08:00</date>
                <start>16:15</start>
                <duration>00:45</duration>
                <abstract>Quantum computing is no longer a distant concept&#8212;it&#8217;s an imminent challenge to today&#8217;s cryptographic standards. The shift to Post-Quantum Cryptography (PQC) is not optional; it&#8217;s inevitable. Yet, the practical steps for adapting existing applications to PQC, and the critical considerations for ensuring compatibility, remain largely unclear.
This session goes beyond theory. We&#8217;ll start with a concise overview of PQC fundamentals, then dive into real-world migration experiences&#8212;what worked, what didn&#8217;t, and why. Attendees will gain actionable best practices drawn from hands-on projects, offering guidance not only for those planning future migrations but also for developers designing new applications today.
If you&#8217;ve ever wondered, &#8220;Where do I start?&#8221; or &#8220;What pitfalls should I avoid?&#8221;, this talk will provide the answers&#8212;grounded in real-world experience and focused on practical success.

By the end of this session, participants will be able to:

- Understand the fundamentals of Post-Quantum Cryptography (PQC) and why early adoption is critical in the face of quantum computing threats.
- Identify key challenges and pitfalls encountered during real-world PQC migration projects.
- Apply proven best practices for adapting existing applications to PQC while maintaining security and performance.
- Develop a practical roadmap for integrating PQC into both legacy systems and new application designs.</abstract>
                <slug>jcconf-2026-98606-from-theory-to-practice-real-world-lessons-in-post-quantum-cryptography-migration</slug>
                <track>402CD</track>
                
                <persons>
                    <person id='98086'>Akihiro Nishikawa</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/VYMLCA/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/VYMLCA/feedback/</feedback_url>
            </event>
            
        </room>
        <room name='203' guid='b8703fb9-81ef-5801-b430-27af3d0da532'>
            <event guid='0c7a8d71-a9d5-503f-b6d3-d43dafbda580' id='103788' code='7TRTRK'>
                <room>203</room>
                <title>ClusterJ API&#21644;MySQL NDB Cluster &#24314;&#31435;&#19968;&#22871;&#26997;&#36895;Java&#25033;&#29992;&#31995;&#32113;</title>
                <subtitle></subtitle>
                <type>Quickie</type>
                <date>2026-09-11T13:30:00+08:00</date>
                <start>13:30</start>
                <duration>00:15</duration>
                <abstract>MySQL NDB Cluster&#26159;&#19968;&#20491;&#20855;&#26377;&#26997;&#33268;&#25844;&#20805;&#21147;&#30340;&#20998;&#20296;&#24335;&#36039;&#26009;&#24235;,&#22823;&#37096;&#20221;&#30340;&#25033;&#29992;&#25226;&#23427;&#30070;&#25104;&#19968;&#33324;&#30340;&#38364;&#32879;&#24335;&#36039;&#26009;&#24235;,&#20197;MySQL Connector/J &#36879;&#36942;MySQL server (mysqld) &#21462;&#29992;&#23384;&#22312;data node&#30340;&#36039;&#26009;, &#30070;&#24744;&#24819;&#35201;&#35731;&#24744;&#30340;Java&#25033;&#29992;&#24615;&#33021;&#26356;&#19978;&#19968;&#23652;&#27155;, &#24744;&#30340;Java&#25033;&#29992;&#21487;&#20197;&#29992;ClusterJ API&#32350;&#36942;MySQL Server&#30452;&#25509;&#21462;&#29992;data nodes&#30340;&#36039;&#26009;, &#36914;&#32780;&#33021;&#20351;&#36039;&#26009;&#21462;&#29992;&#30340;&#36895;&#24230;&#25552;&#21319;&#25976;&#20493;. &#36889;&#22580;&#28436;&#35611;&#25105;&#23559;&#20171;&#32057;Java&#25033;&#29992;&#22914;&#20309;&#20351;&#29992;ClusterJ,&#20197;&#21450;MySQL NDB Cluster&#30340;&#26550;&#27083;, &#21644;&#23637;&#31034;ClusterJ&#25152;&#24118;&#20358;&#30340;&#24615;&#33021;&#25552;&#21319;.</abstract>
                <slug>jcconf-2026-103788-clusterj-apimysql-ndb-cluster-java</slug>
                <track>203</track>
                
                <persons>
                    <person id='102847'>&#26460;&#20462;&#25991;</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>true</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/7TRTRK/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/7TRTRK/feedback/</feedback_url>
            </event>
            <event guid='a5068795-3421-5099-a8c4-dcf121d31e34' id='101115' code='WZM8EQ'>
                <room>203</room>
                <title>&#39381;&#39341; Scala &#22411;&#21029;&#31995;&#32113;&#65306;&#22312;&#22411;&#21029;&#23652;&#25171;&#36896;&#33258;&#21205;&#27231;</title>
                <subtitle></subtitle>
                <type>Session</type>
                <date>2026-09-11T14:00:00+08:00</date>
                <start>14:00</start>
                <duration>00:45</duration>
                <abstract>Scala &#30340;&#22411;&#21029;&#31995;&#32113;&#22312; JVM &#29983;&#24907;&#31995;&#20013;&#29544;&#27193;&#19968;&#24159;&#65292;&#20294;&#20063;&#22240;&#28858;&#20854;&#24375;&#22823;&#30340;&#21151;&#33021;&#35731;&#38283;&#30332;&#32773;&#26178;&#24120;&#19981;&#30693;&#36947;&#22914;&#20309;&#36939;&#29992;&#36889;&#20491;&#20778;&#21218;&#21435;&#38283;&#30332;&#22411;&#21029;&#19978;&#26356;&#21152;&#23433;&#20840;&#30340;&#31243;&#24335;&#12290;

&#22312;&#36889;&#20491; session &#20013;&#65292;&#23559;&#26371;&#31777;&#21934;&#20171;&#32057; Scala &#22411;&#21029;&#31995;&#32113;&#65292;&#20006;&#21033;&#29992;&#20854;&#24213;&#23652;&#30340;&#25512;&#23566;&#37007;&#36655;&#25171;&#36896;&#19968;&#20491;&#22411;&#21029;&#23433;&#20840;&#30340;&#33258;&#21205;&#27231;&#65292;&#21021;&#27493;&#24118;&#38936;&#38283;&#30332;&#32773;&#29702;&#35299;&#22411;&#21029;&#31995;&#32113;&#20006;&#38283;&#30332;&#30340;&#25793;&#26377;&#36914;&#38542;&#22411;&#21029;&#23433;&#20840;&#30340;&#31243;&#24335;&#12290;</abstract>
                <slug>jcconf-2026-101115-scala</slug>
                <track>203</track>
                
                <persons>
                    <person id='100354'>ChAoS UnItY (Kyle Lin)</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>true</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/WZM8EQ/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/WZM8EQ/feedback/</feedback_url>
            </event>
            <event guid='87147e03-b9c0-5a64-85cb-5f752fa883fb' id='100321' code='NBAXXU'>
                <room>203</room>
                <title>Reading Java Class Files for Fun: From CAFEBABE to invokedynamic</title>
                <subtitle></subtitle>
                <type>Session</type>
                <date>2026-09-11T15:00:00+08:00</date>
                <start>15:00</start>
                <duration>00:45</duration>
                <abstract>Java developers usually write source code and let javac and the JVM handle the rest. But the generated class file contains many interesting details: the constant pool, methods, attributes, bytecode instructions, stack-based execution, synthetic methods, and invokedynamic.

In this session, we will take a guided tour of Java class files using small Java programs and javap. We will start with the basic structure of a class file, including the magic number, version, constant pool, methods, and attributes. Then we will read simple bytecode instructions as stack-machine operations, so that attendees can understand how Java code is represented after compilation.

After building this foundation, we will look at invokedynamic, one of the most interesting bytecode instructions added to the JVM. We will examine how modern Java features such as string concatenation and lambdas are represented in class files, and what bootstrap methods and call sites roughly do behind the scenes.

The goal is not to memorize the JVM specification. The goal is to enjoy discovering what Java actually becomes after compilation. After this session, attendees should be able to inspect class files by themselves and use that knowledge as a foundation for understanding Java language features, JVM behavior, performance topics, and bytecode-based tools.</abstract>
                <slug>jcconf-2026-100321-reading-java-class-files-for-fun-from-cafebabe-to-invokedynamic</slug>
                <track>203</track>
                
                <persons>
                    <person id='99668'>Koichi Sakata</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>true</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/NBAXXU/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/NBAXXU/feedback/</feedback_url>
            </event>
            <event guid='f3ff2020-b714-5c02-983e-f2be67fd2357' id='99954' code='TLXZ38'>
                <room>203</room>
                <title>&#20351;&#29992;&#29694;&#20195;&#27969;&#31243;&#24341;&#25806;&#65292;&#31777;&#21270;&#36328;&#26381;&#21209;&#12289;&#22810;&#27493;&#39519;&#27969;&#31243;&#38283;&#30332;</title>
                <subtitle></subtitle>
                <type>Session</type>
                <date>2026-09-11T16:15:00+08:00</date>
                <start>16:15</start>
                <duration>00:45</duration>
                <abstract>&#22312;&#24494;&#26381;&#21209;&#26550;&#27083;&#19979;&#65292;&#36328;&#26381;&#21209;&#27969;&#31243;&#24448;&#24448;&#20276;&#38568;&#37325;&#35430;&#12289;&#35036;&#20767;&#12289;&#29376;&#24907;&#36861;&#36452;&#33287;&#20154;&#24037;&#20171;&#20837;&#31561;&#25361;&#25136;&#65292;&#38283;&#30332;&#32773;&#19981;&#24471;&#19981;&#25776;&#23531;&#22823;&#37327;&#27969;&#31243;&#25511;&#21046;&#31243;&#24335;&#65292;&#22686;&#21152;&#31995;&#32113;&#35079;&#38620;&#24230;&#33287;&#32173;&#35703;&#25104;&#26412;&#12290;
&#26412;&#27425;&#20998;&#20139;&#23559;&#22238;&#39015;&#27969;&#31243;&#24341;&#25806;&#30340;&#28436;&#36914;&#65292;&#20171;&#32057; Workflow as Code &#30340;&#35373;&#35336;&#29702;&#24565;&#65292;&#20006;&#20197; Temporal &#28858;&#20363;&#65292;&#35498;&#26126; Durable Execution &#22914;&#20309;&#31777;&#21270;&#36328;&#26381;&#21209;&#27969;&#31243;&#38283;&#30332;&#65292;&#20998;&#20139;&#22810;&#31278;&#25033;&#29992;&#27169;&#24335;&#65292;&#21332;&#21161;&#38283;&#30332;&#32773;&#24314;&#27083;&#26356;&#21487;&#38752;&#19988;&#26131;&#26044;&#32173;&#35703;&#30340;&#20998;&#25955;&#24335;&#27969;&#31243;&#12290;</abstract>
                <slug>jcconf-2026-99954</slug>
                <track>203</track>
                
                <persons>
                    <person id='99326'>&#23004;&#25919;&#23439; Jiang</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>true</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/TLXZ38/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/TLXZ38/feedback/</feedback_url>
            </event>
            
        </room>
        <room name='403' guid='1521be3d-37b6-5afd-984c-a3019c5bf561'>
            <event guid='3afa567e-f835-5c05-b55e-5da7505fc5e1' id='101250' code='ZMVVKZ'>
                <room>403</room>
                <title>&#20154;&#35201;&#27604;&#36554;&#20807; - &#20170;&#24180;&#19981;&#30475;&#26126;&#24180;&#21435;&#20659;&#34269;&#20013;&#24515;&#30475;&#30340; TDD &#39636;&#39511;&#24037;&#20316;&#22346;</title>
                <subtitle></subtitle>
                <type>Workshop</type>
                <date>2026-09-11T14:00:00+08:00</date>
                <start>14:00</start>
                <duration>03:00</duration>
                <abstract>TDD &#35498;&#36215;&#20358;&#22909;&#20687;&#26159;&#20491;&#24456;&#32769;&#30340;&#26481;&#35199;&#65292;&#22823;&#23478;&#37117;&#35258;&#24471;&#24456;&#32769;&#65292;&#22823;&#23478;&#37117;&#35258;&#24471;&#33258;&#24049;&#25026;&#65292;&#22823;&#23478;&#37117;&#35258;&#24471;&#29694;&#22312;&#22909;&#20687;&#19981;&#38656;&#35201;&#20102;&#65292;&#20294;&#20107;&#23526;&#26159;&#65306;&#22823;&#23478;&#20854;&#23526;&#37117;&#19981;&#30693;&#36947;&#20182;&#21040;&#24213;&#22312;&#24185;&#22043;&#12290;

&#12302;&#22312;&#36889;&#20491; AI &#39110;&#36895;&#30340;&#24180;&#20195;&#65292;&#24050;&#32147;&#19981;&#38656;&#35201; TDD &#20102;&#12303;&#36889;&#20491;&#31435;&#35542;&#20320;&#19968;&#23450;&#32893;&#36942;&#65292;&#20294;&#20320;&#20180;&#32048;&#24819;&#65292;&#22312;&#36889;&#20491; AI &#39110;&#36895;&#30340;&#24180;&#20195;&#65292;&#21029;&#20154;&#36319;&#20320;&#35498;&#19981;&#20877;&#38656;&#35201;&#30340;&#35912;&#27490;&#26159; TDD &#32780;&#24050;&#65311;&#35498;&#32769;&#23526;&#35441;&#65292;&#22914;&#26524;&#20170;&#22825;&#20844;&#21496;&#36319;&#20320;&#35498;&#19981;&#20877;&#38656;&#35201;&#20320;&#20102;&#65292;&#20320;&#20063;&#23601;&#40670;&#38957;&#35469;&#21516;&#33289;&#25163;&#21516;&#24847;&#65311;&#19981;&#26371;&#21543;&#65281;&#65311;

TDD &#30340;&#25805;&#20316;&#27794;&#26377;&#20160;&#40636;&#29305;&#21029;&#30340;&#65292;&#23601;&#21482;&#26159;&#22823;&#23478;&#29087;&#30693;&#30340;&#12302;&#32005;&#29128;&#12289;&#32160;&#29128;&#12289;&#37325;&#27083;&#12303;&#12290;&#23427;&#30340;&#20729;&#20540;&#22312;&#26044;&#33021;&#22816;&#24555;&#36895;&#26292;&#38706;&#20320;&#33258;&#36523;&#23565;&#26044;&#38656;&#27714;&#29702;&#35299;&#12289;&#26550;&#27083;&#35373;&#35336;&#12289;&#35373;&#35336;&#25104;&#26412;&#30340;&#25511;&#31649;&#30340;&#19981;&#36275;&#12290;&#36889;&#20214;&#20107;&#65292;&#36319; AI &#19981; AI &#27794;&#26377;&#38364;&#20418;&#65292;AI &#21482;&#26159;&#35731;&#21839;&#38988;&#26292;&#38706;&#24471;&#26356;&#24555;&#32780;&#24050;&#12290;

&#30495;&#27491;&#30340;&#21839;&#38988;&#22312;&#65292;&#30070;&#21839;&#38988;&#26292;&#38706;&#20986;&#20358;&#25850;&#22312;&#20320;&#30524;&#21069;&#65292;&#19981;&#35201;&#35498;&#33021;&#19981;&#33021;&#35299;&#20102;&#65292;&#30475;&#19981;&#30475;&#24471;&#20986;&#20358;&#20063;&#35377;&#25165;&#26159;&#25105;&#20497;&#30495;&#27491;&#30340;&#29942;&#38968;&#12290;

&#22312; AI &#39110;&#36895;&#30340;&#24180;&#20195;&#65292;&#23531;&#31243;&#24335;&#36996;&#38656;&#35201;&#21966;&#65311;&#26550;&#27083;&#36996;&#38656;&#35201;&#21966;&#65311;DDD &#36996;&#38656;&#35201;&#21966;&#65311;&#31243;&#24335;&#26131;&#35712;&#26131;&#25913;&#24615;&#36996;&#38656;&#35201;&#21966;&#65311;

&#20063;&#35377;&#21040;&#26368;&#24460;&#21487;&#20197;&#19968;&#21477;&#35441;&#32317;&#32080;&#65306;&#12302;&#20154;&#35201;&#27604;&#36554;&#20807;&#12303;&#12290;

&#22312;&#36889;&#22580;&#24037;&#20316;&#22346;&#20013;&#65292;&#33287;&#26371;&#32773;&#23559;&#33287;&#35611;&#32773;&#32068;&#25104; Pair&#65292;&#25105;&#20497;&#23559;&#19968;&#36215;&#29992; TDD &#30340;&#26041;&#24335;&#65292;&#24118;&#20986;&#24478;&#20197;&#21069;&#21040;&#29694;&#22312;&#20320;&#21487;&#33021;&#24819;&#37117;&#27794;&#24819;&#36942;&#30340;&#35373;&#35336;&#21839;&#38988;&#12290;&#26356;&#26834;&#30340;&#26159;&#65292;&#20320;&#19981;&#29992;&#24118;&#38651;&#33126;&#65281;&#35731;&#25105;&#20358;&#30070;&#20320;&#30340; Driver&#65292;&#19968;&#36215;&#20358;&#39636;&#39511;&#65292;&#22312; TDD + Pair Programming &#30340;&#36942;&#31243;&#20013;&#65292;&#20840;&#31243;&#29992;&#21147;&#24605;&#32771;&#26550;&#27083;&#33287;&#35373;&#35336;&#21839;&#38988;&#26159;&#38263;&#20160;&#40636;&#27171;&#23376;&#12290;</abstract>
                <slug>jcconf-2026-101250-tdd</slug>
                <track>403</track>
                
                <persons>
                    <person id='100478'>Kuma Syu</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>true</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/jcconf-2026/talk/ZMVVKZ/</url>
                <feedback_url>https://pretalx.com/jcconf-2026/talk/ZMVVKZ/feedback/</feedback_url>
            </event>
            
        </room>
        
    </day>
    
</schedule>
