<?xml version="1.0" encoding="iso-8859-1" ?>
<rss version="2.0">
    <channel>
        <title>Jenkov.com - News</title>
        <link>https://jenkov.com/rss.xml</link>
        <description>News from Jenkov.com about new tech tutorials, videos, products etc.</description>
        <language>en</language>

        <item>
            <title>Scoped access in Java</title>
            <link>https://jenkov.com/tutorials/java/scoped-access-access-scoping.html</link>
            <description>
                I have published a tutorial about scoped access in Java.
                There is a video version of the tutorial too - linked from the textual version of the tutorial.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/java/scoped-access-access-scoping.html</guid>
            <pubDate>2025.11.01</pubDate>
        </item>

        <item>
            <title>Method Chaining in Java</title>
            <link>https://jenkov.com/tutorials/java/method-chaining.html</link>
            <description>
                I have published a tutorial about method chaining in Java.
                There is a video version of the tutorial too - linked from the textual version of the tutorial.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/java/method-chaining.html</guid>
            <pubDate>2025.11.01</pubDate>
        </item>

        <item>
            <title>Java ConcurrentMap tutorial - updated</title>
            <link>https://jenkov.com/tutorials/java-util-concurrent/concurrentmap.html</link>
            <description>
                I have udpated my Java ConcurrentMap tutorial - and added a video version of the tutorial.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/java-util-concurrent/concurrentmap.html</guid>
            <pubDate>2024.11.28</pubDate>
        </item>

        <item>
            <title>What is new in Java 23</title>
            <link>https://jenkov.com/tutorials/java/index.html</link>
            <description>
                I have updated my Java tutorial introduction to list what is new in Java 23. The list of new features now lists all the major features in each release, back to Java 7
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/java/index.html</guid>
            <pubDate>2024.11.21</pubDate>
        </item>

        <item>
            <title>Help Your Co-developers Grow - By Meeting Them Where They Are</title>
            <link>https://www.youtube.com/watch?v=EpEbT5bYNb4</link>
            <description>I have published a short video about helping your co-developers grow - by meeting them where they are and helping them grow from there.
                This advice may sound benign, but I have seen how well it works when done well, and I have also seen how poorly
                it works when developers ignore this advice, and scorn their co-developers for not having the "sufficient" knowledge level.
            </description>
            <guid isPermaLink="true">https://www.youtube.com/watch?v=EpEbT5bYNb4</guid>
            <pubDate>2024.09.14</pubDate>
        </item>

        <item>
            <title>Java HttpClient - Updated</title>
            <link>https://jenkov.com/tutorials/java-networking/httpclient.html</link>
            <description>I have updated my Java HttpClient tutorial to also show how to send an HTTP POST request to a web server.</description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/java-networking/httpclient.html</guid>
            <pubDate>2024.08.18</pubDate>
        </item>

        <item>
            <title>P2P Networks Book Update</title>
            <link>https://leanpub.com/p2p-networks</link>
            <description>I have updated my book about P2P Networks with a short chapter about the Kademlia P2P topology, and a few more details about Chord. More to come in the future.</description>
            <guid isPermaLink="true">https://leanpub.com/p2p-networks</guid>
            <pubDate>2024.08.14</pubDate>
        </item>

        <item>
            <title>Compositional Software Design</title>
            <link>https://jenkov.com/tutorials/software-design/compositional-software-design.html</link>
            <description>I have finally "figured out" the core principles of what I call Compositional Software Design. I have published a tutorial explaining these core principles.There is still more to say about Compositional Software Design than what is currently in this tutorial - but there is enough to understand the central ideas. More will be added in the future, but will probably mostly be more nuances and details around the core principles.</description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/software-design/compositional-software-design.html</guid>
            <pubDate>2024.08.07</pubDate>
        </item>

        <item>
            <title>Daemon Threads in java</title>
            <link>https://jenkov.com/tutorials/java-concurrency/creating-and-starting-threads.html</link>
            <description>I have just updated my tutorial about creating threads in Java, so it now also explains how to create Daemon threads.</description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/java-concurrency/creating-and-starting-threads.html</guid>
            <pubDate>2024.08.06</pubDate>
        </item>

        <item>
            <title>Designing for Scalability vs. Performance</title>
            <link>https://www.youtube.com/watch?v=IDAf1D0HIOg</link>
            <description>I have made a short video about the difference between designing for scalability or performance. In other words, should you solve all capacity problems by throwing hardware at the problem? Or should you try to utilize the hardware you already have, better?</description>
            <guid isPermaLink="true">https://www.youtube.com/watch?v=IDAf1D0HIOg</guid>
            <pubDate>2024.08.05</pubDate>
        </item>

        <item>
            <title>HTML5 Canvas : Images - Fixed</title>
            <link>https://jenkov.com/tutorials/html5-canvas/images.html</link>
            <description>I have fixed my HTML5 Canvas : Images tutorial - so the examples are actually drawn.</description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/html5-canvas/images.html</guid>
            <pubDate>2024.08.03</pubDate>
        </item>

        <item>
            <title>Java Generics - Updated</title>
            <link>https://jenkov.com/tutorials/java-generics/index.html</link>
            <description>I have updated my Java Generics introduction just now. Java Generics enables you to type safely create classes that can work on multiple different types.</description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/java-generics/index.html</guid>
            <pubDate>2024.08.03</pubDate>
        </item>

        <item>
            <title>HTML5 Canvas - Rectangles - Updated</title>
            <link>https://jenkov.com/tutorials/html5-canvas/rectangles.html</link>
            <description>I have just fixed a small bug in the code examples in my HTML5 Canvas Rectangles tutorial - about how to draw rectangles on an HTML5 Canvas.</description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/html5-canvas/rectangles.html</guid>
            <pubDate>2024.08.01</pubDate>
        </item>

        <item>
            <title>Python Classes</title>
            <link>https://jenkov.com/tutorials/python/python-classes.html</link>
            <description>I have just published a short tutorial on Python classes. </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/python/python-classes.html</guid>
            <pubDate>2024.07.30</pubDate>
        </item>

        <item>
            <title>Java Generics Tutorial Video</title>
            <link>https://www.youtube.com/watch?v=CKWw7J5MsyY&amp;list=PLL8woMHwr36GYaIsv6STX864waOm61gMt&amp;index=11</link>
            <description>I have just published a video about Java Generics</description>
            <guid isPermaLink="true">https://www.youtube.com/watch?v=CKWw7J5MsyY&amp;list=PLL8woMHwr36GYaIsv6STX864waOm61gMt&amp;index=11</guid>
            <pubDate>2024.07.29</pubDate>
        </item>

        <item>
            <title>Java HttpClient</title>
            <link>https://jenkov.com/tutorials/java-networking/httpclient.html</link>
            <description>The Java HttpClient was added in Java 11 and provides an HTTP 1.1 and 2.0 client built into the Java core libraries. In this Java HttpClient tutorial I explain the basics of how to use the HttpClient.</description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/java-networking/httpclient.html</guid>
            <pubDate>2024.07.13</pubDate>
        </item>

        <item>
            <title>Java 21 and 22 Features</title>
            <link>https://jenkov.com/tutorials/java/searchIndex.html</link>
            <description>I have updated my Java introduction to list the major new features of Java 21 and 22. The page now lists all major features all the way back to Java 7.</description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/java/searchIndex.html</guid>
            <pubDate>2024.07.07</pubDate>
        </item>

        <item>
            <title>Java Generic Methods - Updated</title>
            <link>https://jenkov.com/tutorials/java-generics/methods.html</link>
            <description>I have clarified the explanations in my Java Generic Methods tutorial - so it is easier to understand what you can do.</description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/java-generics/methods.html</guid>
            <pubDate>2024.07.06</pubDate>
        </item>

        <item>
            <title>Search Function on Jenkov.com</title>
            <link>https://jenkov.com</link>
            <description>I have added a search function to jenkov.com - after many requests to do so. It works well enough for you to be able to find most major topics on jenkov.com - and I keep improving it so you can find more and more. Try it out!</description>
            <guid isPermaLink="true">https://jenkov.com</guid>
            <pubDate>2024.07.05</pubDate>
        </item>

        <item>
            <title>P2P Networks Book - Available</title>
            <link>https://leanpub.com/p2p-networks</link>
            <description>My book about P2P Networks is in progress, and is available on LeanPub. It has actually been available a while now - I just forgot to announce it. Payment is optional.</description>
            <guid isPermaLink="true">https://leanpub.com/p2p-networks</guid>
            <pubDate>2024.07.02</pubDate>
        </item>

        <item>
            <title>P2P Networks Introduction - Updated</title>
            <link>https://jenkov.com/tutorials/p2p/searchIndex.html</link>
            <description>I have updated my P2P networks introduction to give a better overview of the core concepts and ideas.</description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/p2p/searchIndex.html</guid>
            <pubDate>2024.05.20</pubDate>
        </item>

        <item>
            <title>Scalability vs. Performance?</title>
            <link>https://jenkov.com/tutorials/dev-essentials/software-performance-optimization-principles.html</link>
            <description>I have updated my Performance Optimization Principles tutorial to include a section discussing the difference between designing for scalability and performance - and which of the two approaches I prefer.</description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/dev-essentials/software-performance-optimization-principles.html</guid>
            <pubDate>2024.05.13</pubDate>
        </item>

        <item>
            <title>Java Ternary Operator Tutorial - updated</title>
            <link>https://jenkov.com/tutorials/java/ternary-operator.html</link>
            <description>The Java ternary operator lets you express conditional value assignment more concisely than by using if-statements. I have updated my Java ternary operator tutorial to also show how to use the ternary operator as a type check.</description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/java/ternary-operator.html</guid>
            <pubDate>2024.05.12</pubDate>
        </item>

        <item>
            <title>Python while Loop Tutorial</title>
            <link>https://jenkov.com/tutorials/python/python-while.html</link>
            <description>I have published a Python while loop tutorial. While loops enable you to repeat a block of code as long as a certain condition is true.</description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/python/python-while.html</guid>
            <pubDate>2024.05.09</pubDate>
        </item>

        <item>
            <title>Java ForkJoinPool Tutorial Updated</title>
            <link>https://jenkov.com/tutorials/java-util-concurrent/java-fork-and-join-forkjoinpool.html</link>
            <description>I have updated my Java ForkJoinPool tutorial with simpler code examples, and a link to the Java ForkJoinPool video tutorial.</description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/java-util-concurrent/java-fork-and-join-forkjoinpool.html</guid>
            <pubDate>2024.05.07</pubDate>
        </item>

        <item>
            <title>Java ForkJoinPool Video</title>
            <link>https://www.youtube.com/watch?v=aiwuJQt7YJU&amp;list=PLL8woMHwr36EDxjUoCzboZjedsnhLP1j4&amp;searchIndex=27</link>
            <description>I've published a video version of my Java ForkJoinPool tutorial. The Java ForkJoinPool makes it easier to break down big tasks into smaller tasks which can be executed in parallel. </description>
            <guid isPermaLink="true">https://www.youtube.com/watch?v=aiwuJQt7YJU&amp;list=PLL8woMHwr36EDxjUoCzboZjedsnhLP1j4&amp;searchIndex=27</guid>
            <pubDate>2024.05.06</pubDate>
        </item>

        <item>
            <title>Python for Loop</title>
            <link>https://jenkov.com/tutorials/python/python-for.html</link>
            <description>I've published a short tutorial on the Python for loop which is used to iterate sequences of elements such as lists, sets, tuples, dictionaries, ranges etc. </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/python/python-for.html</guid>
            <pubDate>2024.04.17</pubDate>
        </item>

        <item>
            <title>Python if</title>
            <link>https://jenkov.com/tutorials/python/python-if.html</link>
            <description>I've published a short tutorial on the Python if instruction which is used to execute one or more instructions if a certain condition is met. </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/python/python-if.html</guid>
            <pubDate>2024.04.17</pubDate>
        </item>

        <item>
            <title>Python Data Types</title>
            <link>https://jenkov.com/tutorials/python/python-data-types.html</link>
            <description>I've published a short tutorial on the core Python data types such as boolean, numeric, string, list, tuple, dictionary etc. </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/python/python-data-types.html</guid>
            <pubDate>2024.04.09</pubDate>
        </item>

        <item>
            <title>Python Variables</title>
            <link>https://jenkov.com/tutorials/python/python-variables.html</link>
            <description>I've published a short tutorial on the Python variables - about how to declare, read and set their values.</description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/python/python-variables.html</guid>
            <pubDate>2024.04.09</pubDate>
        </item>

        <item>
            <title>P2P Networks Introduction - Video</title>
            <link>https://www.youtube.com/watch?v=Vw9ynzuGNSw&amp;list=PLL8woMHwr36F-1h7BE92ynHHOE3zebGpA&amp;searchIndex=1</link>
            <description>I have published a P2P Networks Introduction video - covering some of the things that have happened since my first video about P2P networks 12 years ago.
            This includes different P2P topologies among other things - including my own Polymorph Polyring P2P topology.
            </description>
            <guid isPermaLink="true">https://www.youtube.com/watch?v=Vw9ynzuGNSw&amp;list=PLL8woMHwr36F-1h7BE92ynHHOE3zebGpA&amp;searchIndex=1</guid>
            <pubDate>2024.04.02</pubDate>
        </item>

        <item>
            <title>Polymorph Data Language</title>
            <link>https://jenkov.com/tutorials/polymorph-data/polymorph-data-language.html</link>
            <description>Polymorph Data Language is my own alternative to JSON, YAML, XML, CSV etc. It has most of their features + several new features combined into a single data language - having all the features I have alwways wanted a data language to have.</description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/polymorph-data/polymorph-data-language.html</guid>
            <pubDate>2024.02.17</pubDate>
        </item>

        <item>
            <title>Java Concurrency Introduction - Updated</title>
            <link>https://jenkov.com/tutorials/java-concurrency/searchIndex.html</link>
            <description>Java gets new concurrency and multithreading constructs added regularly. Latest additions were Java Virtual Threads and Structured Concurrency. I will keep updating this tutorial accordingly.</description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/java-concurrency/searchIndex.html</guid>
            <pubDate>2024.02.17</pubDate>
        </item>

        <item>
            <title>Jackson ObjectMapper - Updated</title>
            <link>https://jenkov.com/tutorials/java-json/jackson-objectmapper.html</link>
            <description>Smaller updates to my tutorial about the Jackson ObjectMapper - which can parse JSON into Java objects and vice versa.</description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/java-json/jackson-objectmapper.html</guid>
            <pubDate>2024.02.01</pubDate>
        </item>

        <item>
            <title>Java Reflection - Finding Getters and Setters of a Class at Runtime</title>
            <link>https://jenkov.com/tutorials/java-reflection/getters-setters.html</link>
            <description>
                It is possible to detect getters and setters of a Java class at runtime via Java Reflection.
                There are no direct methods for finding getters and setters built-in to the Java Reflection API,
                but you can still use it to detect getters and setters. I have updated this tutorial to be a bit
                more clear about how you do that!
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/java-reflection/getters-setters.html</guid>
            <pubDate>2024.01.18</pubDate>
        </item>

        <item>
            <title>Single Process Architecture</title>
            <link>https://jenkov.com/tutorials/software-architecture/single-process-architecture.html</link>
            <description>
                I have updated my tutorial explaining single process architecture a bit - to be more clear about
                whether network communication makes an app not have a single process architecture or not.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/software-architecture/single-process-architecture.html</guid>
            <pubDate>2024.01.17</pubDate>
        </item>

        <item>
            <title>Conscious Software Design - Video</title>
            <link>https://www.youtube.com/watch?v=RrXZQLo1EOw&amp;list=PLL8woMHwr36HWMaOTIiWNf_fYYkZCHPxo&amp;searchIndex=4</link>
            <description>
                I have made a video explanation of my software design philsophy Conscious Software Design.
                In this video I go into more detail about what exactly this philosophy is all about.
                Hint: It's more about how to think about software design than about concrete techniques.
            </description>
            <guid isPermaLink="true">https://www.youtube.com/watch?v=RrXZQLo1EOw&amp;list=PLL8woMHwr36HWMaOTIiWNf_fYYkZCHPxo&amp;searchIndex=4</guid>
            <pubDate>2024.01.11</pubDate>
        </item>

        <item>
            <title>Java Microbenchmark Harness - Tutorial</title>
            <link>https://jenkov.com/tutorials/java-performance/jmh.html</link>
            <description>
                If you are doing performance optimization in Java, sometimes you will need to write some "microbenchmarks"
                that measure how fast a given implementation runs. Doing that so that the benchmarks actually measures
                the implementation fairly - is not easy! The Java Microbenchmark Harness can help you out here!
                This Java Microbenchmark Harness tutorial explains how to use it, and how to write micro benchmarks.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/java-performance/jmh.html</guid>
            <pubDate>2023.11.28</pubDate>
        </item>

        <item>
            <title>Conscious Software Design - Consciousness Levels</title>
            <link>https://jenkov.com/tutorials/software-design/conscious-software-design.html</link>
            <description>
                I have updated my tutorial about conscious software design to include a list of 4 different conscioussness
                levels I believe developers and architects tend to operate on: Oblivious, unconscious, subconscious and conscious.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/software-design/conscious-software-design.html</guid>
            <pubDate>2023.11.01</pubDate>
        </item>

        <item>
            <title>Conscious Software Design</title>
            <link>https://jenkov.com/tutorials/software-design/conscious-software-design.html</link>
            <description>
                Here are what I currently believe to be the core principles of what I call "Conscious Software Design".
                More details will be added over time, but I believe these three principles to be what is most important
                in this philosophy.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/software-design/conscious-software-design.html</guid>
            <pubDate>2023.10.15</pubDate>
        </item>

        <item>
            <title>The SOLID Principles</title>
            <link>https://jenkov.com/tutorials/software-design/solid.html</link>
            <description>
                Here are my notes about the SOLID design principles so far.
                I will probably be adding some comments to them over time, as I learn more about software design - but here is the first version.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/software-design/solid.html</guid>
            <pubDate>2023.09.30</pubDate>
        </item>

        <item>
            <title>Structural Software Design</title>
            <link>https://jenkov.com/tutorials/software-design/structural-software-design.html</link>
            <description>
                I have just published a short tutorial where I lay out the basics of structural software design.
                There is a video version of the tutorial too - linked from inside the tutorial.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/software-design/structural-software-design.html</guid>
            <pubDate>2023.08.10</pubDate>
        </item>

        <item>
            <title>What is new in Java 20?</title>
            <link>https://jenkov.com/tutorials/java/searchIndex.html</link>
            <description>
                I have updated my Java introduction to list the new features in Java 20.
                This Java introduction now lists all the big new features in Java, all the way back to Java 7.
                If you are not sure if you missed a feature, you can check this list.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/java/searchIndex.html</guid>
            <pubDate>2023.07.19</pubDate>
        </item>

        <item>
            <title>Software Design Goals</title>
            <link>https://jenkov.com/tutorials/software-design/software-design-goals.html</link>
            <description>
                New article about software design goals - the commonly occurring reasons behind
                why we make the design decisions we do. There is both a textual and a video version
                of the article. There is a link to the video from within the article.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/software-design/software-design-goals.html</guid>
            <pubDate>2023.07.17</pubDate>
        </item>
        <item>
            <title>Software Design Introduction</title>
            <link>https://jenkov.com/tutorials/software-design/searchIndex.html</link>
            <description>
                I have finished my software design introduction - laying out what I believe to be
                the fundamental concepts of software design. More tutorials with more details will come in the future.
                There is a textual and video version.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/software-design/searchIndex.html</guid>
            <pubDate>2023.07.04</pubDate>
        </item>
        <item>
            <title>Java volatile Tutorial - Corrected</title>
            <link>https://jenkov.com/tutorials/java-concurrency/volatile.html</link>
            <description>
                I have corrected my Java volatile tutorial - so that it no longer talks about the "CPU cache" - but "CPU registers" instead.
                Both text and diagrams have been fixed ?
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/java-concurrency/volatile.html</guid>
            <pubDate>2023.06.28</pubDate>
        </item>
        <item>
            <title>Undertow Java Web Server Introduction</title>
            <link>https://jenkov.com/tutorials/undertow/searchIndex.html</link>
            <description>
                I have published a short introduction to the Undertow Java web server. Undertow is the web server used
                internally in JBoss Wildfly. Undertow is a minmalistic web server which can be embedded into your own
                Java applications. You can package your project as a single fat jar, from as little as 5-6 MB .
                Undertow has great performance, offers both a non-blocking (single-threaded) and a blocking IO model,
                and is quite easy to use. Check it out! ?
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/undertow/searchIndex.html</guid>
            <pubDate>2023.05.16</pubDate>
        </item>
        <item>
            <title>The Compound Performance Penalty Problem - Video Edition</title>
            <link>https://www.youtube.com/watch?v=cmNg4TCrlmY&amp;list=PLL8woMHwr36EAeL4RIj4MAP27MXenwbDx&amp;searchIndex=2</link>
            <description>
                The Compound Performance Penalty Problem - about how using more and more third party software in your
                apps will often come with a performance penalty. With many third party libs - that penalty compounds.
            </description>
            <guid isPermaLink="true">https://www.youtube.com/watch?v=cmNg4TCrlmY&amp;list=PLL8woMHwr36EAeL4RIj4MAP27MXenwbDx&amp;searchIndex=2</guid>
            <pubDate>2023.03.21</pubDate>
        </item>
        <item>
            <title>ExecutorService Using Java Virtual Threads Internally - Video Edition</title>
            <link>https://www.youtube.com/watch?v=N2sskKGnCqc&amp;list=PLL8woMHwr36EDxjUoCzboZjedsnhLP1j4&amp;searchIndex=16</link>
            <description>
                I have created a video showing how to create a Java ExecutorService that uses virtual threads internally.
            </description>
            <guid isPermaLink="true">https://www.youtube.com/watch?v=N2sskKGnCqc&amp;list=PLL8woMHwr36EDxjUoCzboZjedsnhLP1j4&amp;searchIndex=16</guid>
            <pubDate>2023.02.14</pubDate>
        </item>
        <item>
            <title>ExecutorService Using Java Virtual Threads Internally</title>
            <link>https://jenkov.com/tutorials/java-util-concurrent/executorservice.html</link>
            <description>
                I have updated my Java ExecutorService tutorial to show how to create an ExecutorService that uses
                virtual threads internally.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/java-util-concurrent/executorservice.html</guid>
            <pubDate>2023.02.05</pubDate>
        </item>
        <item>
            <title>Java Virtual Threads - Video Edition</title>
            <link>https://www.youtube.com/watch?v=kirhhcFAGB4&amp;list=PLL8woMHwr36EDxjUoCzboZjedsnhLP1j4&amp;searchIndex=4</link>
            <description>
                I have published a video version of my Java Virtual Threads tutorial.
            </description>
            <guid isPermaLink="true">https://www.youtube.com/watch?v=kirhhcFAGB4&amp;list=PLL8woMHwr36EDxjUoCzboZjedsnhLP1j4&amp;searchIndex=4</guid>
            <pubDate>2023.01.02</pubDate>
        </item>
        <item>
            <title>Java Virtual Threads</title>
            <link>https://jenkov.com/tutorials/java-concurrency/java-virtual-threads.html</link>
            <description>
                I have published my first notes on Java virtual threads. Enough to get you started playing with them.
                More will come later!
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/java-concurrency/java-virtual-threads.html</guid>
            <pubDate>2022.12.15</pubDate>
        </item>
        <item>
            <title>Programming Paradigms</title>
            <link>https://jenkov.com/tutorials/dev-essentials/programming-paradigms.html</link>
            <description>
                I have collected a list of the most common programming paradigms I have encountered in my 20+ years
                of professional software development. This list contains paradigms such as structured programming,
                functional programming, object oriented programming, data oriented programming etc.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/dev-essentials/programming-paradigms.html</guid>
            <pubDate>2022.11.24</pubDate>
        </item>
        <item>
            <title>How to Choose What Programming Languages to Learn?</title>
            <link>https://jenkov.com/tutorials/dev-essentials/choosing-your-programming-languages.html</link>
            <description>
                With all the programming languages available out there today, it can be hard to choose which
                programming languages to learn! Therefore I have published my own criteria for choosing
                what programming languages I choose to learn myself.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/dev-essentials/choosing-your-programming-languages.html</guid>
            <pubDate>2022.11.15</pubDate>
        </item>
        <item>
            <title>New Features in Java 19</title>
            <link>https://jenkov.com/tutorials/java/searchIndex.html</link>
            <description>
                I have just updated my Java introduction to list the new features in Java 19.
                The Java introduction now lists almost all the new features added in each
                new Java version, going back to Java 7. Do you know about them all?
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/java/searchIndex.html</guid>
            <pubDate>2022.11.12</pubDate>
        </item>
        <item>
            <title>Java Thread Signaling - Updated With Video</title>
            <link>https://jenkov.com/tutorials/java-concurrency/thread-signaling.html</link>
            <description>I have updated my Java Thread signaling tutorial, among other things
                with a video version of the tutorial.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/java-concurrency/thread-signaling.html</guid>
            <pubDate>2022.10.25</pubDate>
        </item>
        <item>
            <title>Evolutionary Software Development</title>
            <link>https://jenkov.com/tutorials/evolutionary-software-development/searchIndex.html</link>
            <description>Evolutionary software development is the term I am using for the development process I see many startups
                and also larger corporations actually use, even though they call it Scrum or Kanban on the surface.
                This article explains the three core principles of evolutionary software development.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/evolutionary-software-development/searchIndex.html</guid>
            <pubDate>2022.10.23</pubDate>
        </item>
        <item>
            <title>UFT-8 Tutorial Updated</title>
            <link>https://jenkov.com/tutorials/unicode/utf-8.html</link>
            <description>I have updated my UTF-8 tutorial to also show how to read and write UTF-8 in Java.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/unicode/utf-8.html</guid>
            <pubDate>2022.08.07</pubDate>
        </item>
        <item>
            <title>Unicode Tutorial Cleaned Up</title>
            <link>https://jenkov.com/tutorials/unicode/searchIndex.html</link>
            <description>I have cleaned up my Unicode tutorial so it is now easier to get an overview of Unicode.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/unicode/searchIndex.html</guid>
            <pubDate>2022.08.06</pubDate>
        </item>
        <item>
            <title>AWS CloudFormation Parameters</title>
            <link>https://jenkov.com/tutorials/aws-cloudformation/parameters.html</link>
            <description>AWS CloudFormation templates can have parameters which can be filled in at the time the CloudFormation template is deployed,
                making it possible to use the same AWS CloudFormation template to create different (but similar) stacks.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/aws-cloudformation/parameters.html</guid>
            <pubDate>2022.06.22</pubDate>
        </item>
        <item>
            <title>AWS CloudFormation Introduction</title>
            <link>https://jenkov.com/tutorials/aws-cloudformation/searchIndex.html</link>
            <description>I have started writing about AWS CloudFormation which is one of the AWS IaC (Infrastructure as Code) tools made available for free by AWS.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/aws-cloudformation/searchIndex.html</guid>
            <pubDate>2022.06.22</pubDate>
        </item>
        <item>
            <title>Java Generics - Updated</title>
            <link>https://jenkov.com/tutorials/java-generics/searchIndex.html</link>
            <description>I have started updating my Java Generics tutorial
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/java-generics/searchIndex.html</guid>
            <pubDate>2022.05.17</pubDate>
        </item>
        <item>
            <title>AWS Core Technologies</title>
            <link>https://jenkov.com/tutorials/aws-introduction/aws-core-technologies.html</link>
            <description>With hundreds of AWS services and technologies available, it can be hard to figure out which
                technologies to learn first, and which can wait. Therefore I have published a list of what I consider
                core AWS technologies which I believe it is good to know early in your AWS journey. These technologies
                are often used, so learning them will be beneficial.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/aws-introduction/aws-core-technologies.html</guid>
            <pubDate>2022.05.05</pubDate>
        </item>
        <item>
            <title>AWS Introduction</title>
            <link>https://jenkov.com/tutorials/aws-introduction/searchIndex.html</link>
            <description>If you are just beginning your AWS journey - figuring out which AWS services to learn first, and
                how to interact best with AWS can be a daunting task. Therefore I have published a short introduction to AWS
                which lists the bare essentials to guide you on this AWS journey.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/aws-introduction/searchIndex.html</guid>
            <pubDate>2022.05.05</pubDate>
        </item>
        <item>
            <title>Core Software Performance Optimization Principles</title>
            <link>https://jenkov.com/tutorials/dev-essentials/software-performance-optimization-principles.html</link>
            <description>This tutorial lists the core 9 + 1 software performance optimization principles I use when working with software performance optimization.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/dev-essentials/software-performance-optimization-principles.html</guid>
            <pubDate>2022.05.03</pubDate>
        </item>
        <item>
            <title>Developer Learning Strategies</title>
            <link>https://jenkov.com/tutorials/dev-essentials/developer-learning-strategies.html</link>
            <description>As developer we have to learn a lot continuously. Learning can sometimes be frustrating.
                I have published an article explaining my developer learning strategies - for dealing with the
                times when learning is hard.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/dev-essentials/developer-learning-strategies.html</guid>
            <pubDate>2022.04.04</pubDate>
        </item>
        <item>
            <title>P2P Network Introduction Updated</title>
            <link>https://jenkov.com/tutorials/p2p/searchIndex.html</link>
            <description>I have updated my P2P network introduction with information about structured and unstructured
                P2P network topologies (such as Gnutella).
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/p2p/searchIndex.html</guid>
            <pubDate>2022.03.24</pubDate>
        </item>
        <item>
            <title>HTML5 Tutorial - Introduction Fixed</title>
            <link>https://jenkov.com/tutorials/html5-canvas/searchIndex.html</link>
            <description>
                I have fixed a small error in the introduction to the HTML5 Canvas - the powerful HTML5 element
                that enables you to draw free form graphics directly in the browser.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/html5-canvas/searchIndex.html</guid>
            <pubDate>2022.03.24</pubDate>
        </item>
        <item>
            <title>Essential Dev Skills</title>
            <link>https://jenkov.com/tutorials/dev-essentials/searchIndex.html</link>
            <description>I have made a list of skills / topics I believe most developers will benefit from
                having / knowing about to some extent at least.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/dev-essentials/searchIndex.html</guid>
            <pubDate>2022.03.23</pubDate>
        </item>
        <item>
            <title>What is new in Java 18?</title>
            <link>http://tutorials.jenkov.com/java/searchIndex.html#new-in-java-18</link>
            <description>I have updated the Java version / feature list to list what is new in Java 18.
            </description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/searchIndex.html#new-in-java-18</guid>
            <pubDate>2022.03.20</pubDate>
        </item>
        <item>
            <title>What is new in Java 17?</title>
            <link>http://tutorials.jenkov.com/java/searchIndex.html#new-in-java-17</link>
            <description>I have updated the Java version / feature list to list what is new in Java 17.
            </description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/searchIndex.html#new-in-java-17</guid>
            <pubDate>2022.03.19</pubDate>
        </item>
        <item>
            <title>What is new in Java 16?</title>
            <link>http://tutorials.jenkov.com/java/searchIndex.html#new-in-java-16</link>
            <description>I have updated the Java version / feature list to list what is new in Java 16.
            </description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/searchIndex.html#new-in-java-16</guid>
            <pubDate>2022.03.18</pubDate>
        </item>
        <item>
            <title>SVG Tutorials Moved</title>
            <link>https://jenkov.com/tutorials/svg/searchIndex.html</link>
            <description>I have moved my SVG tutorials from tutorials.jenkov.com to jenkov.com
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/svg/searchIndex.html</guid>
            <pubDate>2022.02.28</pubDate>
        </item>
        <item>
            <title>CSS Tutorials Moved</title>
            <link>https://jenkov.com/tutorials/css/searchIndex.html</link>
            <description>I have moved my CSS tutorials from tutorials.jenkov.com to jenkov.com
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/css/searchIndex.html</guid>
            <pubDate>2022.02.23</pubDate>
        </item>
        <item>
            <title>Maven Tutorials Moved</title>
            <link>https://jenkov.com/tutorials/maven/maven-tutorial.html</link>
            <description>I have moved my Maven tutorials from tutorials.jenkov.com to jenkov.com
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/maven/maven-tutorial.html</guid>
            <pubDate>2022.02.21</pubDate>
        </item>
        <item>
            <title>Peer-to-peer Tutorials Moved</title>
            <link>https://jenkov.com/tutorials/p2p/searchIndex.html</link>
            <description>I have moved my Peer-to-Peer (P2P) tutorials from tutorials.jenkov.com to jenkov.com
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/p2p/searchIndex.html</guid>
            <pubDate>2022.02.21</pubDate>
        </item>
        <item>
            <title>GraalVM JavaScript Interpreter</title>
            <link>https://jenkov.com/tutorials/graalvm/javascript.html</link>
            <description>GraalVM comes with a JavaScript interpreter which you can use to run JavaScript both from
                the command line and from inside your Java code. GraalVM also has Node.js + NPM compatible commands
                you can install - if you want or need that. In this tutorial I explain how to use the GraalVM
                JavaScript interpreter, and how to install the Node.JS + NPM commands.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/graalvm/javascript.html</guid>
            <pubDate>2022.02.10</pubDate>
        </item>
        <item>
            <title>Polymorph Introduction</title>
            <link>https://jenkov.com/tutorials/polymorph/searchIndex.html</link>
            <description>Polymorph is my own project within the smart, decentralized media space. The project is now
                concrete enough that I was able to write an introduction to what Polymorph is, and explain the bigger picture
                of what it will do and how it will work.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/polymorph/searchIndex.html</guid>
            <pubDate>2022.02.06</pubDate>
        </item>
        <item>
            <title>Decentralized Systems - Updated</title>
            <link>https://jenkov.com/tutorials/decentralized-systems/searchIndex.html</link>
            <description>I have updated the tutorial on decentralized systems to also list some of the
                most common benefits and challenges of decentralized systems.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/decentralized-systems/searchIndex.html</guid>
            <pubDate>2022.01.23</pubDate>
        </item>
        <item>
            <title>Decentralized Systems</title>
            <link>https://jenkov.com/tutorials/decentralized-systems/searchIndex.html</link>
            <description>I have published a short introduction to decentralized systems such as decentralized server systems
                like DHT (Distributed Hashtables), P2P networks, Blockchain systems etc.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/decentralized-systems/searchIndex.html</guid>
            <pubDate>2022.01.22</pubDate>
        </item>
        <item>
            <title>GraalVM Python Interpreter</title>
            <link>https://jenkov.com/tutorials/graalvm/python.html</link>
            <description>GraalVM has a Python interpreter you can install which enables you to run Python programs on
                GraalVM or execute Python from within your Java code. This short tutorial explains how to install the
                GraalVM Python interpreter - and how to run a Python program from the command line.
            </description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/graalvm/python.html</guid>
            <pubDate>2022.01.05</pubDate>
        </item>
        <item>
            <title>GraalVM Polyglot API</title>
            <link>https://jenkov.com/tutorials/graalvm/polyglot.html</link>
            <description>I have added 2 small examples of how to execute JavaScript from inside a Java app via the GraalVM Polyglot API.</description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/graalvm/polyglot.html</guid>
            <pubDate>2021.12.30</pubDate>
        </item>
        <item>
            <title>GraalVM Tutorial</title>
            <link>https://jenkov.com/tutorials/graalvm/searchIndex.html</link>
            <description>I have started writing a tutorial about GraalVM - the VM that can run Java, JavaScript, Python, Ruby, LLVM and Web Assembly in the same application.</description>
            <guid isPermaLink="true">https://jenkov.com/tutorials/graalvm/searchIndex.html</guid>
            <pubDate>2021.12.26</pubDate>
        </item>
        <item>
            <title>Blockchain Projects and Resources</title>
            <link>https://jenkov.com/blockchain/projects-and-resources.html</link>
            <description>I have started making a list of the most interesting and popular blockchain projects out there, to help beginners get started on their crypto journeys.</description>
            <guid isPermaLink="true">https://jenkov.com/blockchain/projects-and-resources.html</guid>
            <pubDate>2021.12.17</pubDate>
        </item>
        <item>
            <title>Blockchain Introduction</title>
            <link>https://jenkov.com/blockchain/searchIndex.html</link>
            <description>Blockchain technology is seeing an increase in use cases it can address, in addition to just crypto currency. Therefore I have started studying blockchain technology, and also started writing about it. So far I have published a short introduction to blockchain. More will follow in the future.</description>
            <guid isPermaLink="true">https://jenkov.com/blockchain/searchIndex.html</guid>
            <pubDate>2021.12.14</pubDate>
        </item>
        <item>
            <title>Thread Congestion</title>
            <link>http://tutorials.jenkov.com/java-concurrency/thread-congestion.html</link>
            <description>If multiple threads try to access the same, blocking data structure at the same time, often, this can lead to thread congestion, which may lead to performance degradation.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/thread-congestion.html</guid>
            <pubDate>2021.11.16</pubDate>
        </item>
        <item>
            <title>Single-threaded and Same-threaded Designs</title>
            <link>http://tutorials.jenkov.com/java-concurrency/same-threading.html</link>
            <description>Single-threaded and same-threaded designs can be very powerful if you understand how to design them properly. I have updated this tutorial with a video edition.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/same-threading.html</guid>
            <pubDate>2021.11.02</pubDate>
        </item>
        <item>
            <title>Polymorph P2P Network Algorithm</title>
            <link>http://tutorials.jenkov.com/p2p/polymorph.html</link>
            <description>The Polymorph P2P network algorithm is based on my own, new P2P polyring topology designed especially with media routing in mind. I believe it is better suited at media routing than Chord, Kademlia, Pastry and Taspestry.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/p2p/polymorph.html</guid>
            <pubDate>2021.08.04</pubDate>
        </item>
        <item>
            <title>Chord P2P Network Algorithm</title>
            <link>http://tutorials.jenkov.com/p2p/chord.html</link>
            <description>The Chord P2P network algorithm was one of the early P2P algorithms to appear. This Chord tutorial explains the core of the Chord P2P algorithm.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/p2p/chord.html</guid>
            <pubDate>2021.07.29</pubDate>
        </item>
        <item>
            <title>Java Annotations</title>
            <link>http://tutorials.jenkov.com/java/annotations.html</link>
            <description>I have updated my Java Annotations tutorial to also explain the built-in annotation @Contended.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/annotations.html</guid>
            <pubDate>2021.07.28</pubDate>
        </item>
        <item>
            <title>False Sharing in Java</title>
            <link>http://tutorials.jenkov.com/java-concurrency/false-sharing.html</link>
            <description>False sharing is a situation that can cause performance degradations when two or more threads write to different variables located within the same CPU cache line.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/false-sharing.html</guid>
            <pubDate>2021.07.21</pubDate>
        </item>
        <item>
            <title>CPU Cache Coherence in Java Concurrency</title>
            <link>http://tutorials.jenkov.com/java-concurrency/cache-coherence-in-java-concurrency.html</link>
            <description>In this short tutorial I correct my statements about how Java synchronized and volatile variables effect how thread visible variables are flushed to main RAM.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/cache-coherence-in-java-concurrency.html</guid>
            <pubDate>2021.06.29</pubDate>
        </item>
        <item>
            <title>Compare and Swap in Java</title>
            <link>http://tutorials.jenkov.com/java-concurrency/compare-and-swap.html</link>
            <description>Compare and swap functionality is an alternative to synchronized blocks in Java when designing high throughput, non-blocking concurrent algorithms in Java.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/compare-and-swap.html</guid>
            <pubDate>2021.06.16</pubDate>
        </item>
        <item>
            <title>Peer Findability and Message Routability</title>
            <link>http://tutorials.jenkov.com/p2p/peer-findability-and-message-routablity.html</link>
            <description>The peer findability and message routability challenges of P2P networks are typically addressed in similar ways. This tutorial covers common solutions to peer findability and message routability in peer-to-peer networks.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/p2p/peer-findability-and-message-routablity.html</guid>
            <pubDate>2021.06.03</pubDate>
        </item>
        <item>
            <title>Peer Addressability</title>
            <link>http://tutorials.jenkov.com/p2p/peer-addressability.html</link>
            <description>Peers in a peer-to-peer network need to be able to address each other uniquely. That it was peer addressability refers to. This tutorial explains how common P2P algorithms approaches peer addressability.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/p2p/peer-addressability.html</guid>
            <pubDate>2021.06.01</pubDate>
        </item>
        <item>
            <title>Peer Connectivity</title>
            <link>http://tutorials.jenkov.com/p2p/peer-connectivity.html</link>
            <description>Peer connectivity tutorial out! Explains a common solution to overcoming peers behind NAT and firewall - so all peers in a P2P network can communicate with each other.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/p2p/peer-connectivity.html</guid>
            <pubDate>2021.05.25</pubDate>
        </item>
        <item>
            <title>Peer-to-peer Networks - Update Started</title>
            <link>http://tutorials.jenkov.com/p2p/searchIndex.html</link>
            <description>A lot has happened in the world of Peer-to-Peer (P2P) networks since I wrote the first version of this tutorial - so I have started updating it. First step was updating the introduction.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/p2p/searchIndex.html</guid>
            <pubDate>2021.05.24</pubDate>
        </item>
        <item>
            <title>Single-threaded Concurrency</title>
            <link>http://tutorials.jenkov.com/java-concurrency/single-threaded-concurrency.html</link>
            <description>Single-threaded concurrency designs are an alternative to multithreaded concurrency designs which achieves many of the same benefits (task switching) without many of the multithreading problems (thread update visibility, race conditions etc.etc.).</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/single-threaded-concurrency.html</guid>
            <pubDate>2021.05.12</pubDate>
        </item>
        <item>
            <title>Java BlockingQueue</title>
            <link>http://tutorials.jenkov.com/java-util-concurrent/blockingqueue.html</link>
            <description>The Java BlockingQueue interface represents a queue which can block threads from inserting into a full queue, or block threads from dequeuing from an empty queue.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-util-concurrent/blockingqueue.html</guid>
            <pubDate>2021.03.22</pubDate>
        </item>
        <item>
            <title>Deadlock Prevention in Java</title>
            <link>http://tutorials.jenkov.com/java-concurrency/deadlock-prevention.html</link>
            <description>In this tutorial I explain 3 common methods for preventing deadlock occurring. I have also made a video version of this tutorial.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/deadlock-prevention.html</guid>
            <pubDate>2021.03.08</pubDate>
        </item>
        <item>
            <title>Deadlock in Java</title>
            <link>http://tutorials.jenkov.com/java-concurrency/deadlock.html</link>
            <description>Deadlock is when two or more threads end up blocked indefinitely waiting for each other to release resources they need to lock to do their job. I have updated the Deadlock tutorial.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/deadlock.html</guid>
            <pubDate>2021.02.11  </pubDate>
        </item>
        <item>
            <title>Java ExecutorService</title>
            <link>http://tutorials.jenkov.com/java-util-concurrent/executorservice.html</link>
            <description>The Java ExecutorService is a thread pool built into Java. I have update the Java ExecutorService tutorial, including added a new video version of this tutorial. </description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-util-concurrent/executorservice.html</guid>
            <pubDate>2021.01.25  </pubDate>
        </item>
        <item>
            <title>JavaFX TableView - Editable Cells</title>
            <link>http://tutorials.jenkov.com/javafx/tableview.html</link>
            <description>I have updated my JavaFX TableView tutorial to explain how to make table cells editable. </description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/tableview.html</guid>
            <pubDate>2021.01.07  </pubDate>
        </item>
        <item>
            <title>Java Lock</title>
            <link>http://tutorials.jenkov.com/java-util-concurrent/lock.html</link>
            <description>The Java Lock interface represents an lock which can make sure only one thread can lock it at a time - similarly to how a Java synchronized blocks works - only more flexible. </description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-util-concurrent/lock.html</guid>
            <pubDate>2020.12.16  </pubDate>
        </item>
        <item>
            <title>Thread Pools in Java</title>
            <link>http://tutorials.jenkov.com/java-concurrency/thread-pools.html</link>
            <description>Thread pools are an alternative to creative one thread per task to execute. In this thread pool tutorial I explain how thread pools work, as well as how to implement your own in Java. I have also added a video version of this tutorial. </description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/thread-pools.html</guid>
            <pubDate>2020.11.24  </pubDate>
        </item>
        <item>
            <title>JavaFX Transformations</title>
            <link>http://tutorials.jenkov.com/javafx/transformation.html</link>
            <description>You can apply transformations such as rotation, translation and scaling to all JavaFX controls. This JavaFX transformations tutorial explains how JavaFX transformations work.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/transformation.html</guid>
            <pubDate>2020.11.23  </pubDate>
        </item>
        <item>
            <title>JavaFX Button</title>
            <link>http://tutorials.jenkov.com/javafx/button.html</link>
            <description>The JavaFX Button class provides a button that users of your JavaFX app can click on. I have updated my JavaFX Button tutorial to explain how to use a Button from within JavaFX FXML.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/button.html</guid>
            <pubDate>2020.11.19  </pubDate>
        </item>
        <item>
            <title>Concurrency vs Parallelism</title>
            <link>http://tutorials.jenkov.com/java-concurrency/concurrency-vs-parallelism.html</link>
            <description>Concurrency and parallelism are two similar, yet different concepts. I have rewritten this tutorial to better explain the difference between concurrency and parallelism - plus I have added a video version of this tutorial.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/concurrency-vs-parallelism.html</guid>
            <pubDate>2020.11.17  </pubDate>
        </item>
        <item>
            <title>JavaFX Fonts</title>
            <link>http://tutorials.jenkov.com/javafx/fonts.html</link>
            <description>The JavaFX Font class enables you to load and use different fonts in your JavaFX applications.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/fonts.html</guid>
            <pubDate>2020.11.14  </pubDate>
        </item>
        <item>
            <title>Java Exception Handling</title>
            <link>http://tutorials.jenkov.com/java-exception-handling/searchIndex.html</link>
            <description>I have updated my introduction to Java Exception Handling - the way you handle errors and exceptions in Java.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-exception-handling/searchIndex.html</guid>
            <pubDate>2020.11.03  </pubDate>
        </item>
        <item>
            <title>Race Conditions in Java</title>
            <link>http://tutorials.jenkov.com/java-concurrency/race-conditions-and-critical-sections.html</link>
            <description>I have updated the Race Conditions in Java tutorial, with a video version among other changes.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/race-conditions-and-critical-sections.html</guid>
            <pubDate>2020.10.27  </pubDate>
        </item>
        <item>
            <title>JavaFX Pane</title>
            <link>http://tutorials.jenkov.com/javafx/pane.html</link>
            <description>The JavaFX Pane class is a simple layout container which lays out its child components at exactly their layoutX and layoutY property values.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/pane.html</guid>
            <pubDate>2020.10.19  </pubDate>
        </item>
        <item>
            <title>JavaFX Region</title>
            <link>http://tutorials.jenkov.com/javafx/region.html</link>
            <description>The JavaFX Region class is a base class for several JavaFX layout container classes like Pane, HBox and VBox. The JavaFX Region properties are thus shared by these subclasses.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/region.html</guid>
            <pubDate>2020.10.19  </pubDate>
        </item>
        <item>
            <title>JavaFX TableView</title>
            <link>http://tutorials.jenkov.com/javafx/tableview.html</link>
            <description>The JavaFX TableView is able to display tabular data in a grid-like table. I have updated this JavaFX TableView tutorial to also explain how to use Java Map instances as data items in a TableView.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/tableview.html</guid>
            <pubDate>2020.10.12  </pubDate>
        </item>
        <item>
            <title>Veteran, Senior and Junior Developers</title>
            <link>http://tutorials.jenkov.com/software-as-career/veteran-senior-and-junior-developers.html</link>
            <description>In this new video I explain why I believe there is a developer experience level beyond senior developer, which I refer to as veteran developer.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/software-as-career/veteran-senior-and-junior-developers.html</guid>
            <pubDate>2020.10.12  </pubDate>
        </item>
        <item>
            <title>Maven Memory Limits</title>
            <link>http://tutorials.jenkov.com/maven/maven-memory-limits.html</link>
            <description>You can set the memory limits of Maven when building your Maven projects. This Maven memory limits tutorial explains how.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/maven/maven-memory-limits.html</guid>
            <pubDate>2020.10.06  </pubDate>
        </item>
        <item>
            <title>Maven Surefire</title>
            <link>http://tutorials.jenkov.com/maven/maven-unit-test-report.html</link>
            <description>The Maven Surefire plugin executes your Maven project's unit tests. This Maven Surefire tutorial has been updated to explain how to execute unit tests with Java preview features enabled.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/maven/maven-unit-test-report.html</guid>
            <pubDate>2020.10.06  </pubDate>
        </item>
        <item>
            <title>Java Path in Java NIO</title>
            <link>http://tutorials.jenkov.com/java-nio/path.html</link>
            <description>The Java NIO Path class represents a file system path. The Path class can help you do various path related calculations, such as expressing one Path as a relative path from another Path.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-nio/path.html</guid>
            <pubDate>2020.10.05  </pubDate>
        </item>
        <item>
            <title>Java Comparator</title>
            <link>http://tutorials.jenkov.com/java-collections/comparator.html</link>
            <description>The Java Comparator interface represents a component that is able to compare two objects, so the objects can be sorted using Java's built-in sorting functionality.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/comparator.html</guid>
            <pubDate>2020.10.04  </pubDate>
        </item>
        <item>
            <title>Java Comparable</title>
            <link>http://tutorials.jenkov.com/java-collections/comparable.html</link>
            <description>The Java Comparable interface is intended to make your classes comparable, so you can sort them using Java's built-in sorting functionality.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/comparable.html</guid>
            <pubDate>2020.10.03  </pubDate>
        </item>
        <item>
            <title>JavaFX Stage Events</title>
            <link>http://tutorials.jenkov.com/javafx/stage.html</link>
            <description>The JavaFX Stage class represents a window in a JavaFX app. The JavaFX Stage tutorial has been updated with a section about which events you can listen for on a JavaFX Stage (close requested, showing, shown, hiding, hidden).</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/stage.html</guid>
            <pubDate>2020.09.28  </pubDate>
        </item>
        <item>
            <title>Java ThreadLocal</title>
            <link>http://tutorials.jenkov.com/java-concurrency/threadlocal.html</link>
            <description>A Java ThreadLocal is a class that can store one value internally per thread accessing it. I have updated the JavaThreadLocal tutorial, with a video version among other things.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/threadlocal.html</guid>
            <pubDate>2020.09.21</pubDate>
        </item>
        <item>
            <title>Java 15 Features</title>
            <link>http://tutorials.jenkov.com/java/searchIndex.html</link>
            <description>I have updated my Java tutorial intro to list the new features in Java 15.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/searchIndex.html</guid>
            <pubDate>2020.09.18</pubDate>
        </item>
        <item>
            <title>JavaFX Node</title>
            <link>http://tutorials.jenkov.com/javafx/node.html</link>
            <description>The JavaFX Node class is the base class (superclass) of all nodes (objects / components) added to the JavaFX scene graph. In this JavaFX Node tutorial I explain the basic properties of the JavaFX Node class.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/node.html</guid>
            <pubDate>2020.09.14</pubDate>
        </item>
        <item>
            <title>Java volatile tutorial</title>
            <link>http://tutorials.jenkov.com/java-concurrency/volatile.html</link>
            <description>I have updated the Java volatile tutorial - with a video version among other things.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/volatile.html</guid>
            <pubDate>2020.09.11</pubDate>
        </item>
        <item>
            <title>JavaFX Intro Update</title>
            <link>http://tutorials.jenkov.com/javafx/searchIndex.html</link>
            <description>JavaFX is an advanced, hardware accelerated GUI toolkit for Java with new releases every 6 months. I have updated my introduction to JavaFX to be up-to-date.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/searchIndex.html</guid>
            <pubDate>2020.09.03</pubDate>
        </item>
        <item>
            <title>Java AtomicLong</title>
            <link>http://tutorials.jenkov.com/java-util-concurrent/atomiclong.html</link>
            <description>The Java AtomicLong is a concurrency utility that provides atomic operations on an internal long variable. I have updated this Java AtomicLong tutorial with a few details.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-util-concurrent/atomiclong.html</guid>
            <pubDate>2020.08.25</pubDate>
        </item>
        <item>
            <title>Java Synchronized</title>
            <link>http://tutorials.jenkov.com/java-concurrency/synchronized.html</link>
            <description>The Java synchronized tutorial has been updated - with a video version of the tutorial among other things.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/synchronized.html</guid>
            <pubDate>2020.08.12</pubDate>
        </item>
        <item>
            <title>Java Happens Before Guarantee</title>
            <link>http://tutorials.jenkov.com/java-concurrency/java-happens-before-guarantee.html</link>
            <description>The Java happens before guarantee provides some restrictions on allowed instruction reordering for the Java VM and CPU. This Java happens before guarantee tutorial explains what these restrictions are. The Java happens before guarantee is actually part of the Java memory model, by the way.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/java-happens-before-guarantee.html</guid>
            <pubDate>2020.07.22</pubDate>
        </item>
        <item>
            <title>Java Memory Model</title>
            <link>http://tutorials.jenkov.com/java-concurrency/java-memory-model.html</link>
            <description>The Java Memory Model specifies how the Java VM and threads access memory, and where local variables and objects are stored. I have updated this tutorial - among other things with a video version.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/java-memory-model.html</guid>
            <pubDate>2020.07.02</pubDate>
        </item>
        <item>
            <title>Java Modules</title>
            <link>http://tutorials.jenkov.com/java/modules.html</link>
            <description>I have updated my Java Modules tutorial about the Java Platform Module System.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/modules.html</guid>
            <pubDate>2020.06.27</pubDate>
        </item>
        <item>
            <title>Build Java modules with Ant</title>
            <link>http://tutorials.jenkov.com/ant/build-java-modules.html</link>
            <description>This tutorial shows how to build Java modules (Java Platform Module System modules) with Ant.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/ant/build-java-modules.html</guid>
            <pubDate>2020.06.25</pubDate>
        </item>
        <item>
            <title>Java Threads - Create, start and stop threads in Java</title>
            <link>http://tutorials.jenkov.com/java-concurrency/creating-and-starting-threads.html</link>
            <description>The tutorial about creating and starting threads in Java has just been updated to be a bit more precise, including a new recording of the video for the topic.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/creating-and-starting-threads.html</guid>
            <pubDate>2020.06.17</pubDate>
        </item>
        <item>
            <title>Java Concurrency and Multithreading</title>
            <link>http://tutorials.jenkov.com/java-concurrency/searchIndex.html</link>
            <description>The Java Concurrency and multithreading introduction has been updated, among other things with links to video versions of some of the concurrency tutorials - one of which is an introduction to concurrency and multithreading.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/searchIndex.html</guid>
            <pubDate>2020.06.09</pubDate>
        </item>
        <item>
            <title>Jackson JsonNode</title>
            <link>http://tutorials.jenkov.com/java-json/jackson-jsonnode.html</link>
            <description>The Jackson JsonNode represents a node in a JSON object graph. I have updated the Jackson JsonNode tutorial to explain how to iterate all fields or field names of a JsonNode.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-json/jackson-jsonnode.html</guid>
            <pubDate>2020.06.02</pubDate>
        </item>
        <item>
            <title>Java Iterable</title>
            <link>http://tutorials.jenkov.com/java-collections/iterable.html</link>
            <description>I have updated my Java Iterable tutorial - among other things with an explanation of the forEach() method which is an alternative way to iterate the elements of a Java Iterable.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/iterable.html</guid>
            <pubDate>2020.05.25</pubDate>
        </item>
        <item>
            <title>RION Ops RionObjectWriter</title>
            <link>http://tutorials.jenkov.com/rion-ops-java/rionobjectwriter.html</link>
            <description>The RionObjectWriter can serialize Java objects into RION - our fast, compact, versatile binary data format. The RionObjectWriter tutorial now explains how to write both acyclic and cyclic object graphs into RION.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/rion-ops-java/rionobjectwriter.html</guid>
            <pubDate>2020.05.22</pubDate>
        </item>
        <item>
            <title>Java Iterator</title>
            <link>http://tutorials.jenkov.com/java-collections/iterator.html</link>
            <description>The Java Iterator tutorial has been updated to cover everything you need to know about the Iterator interface. Did you know about the Iterator forEachRemaining() method?</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/iterator.html</guid>
            <pubDate>2020.05.22</pubDate>
        </item>
        <item>
            <title>Java Stack Tutorial</title>
            <link>http://tutorials.jenkov.com/java-collections/stack.html</link>
            <description>The Java Stack class is a class stack implementation like you know them from an algorithms and data structures class. The Java Stack tutorial has received another round of updates, so it is now more precise.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/stack.html</guid>
            <pubDate>2020.05.21</pubDate>
        </item>
        <item>
            <title>RION Ops RionObjectReader</title>
            <link>http://tutorials.jenkov.com/rion-ops-java/rionobjectreader.html</link>
            <description>The RionObjectReader can read RION Object fields representing single objects or acyclic and/or cyclic object graphs.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/rion-ops-java/rionobjectreader.html</guid>
            <pubDate>2020.05.20</pubDate>
        </item>
        <item>
            <title>Java Record</title>
            <link>http://tutorials.jenkov.com/java/records.html</link>
            <description>A Java Record is a class representing an immutable data record using a concise syntax. Java Records is a new feature in Java 14. This Java Record tutorial explains how records work.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/records.html</guid>
            <pubDate>2020.05.15</pubDate>
        </item>
        <item>
            <title>Java Collections</title>
            <link>http://tutorials.jenkov.com/java-collections/searchIndex.html</link>
            <description>I have updated my Java Collections introduction, with among other things a link to my Java Collections tutorial video playlist.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/searchIndex.html</guid>
            <pubDate>2020.05.12</pubDate>
        </item>
        <item>
            <title>RION Ops - RionReader</title>
            <link>http://tutorials.jenkov.com/rion-ops-java/rionreader.html</link>
            <description>The RION Ops for Java RionReader component enables you to read RION data fields reasonably easily, and with high performance. The RionReader tutorial now explains how to traverse a RION Table field.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/rion-ops-java/rionreader.html</guid>
            <pubDate>2020.05.10</pubDate>
        </item>
        <item>
            <title>RION Ops - RionWriter</title>
            <link>http://tutorials.jenkov.com/rion-ops-java/rionwriter.html</link>
            <description>The RION Ops for Java RionWriter component enables you to write RION data fields reasonably easily, and with high performance. Now this tutorial also explains how to write RION Table fields.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/rion-ops-java/rionwriter.html</guid>
            <pubDate>2020.05.10</pubDate>
        </item>
        <item>
            <title>RION Ops - Introduction</title>
            <link>http://tutorials.jenkov.com/rion-ops-java/searchIndex.html</link>
            <description>Following release 0.11.0 of RION Ops, the Java toolkit for working with our compact, fast, versatile data format RION, I have updated the introduction to the RION Ops toolkit. More updates coming!</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/rion-ops-java/searchIndex.html</guid>
            <pubDate>2020.05.10</pubDate>
        </item>
        <item>
            <title>Java Deque</title>
            <link>http://tutorials.jenkov.com/java-collections/deque.html</link>
            <description>The Java Deque interface represents a double ended queue. The Java Deque tutorial has received a major update, including a video version of the tutorial.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/deque.html</guid>
            <pubDate>2020.05.04</pubDate>
        </item>
        <item>
            <title>Java 13 String Methods</title>
            <link>http://tutorials.jenkov.com/java/strings.html</link>
            <description>The Java String tutorial has been updated to explain the new preview methods added in Java 13.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/strings.html</guid>
            <pubDate>2020.04.29</pubDate>
        </item>
        <item>
            <title>JavaFX GridPane</title>
            <link>http://tutorials.jenkov.com/javafx/gridpane.html</link>
            <description>The JavaFX GridPane is a layout container that lays out its children in a grid. The JavaFX GridPane tutorial has been updated.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/gridpane.html</guid>
            <pubDate>2020.04.29</pubDate>
        </item>
        <item>
            <title>JavaFX Effects</title>
            <link>http://tutorials.jenkov.com/javafx/effects.html</link>
            <description>JavaFX effects are graphical effects you can apply to a JavaFX Node - for instance blur, drop shadow, reflection etc. This JavaFX Effects introduction guides you through the basics of how to apply effects in your JavaFX applications.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/effects.html</guid>
            <pubDate>2020.04.24</pubDate>
        </item>
        <item>
            <title>Java Queue Tutorial Updated</title>
            <link>http://tutorials.jenkov.com/java-collections/queue.html</link>
            <description>The Java Queue tutorial has received a major update, including a video version of the tutorial too.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/queue.html</guid>
            <pubDate>2020.04.20</pubDate>
        </item>
        <item>
            <title>HTML5 File API</title>
            <link>http://tutorials.jenkov.com/html5/file-api.html</link>
            <description>The HTML5 File API tutorial has been updated with information about how to upload a file from the browser via the new fetch() AJAX function in JavaScript.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/html5/file-api.html</guid>
            <pubDate>2020.04.18</pubDate>
        </item>
        <item>
            <title>JavaFX Text</title>
            <link>http://tutorials.jenkov.com/javafx/text.html</link>
            <description>The JavaFX Text control is used to display text inside your JavaFX application. This JavaFX tutorial explains the basics of the JavaFX Text control.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/text.html</guid>
            <pubDate>2020.04.15</pubDate>
        </item>
        <item>
            <title>JavaFX Color</title>
            <link>http://tutorials.jenkov.com/javafx/color.html</link>
            <description>The JavaFX Color class and related classes are used to set e.g. the background color, border color etc of JavaFX controls. This JavaFX Color tutorial explains how to create JavaFX Color instances using various different color codes (web, RGB, HSB).</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/color.html</guid>
            <pubDate>2020.04.07</pubDate>
        </item>
        <item>
            <title>Maven Commands</title>
            <link>http://tutorials.jenkov.com/maven/maven-commands.html</link>
            <description>Maven Commands tutorial updated - to include an example of how to skip unit tests during build (sometimes useful).</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/maven/maven-commands.html</guid>
            <pubDate>2020.04.06</pubDate>
        </item>
        <item>
            <title>Java Map Video Tutorial</title>
            <link>https://www.youtube.com/watch?v=UfBaTKaSSRg</link>
            <description>I have published a new video tutorial about the Java Map interface.</description>
            <guid isPermaLink="true">https://www.youtube.com/watch?v=UfBaTKaSSRg</guid>
            <pubDate>2020.04.06</pubDate>
        </item>
        <item>
            <title>SVG Tutorial</title>
            <link>http://tutorials.jenkov.com/svg/searchIndex.html</link>
            <description>I have updated the SVG tutorial introduction, and among other things made it more mobile friendly.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/svg/searchIndex.html</guid>
            <pubDate>2020.04.05</pubDate>
        </item>
        <item>
            <title>JavaFX Concurrency</title>
            <link>http://tutorials.jenkov.com/javafx/concurrency.html</link>
            <description>This JavaFX Concurrency tutorial introduces how threads and concurrency works in JavaFX.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/concurrency.html</guid>
            <pubDate>2020.03.30</pubDate>
        </item>
        <item>
            <title>Java Concurrency</title>
            <link>http://tutorials.jenkov.com/java-concurrency/searchIndex.html</link>
            <description>Java Concurrency introduction has been updated.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/searchIndex.html</guid>
            <pubDate>2020.03.29</pubDate>
        </item>
        <item>
            <title>Java Concurrency Utils</title>
            <link>http://tutorials.jenkov.com/java-util-concurrent/searchIndex.html</link>
            <description>Java Concurrency Utils introduction has been updated.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-util-concurrent/searchIndex.html</guid>
            <pubDate>2020.03.29</pubDate>
        </item>
        <item>
            <title>Java Set Tutorial Video</title>
            <link>https://www.youtube.com/watch?v=rruCajMgvGA</link>
            <description>I have created a video version of my Java Set tutorial - for anyone who prefers video over text.</description>
            <guid isPermaLink="true">https://www.youtube.com/watch?v=rruCajMgvGA</guid>
            <pubDate>2020.03.26</pubDate>
        </item>
        <item>
            <title>Java instanceof</title>
            <link>http://tutorials.jenkov.com/java/instanceof.html</link>
            <description>The Java instanceof operator is used to determine if a given Java object is an instance of a specific class or interface. In Java 14 the Java instanceof operator has been extended with new, pattern matching functionality that makes it more concise to use when downcasting after an instanceof check.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/instanceof.html</guid>
            <pubDate>2020.03.21</pubDate>
        </item>
        <item>
            <title>Java Synchronized</title>
            <link>http://tutorials.jenkov.com/java-concurrency/synchronized.html</link>
            <description>The Java synchronized tutorial has been updated to include a lot more details about how synchronized blocks in Java works.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/synchronized.html</guid>
            <pubDate>2020.03.16</pubDate>
        </item>
        <item>
            <title>Java Map</title>
            <link>http://tutorials.jenkov.com/java-collections/map.html</link>
            <description>The Java Map tutorial has been updated to promote the use of generic types (Java Generics) with maps.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/map.html</guid>
            <pubDate>2020.03.05</pubDate>
        </item>
        <item>
            <title>Java Set</title>
            <link>http://tutorials.jenkov.com/java-collections/set.html</link>
            <description>The Java Set tutorial has been updated to promote the use of generic types (Java Generics) with sets.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/set.html</guid>
            <pubDate>2020.03.02</pubDate>
        </item>
        <item>
            <title>Java List</title>
            <link>http://tutorials.jenkov.com/java-collections/list.html</link>
            <description>The Java List tutorial has been updated to promote the use of generic types (Java Generics) with lists.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/list.html</guid>
            <pubDate>2020.03.02</pubDate>
        </item>
        <item>
            <title>Java Text Blocks</title>
            <link>http://tutorials.jenkov.com/java/strings.html#java-text-blocks</link>
            <description>Java Text Blocks is a new feature in Java 13. I have updated the Java String tutorial to explain how the new Java text block feature works. A Java text block is also called a multi line String.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/strings.html#java-text-blocks</guid>
            <pubDate>2020.02.19</pubDate>
        </item>
        <item>
            <title>Your First Java App</title>
            <link>http://tutorials.jenkov.com/java/your-first-java-app.html</link>
            <description>I have updated the tutorial about how to create your first Java app to use IntelliJ IDEA Community Edition 2019.3.3 and Java 13.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/your-first-java-app.html</guid>
            <pubDate>2020.02.19</pubDate>
        </item>
        <item>
            <title>Installing the Java SDK</title>
            <link>http://tutorials.jenkov.com/java/installing-java-sdk.html</link>
            <description>I have updated the tutorial about how to install the Java SDK to match the reality from Java 13 and forward.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/installing-java-sdk.html</guid>
            <pubDate>2020.02.19</pubDate>
        </item>
        <item>
            <title>What is Java?</title>
            <link>http://tutorials.jenkov.com/java/what-is-java.html</link>
            <description>I have updated the What is Java tutorial to reflect what Java is as of Java 13 and forward.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/what-is-java.html</guid>
            <pubDate>2020.02.19</pubDate>
        </item>
        <item>
            <title>Java AtomicStampedReference</title>
            <link>http://tutorials.jenkov.com/java-util-concurrent/atomicstampedreference.html</link>
            <description>I have updated the Java AtomicStampedRefence tutorial somewhat. The AtomicStampedReference can be used to avoid the classic A-B-A concurrency problem.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-util-concurrent/atomicstampedreference.html</guid>
            <pubDate>2020.02.12</pubDate>
        </item>
        <item>
            <title>Java switch Expression Improvements in Java 13</title>
            <link>http://tutorials.jenkov.com/java/switch.html</link>
            <description>I have updated the Java switch tutorial to explain the Java switch expression improvements in Java 13.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/switch.html</guid>
            <pubDate>2020.02.10</pubDate>
        </item>
        <item>
            <title>Maven Java Compiler Version</title>
            <link>http://tutorials.jenkov.com/maven/java-compiler.html</link>
            <description>This tutorial explains how to set the Java compiler version to compile your project with, inside the POM file for the project. The tutorial now explains how to enable the preview features in Java 12 and 13.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/maven/java-compiler.html</guid>
            <pubDate>2020.02.10</pubDate>
        </item>
        <item>
            <title>CSS display</title>
            <link>http://tutorials.jenkov.com/css/display.html</link>
            <description>The CSS display property specifies how an HTML element is to be rendered (displayed) in the HTML element flow of an HTML page. The CSS display tutorial has been updated to cover more valid property values.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/css/display.html</guid>
            <pubDate>2020.02.08</pubDate>
        </item>
        <item>
            <title>Java Threads</title>
            <link>http://tutorials.jenkov.com/java-concurrency/creating-and-starting-threads.html</link>
            <description>Java Threads are like virtual CPUs that can execute parts of your application in parallel. I have updated the tutorial about how to create and start threads in Java. </description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/creating-and-starting-threads.html</guid>
            <pubDate>2020.02.07</pubDate>
        </item>
        <item>
            <title>JavaFX HBox</title>
            <link>http://tutorials.jenkov.com/javafx/hbox.html</link>
            <description>The JavaFX HBox control is a layout control which lays out its child nodes next to each other on a horizontal row. The JavaFX HBox tutorial has been updated with information about child node margins plus the hgrow and fillHeight properties.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/hbox.html</guid>
            <pubDate>2020.02.05</pubDate>
        </item>
        <item>
            <title>Java Map</title>
            <link>http://tutorials.jenkov.com/java-collections/map.html</link>
            <description>The Java Map tutorial has been corrected to say that null keys are allowed in a Java Map. Counter-intuitive - but true.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/map.html</guid>
            <pubDate>2020.02.04</pubDate>
        </item>
        <item>
            <title>JavaFX VBox</title>
            <link>http://tutorials.jenkov.com/javafx/vbox.html</link>
            <description>The JavaFX VBox can layout its child components in a vertical column - on top of each other. The JavaFX VBox tutorial has been updated to explain concepts like fillWidth, CSS styling, margins around child nodes etc.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/vbox.html</guid>
            <pubDate>2020.02.03</pubDate>
        </item>
        <item>
            <title>Java Resizable Array</title>
            <link>http://tutorials.jenkov.com/java-performance/resizable-array.html</link>
            <description>I have updated the Java Resizable Array tutorial to explain why a Java ArrayList cannot always do the job (performance reasons).</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-performance/resizable-array.html</guid>
            <pubDate>2020.01.28</pubDate>
        </item>
        <item>
            <title>RION Ops RionObjectWriter</title>
            <link>http://tutorials.jenkov.com/rion-ops-java/rionobjectwriter.html</link>
            <description>The RionObjectReader makes it easy to write Java objects out to RION. To serialize Java objects as RION, in other words.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/rion-ops-java/rionobjectwriter.html</guid>
            <pubDate>2020.01.22</pubDate>
        </item>
        <item>
            <title>RION Ops RionObjectReader</title>
            <link>http://tutorials.jenkov.com/rion-ops-java/rionobjectreader.html</link>
            <description>The RionObjectReader makes it easy to read RION data into Java objects. To deserialize Java objects from RION, in other words.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/rion-ops-java/rionobjectreader.html</guid>
            <pubDate>2020.01.22</pubDate>
        </item>
        <item>
            <title>New in Java 14</title>
            <link>http://tutorials.jenkov.com/java/searchIndex.html</link>
            <description>I hve updated the Java introduction to list what is new in Java 14 which is due for release in March 2020. </description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/searchIndex.html</guid>
            <pubDate>2020.01.14</pubDate>
        </item>
        <item>
            <title>Java Stack</title>
            <link>http://tutorials.jenkov.com/java-collections/stack.html</link>
            <description>The Java Stack tutorial has been updated to show examples with generic types, and mentioning the use of Deque as a more modern alternative to Stack. </description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/stack.html</guid>
            <pubDate>2020.01.14</pubDate>
        </item>
        <item>
            <title>Tutorials - New Layout</title>
            <link>http://tutorials.jenkov.com/</link>
            <description>We are currently experimenting with the layout of tutorials.jenkov.com, so if the layout looks a bit weird - please be patient. We will fix it soon. If not, let us know, and we will fix it. </description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/</guid>
            <pubDate>2020.01.14</pubDate>
        </item>
        <item>
            <title>Java System.in, System.out and System.err</title>
            <link>http://tutorials.jenkov.com/java-io/system-in-out-error.html</link>
            <description>The Java System.in, System.out and System.err streams provide a simple way to send data into a Java application, and output data from a Java app too. This tutorial has been clarified. </description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-io/system-in-out-error.html</guid>
            <pubDate>2020.01.06</pubDate>
        </item>
        <item>
            <title>RION Encoding</title>
            <link>http://tutorials.jenkov.com/rion/rion-encoding.html</link>
            <description>The RION Encoding tutorial has been updated to be more clear, and to also contain encoding examples in hexadecimal notation, so you can now see exactly what RION encoded data looks like.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/rion/rion-encoding.html</guid>
            <pubDate>2019.12.27</pubDate>
        </item>
        <item>
            <title>RION Design Goals</title>
            <link>http://tutorials.jenkov.com/rion/rion-design-goals.html</link>
            <description>RION was designed to be fast, compact, expressive, suitable as network protocol message format, as well as a few other goals. This text explains the design goals of RION.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/rion/rion-design-goals.html</guid>
            <pubDate>2019.12.22</pubDate>
        </item>
        <item>
            <title>RION Introduction</title>
            <link>http://tutorials.jenkov.com/rion/searchIndex.html</link>
            <description>RION is a fast, compact, versatile, binary data format. RION was designed for data exchange, but works fine as a data storage format too. The RION introduction has been extended and improved.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/rion/searchIndex.html</guid>
            <pubDate>2019.12.22</pubDate>
        </item>
        <item>
            <title>Jackson JsonNode Traversal</title>
            <link>http://tutorials.jenkov.com/java-json/jackson-jsonnode.html</link>
            <description>The Jackson JsonNode tutorial has been extended to explain how to traverse a JsonNode graph representing either a JSON object or JSON Array.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-json/jackson-jsonnode.html</guid>
            <pubDate>2019.12.20</pubDate>
        </item>
        <item>
            <title>Concurrency vs Parallelism</title>
            <link>http://tutorials.jenkov.com/java-concurrency/concurrency-vs-parallelism.html</link>
            <description>Concurrency and parallelism are two commonly used term when talking about multithreading - but what do they mean exactly? This tutorial explains the difference. The explanations have been updated to be more clear.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/concurrency-vs-parallelism.html</guid>
            <pubDate>2019.12.18</pubDate>
        </item>
        <item>
            <title>Java File</title>
            <link>http://tutorials.jenkov.com/java-io/file.html</link>
            <description>The Java File tutorial has been updated. The Java File class gives you access to file system operations like renaming or deleting files or directories, check if a file exists, list directory content etc.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-io/file.html</guid>
            <pubDate>2019.12.15</pubDate>
        </item>
        <item>
            <title>Java DataInputStream</title>
            <link>http://tutorials.jenkov.com/java-io/datainputstream.html</link>
            <description>The Java DataInputStream enables you to read primitive data types (byte, short int, float etc) from an underlying InputStream. The Java DataInputStream tutorial has been updated to explain more of its available read methods.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-io/datainputstream.html</guid>
            <pubDate>2019.12.09</pubDate>
        </item>
        <item>
            <title>Same-threading</title>
            <link>http://tutorials.jenkov.com/java-concurrency/same-threading.html</link>
            <description>Same-threading is single-threaded design scaled out to N threads. I have updated my same-threading tutorial to explain this more precisely.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/same-threading.html</guid>
            <pubDate>2019.12.07</pubDate>
        </item>
        <item>
            <title>Java RandomAccessFile</title>
            <link>http://tutorials.jenkov.com/java-io/randomaccessfile.html</link>
            <description>The Java RandomAccessFile class enables you to read from and write to a file at arbitrary locations. In other words, you can move freely around the file, both forth and back, and read from or write to the file at the desired location. I have updated the Java RandomAccessFile tutorial to explain better how to use it.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-io/randomaccessfile.html</guid>
            <pubDate>2019.12.04</pubDate>
        </item>
        <item>
            <title>Stream Processing API Designs</title>
            <link>http://tutorials.jenkov.com/data-streaming/stream-processing-api-designs.html</link>
            <description>Having studied various different stream processing APIs over the last 1,5 years, I have written up an analysis of what to look for when choosing a stream processing API.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/data-streaming/stream-processing-api-designs.html</guid>
            <pubDate>2019.12.02</pubDate>
        </item>
        <item>
            <title>Java ZipFile - Zip Slip Attack</title>
            <link>http://tutorials.jenkov.com/java-zip/zipfile.html</link>
            <description>I have updated the Java ZipFile tutorial to explain how to avoid the Zip Slip attack !</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-zip/zipfile.html</guid>
            <pubDate>2019.11.30</pubDate>
        </item>
        <item>
            <title>JavaFX TableView</title>
            <link>http://tutorials.jenkov.com/javafx/tableview.html</link>
            <description>The JavaFX TableView enables you to display data in a tabular control. The TableView tutorial has been updated to explain the TableView SelectionModel - how rows are selected in the TableView.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/tableview.html</guid>
            <pubDate>2019.11.28</pubDate>
        </item>
        <item>
            <title>Concurrency Models</title>
            <link>http://tutorials.jenkov.com/java-concurrency/concurrency-models.html</link>
            <description>Over time the developer community has come up with several different concurrency models, each with their own pros and cons. This concurrency model tutorial has been updated to explain the shared state and separate state variations of a concurrency model.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/concurrency-models.html</guid>
            <pubDate>2019.11.26</pubDate>
        </item>
        <item>
            <title>JavaFX Button</title>
            <link>http://tutorials.jenkov.com/javafx/button.html</link>
            <description>The JavaFX Button represents a visual button the user can click to perform some action. The JavaFX Button tutorial has been updated with information about how to disable a button so it is visible but not clickable.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/button.html</guid>
            <pubDate>2019.11.22</pubDate>
        </item>
        <item>
            <title>Java Concurrency Tutorial</title>
            <link>http://tutorials.jenkov.com/java-concurrency/searchIndex.html</link>
            <description>I have updated the Java Concurrency tutorial introduction to be more up-to-date. In general I will be updating the tutorials in this trail over the coming months.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/searchIndex.html</guid>
            <pubDate>2019.11.18</pubDate>
        </item>
        <item>
            <title>Java ByteArrayOutputStream</title>
            <link>http://tutorials.jenkov.com/java-io/bytearrayoutputstream.html</link>
            <description>The Java ByteArrayOutputStream can collect the bytes written to and return them as a Java byte array. Thus, the Java ByteArrayOutputStream is handy when you have a component that can only write to an OutputStream, but you need the data as a byte array. This Java ByteArrayOutputStream tutorial has been updated with more descriptions and examples.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-io/bytearrayoutputstream.html</guid>
            <pubDate>2019.11.18</pubDate>
        </item>
        <item>
            <title>Java ByteArrayInputStream</title>
            <link>http://tutorials.jenkov.com/java-io/bytearrayinputstream.html</link>
            <description>The Java ByteArrayInputStream can turn a Java byte array into an InputStream. Thus, the Java ByteArrayInputStream is very useful when you have a byte array, but need an InputStream for some purpose. This Java ByteArrayInputStream tutorial has been updated with more descriptions and examples.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-io/bytearrayinputstream.html</guid>
            <pubDate>2019.11.18</pubDate>
        </item>
        <item>
            <title>Java ThreadLocal</title>
            <link>http://tutorials.jenkov.com/java-concurrency/threadlocal.html</link>
            <description>The Java ThreadLocal provides a variable where values set can only be read by the same thread that set them. The Java ThreadLocal tutorial has now been updated with more information about setting initial value, removing the value etc.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/threadlocal.html</guid>
            <pubDate>2019.11.13</pubDate>
        </item>
        <item>
            <title>Java Collections Tutorial</title>
            <link>http://tutorials.jenkov.com/java-collections/searchIndex.html</link>
            <description>Over the course of the last year, most of the tutorials in the Java Collections tutorial series have been updated, and 3 new tutorials have been added.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/searchIndex.html</guid>
            <pubDate>2019.11.12</pubDate>
        </item>
        <item>
            <title>Java NavigableMap</title>
            <link>http://tutorials.jenkov.com/java-collections/navigablemap.html</link>
            <description>The Java NavigableMap tutorial has been cleaned up with more descriptions and more examples.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/navigablemap.html</guid>
            <pubDate>2019.11.09</pubDate>
        </item>
        <item>
            <title>Java BufferedReader</title>
            <link>http://tutorials.jenkov.com/java-io/bufferedreader.html</link>
            <description>The Java BufferedReader tutorial has been updated with information about how to implement your own reusable BufferedReader.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-io/bufferedreader.html</guid>
            <pubDate>2019.11.07</pubDate>
        </item>
        <item>
            <title>Java 13 Features</title>
            <link>http://tutorials.jenkov.com/java/searchIndex.html</link>
            <description>The Java tutorial introduction has been updated with a list of the new features in Java 13.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/searchIndex.html</guid>
            <pubDate>2019.11.06</pubDate>
        </item>
        <item>
            <title>Java BufferedInputStream</title>
            <link>http://tutorials.jenkov.com/java-io/bufferedinputstream.html</link>
            <description>The Java BufferedInputStream tutorial has been updated with an example of how to create a reusable BufferedInputStream.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-io/bufferedinputstream.html</guid>
            <pubDate>2019.11.02</pubDate>
        </item>
        <item>
            <title>Mem Ops Bytes</title>
            <link>http://tutorials.jenkov.com/mem-ops-java/bytes.html</link>
            <description>The Mem Ops Bytes class represents a byte sequence allocated from a shared byte array. Bytes is designed for pooling and freeing of both itself and the allocated bytes.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/mem-ops-java/bytes.html</guid>
            <pubDate>2019.11.01</pubDate>
        </item>
        <item>
            <title>Mem Ops 0.6.2</title>
            <link>http://tutorials.jenkov.com/mem-ops-java/searchIndex.html</link>
            <description>Mem Ops 0.6.2 is out, which has more advanced pooling of Bytes objects which represents byte sequences allocated in a shared byte array.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/mem-ops-java/searchIndex.html</guid>
            <pubDate>2019.11.01</pubDate>
        </item>
        <item>
            <title>RION Ops in Central Maven Repo</title>
            <link>http://tutorials.jenkov.com/maven/java-compiler.html</link>
            <description>RION Ops for Java- an open source toolkit for reading and writing the compact, fast binary RION data format, is now available in the Maven central repo.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/maven/java-compiler.html</guid>
            <pubDate>2019.10.28</pubDate>
        </item>
        <item>
            <title>Maven Java Compiler - Java 9 and Later</title>
            <link>http://tutorials.jenkov.com/maven/java-compiler.html</link>
            <description>The Maven Java Compiler tutorial has been updated to explain how to set the Java compiler for Java 9 and later.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/maven/java-compiler.html</guid>
            <pubDate>2019.10.20</pubDate>
        </item>
        <item>
            <title>Java SortedMap</title>
            <link>http://tutorials.jenkov.com/java-collections/sortedmap.html</link>
            <description>The Java SortedMap is like a Map where the keys are kept sorted internally, so the keys can be iterated later in sort order, or reverse sort order.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/sortedmap.html</guid>
            <pubDate>2019.10.17</pubDate>
        </item>
        <item>
            <title>Mem Ops for Java Available in Maven Central Repo</title>
            <link>http://tutorials.jenkov.com/mem-ops-java/searchIndex.html</link>
            <description>Mem Ops for Java, the open source toolkit for memory allocation in apps that require stable memory consumption under high load, is now available in the central Maven repository. The Mem Ops for Java tutorial now describes the Maven coordinates required to use Mem Ops with Maven.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/mem-ops-java/searchIndex.html</guid>
            <pubDate>2019.10.14</pubDate>
        </item>
        <item>
            <title>Dockerfile Tutorial</title>
            <link>http://tutorials.jenkov.com/docker/dockerfile.html</link>
            <description>The Docker Dockerfile contains the recipe for how to build a Docker image. You can ask Docker to execute a Dockerfile and build a Docker image as a result.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/docker/dockerfile.html</guid>
            <pubDate>2019.10.10</pubDate>
        </item>
        <item>
            <title>Java NavigableSet</title>
            <link>http://tutorials.jenkov.com/java-collections/navigableset.html</link>
            <description>The Java NavigableSet is a sub-interface of Java SortedSet, with a few extra navigation methods. The Java NavigableSet tutorial has been updated.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/navigableset.html</guid>
            <pubDate>2019.10.10</pubDate>
        </item>
        <item>
            <title>Docker Tutorial</title>
            <link>http://tutorials.jenkov.com/docker/searchIndex.html</link>
            <description>Docker containers are an alternative to virtual machines which have less overhead, and which can be created from a Dockerfile (configuration file), so you can recreate the container again and again.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/docker/searchIndex.html</guid>
            <pubDate>2019.09.30</pubDate>
        </item>
        <item>
            <title>Java PushbackInputStream</title>
            <link>http://tutorials.jenkov.com/java-io/pushbackinputstream.html</link>
            <description>The Java PushbackInputStream enables you to push back bytes into the PushbackInputStream which has been read from it - for later re-reading. This is useful when parsing binary data formats.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-io/pushbackinputstream.html</guid>
            <pubDate>2019.09.30</pubDate>
        </item>
        <item>
            <title>Java PushbackReader</title>
            <link>http://tutorials.jenkov.com/java-io/pushbackreader.html</link>
            <description>The Java PushbackReader enables you to push back characters into the PushbackReader which has been read from it - for later re-reading. This is useful when parsing text or textual data formats.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-io/pushbackreader.html</guid>
            <pubDate>2019.09.30</pubDate>
        </item>
        <item>
            <title>RION Ops RionReader</title>
            <link>http://tutorials.jenkov.com/rion-ops-java/rionreader.html</link>
            <description>The RION Ops RionReader is able to read RION fields, e.g. written with the RionWriter, into various Java data types.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/rion-ops-java/rionreader.html</guid>
            <pubDate>2019.09.23</pubDate>
        </item>
        <item>
            <title>RION Ops RionWriter</title>
            <link>http://tutorials.jenkov.com/rion-ops-java/rionwriter.html</link>
            <description>The RION Ops RionWriter is able to write various types of data as RION fields into a destination byte array. These RION Fields can later be read using the RION Ops RionReader.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/rion-ops-java/rionwriter.html</guid>
            <pubDate>2019.09.23</pubDate>
        </item>
        <item>
            <title>RION Ops</title>
            <link>http://tutorials.jenkov.com/rion-ops-java/searchIndex.html</link>
            <description>RION Ops is an open source toolkit to work with the compact, fast, binary data format RION.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/rion-ops-java/searchIndex.html</guid>
            <pubDate>2019.09.23</pubDate>
        </item>
        <item>
            <title>RION Data Format</title>
            <link>http://tutorials.jenkov.com/rion/searchIndex.html</link>
            <description>The RION data format is a binary, compact, fast general purpose data format. RION was formerly known as ION, but has been renamed to distinguish it from Amazon's ION data format.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/rion/searchIndex.html</guid>
            <pubDate>2019.09.22</pubDate>
        </item>
        <item>
            <title>Java SortedSet</title>
            <link>http://tutorials.jenkov.com/java-collections/sortedset.html</link>
            <description>The Java SortedSet is a Set which keeps its element sorted internally, so they can be iterated in the sorted order.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/sortedset.html</guid>
            <pubDate>2019.09.11</pubDate>
        </item>
        <item>
            <title>Jackson ObjectMapper</title>
            <link>http://tutorials.jenkov.com/java-json/jackson-objectmapper.html</link>
            <description>The Jackson ObjectMapper is one of the most central classes of the Jackson JSON parser / generator API. The Jackson ObjectMapper tutorial has been updated with information about how to convert from JsonNode to objects, and from objects to JsonNode instances.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-json/jackson-objectmapper.html</guid>
            <pubDate>2019.09.08</pubDate>
        </item>
        <item>
            <title>Jackson JsonNode</title>
            <link>http://tutorials.jenkov.com/java-json/jackson-jsonnode.html</link>
            <description>The Jackson JsonNode class is a dynamic representation of a JSON object. The JsonNode tutorial has received a major round of updates.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-json/jackson-jsonnode.html</guid>
            <pubDate>2019.09.08</pubDate>
        </item>
        <item>
            <title>Build a Fat JAR With Maven</title>
            <link>http://tutorials.jenkov.com/maven/maven-build-fat-jar.html</link>
            <description>You can configure Maven to build a Fat JAR from your project containing all your project's compiled classes, and all classes of all dependencies your project uses, in single JAR file called a Fat JAR. Very useful for packaging microservices, executable JARs etc. - also inside a Docker container.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/maven/maven-build-fat-jar.html</guid>
            <pubDate>2019.09.01</pubDate>
        </item>
        <item>
            <title>Java InputStreamReader</title>
            <link>http://tutorials.jenkov.com/java-io/inputstreamreader.html</link>
            <description>The Java InputStreamReader tutorial has received a major round of updates. The InputStreamReader turns a byte based InputStream into a character based Reader.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-io/inputstreamreader.html</guid>
            <pubDate>2019.08.31</pubDate>
        </item>
        <item>
            <title>Java InputStream</title>
            <link>http://tutorials.jenkov.com/java-io/inputstream.html</link>
            <description>The Java InputStream tutorial has received a major round of updates. InputStream represents an inbound stream of bytes.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-io/inputstream.html</guid>
            <pubDate>2019.08.31</pubDate>
        </item>
        <item>
            <title>Java IO Tutorial</title>
            <link>http://tutorials.jenkov.com/java-io/searchIndex.html</link>
            <description>The Java IO Tutorial has been updated in several places. Many of the core texts have been updated and some almost completely rewritten. </description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-io/searchIndex.html</guid>
            <pubDate>2019.08.31</pubDate>
        </item>
        <item>
            <title>Jackson JsonNode</title>
            <link>http://tutorials.jenkov.com/java-json/jackson-jsonnode.html</link>
            <description>The Jackson JsonNode tutorial has been updated with a description about how to access fields using a JSON path expression (like XPath) via the at() method. </description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-json/jackson-jsonnode.html</guid>
            <pubDate>2019.08.20</pubDate>
        </item>
        <item>
            <title>Java Properties Tutorial</title>
            <link>http://tutorials.jenkov.com/java-collections/properties.html</link>
            <description>The Java Properties tutorial has received a major round of updates, covering more advanced topics of the Java Properties class, like default properties, loading from classpath etc.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/properties.html</guid>
            <pubDate>2019.08.18</pubDate>
        </item>
        <item>
            <title>The Store and Process Stream Processing Design Pattern</title>
            <link>http://tutorials.jenkov.com/data-streaming/store-and-process.html</link>
            <description>The store and process stream processing design pattern is a simple design which is easy to implement and which can scale nicely, both in terms of complexity of stream processing logic and performance.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/data-streaming/store-and-process.html</guid>
            <pubDate>2019.08.12</pubDate>
        </item>
        <item>
            <title>JavaFX HTMLEditor</title>
            <link>http://tutorials.jenkov.com/javafx/htmleditor.html</link>
            <description>The JavaFX HTMLEditor enables the user to edit HTML in a wysiwyg editor.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/htmleditor.html</guid>
            <pubDate>2019.08.03</pubDate>
        </item>
        <item>
            <title>JavaFX Pagination</title>
            <link>http://tutorials.jenkov.com/javafx/pagination.html</link>
            <description>The JavaFX Pagination control enables the user to navigate page by page through content, e.g. search results, articles, images etc.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/pagination.html</guid>
            <pubDate>2019.07.29</pubDate>
        </item>
        <item>
            <title>JavaFX ColorPicker</title>
            <link>http://tutorials.jenkov.com/javafx/colorpicker.html</link>
            <description>A JavaFX ColorPicker enables the user to choose a color from a small wizard-like popup dialog.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/colorpicker.html</guid>
            <pubDate>2019.07.27</pubDate>
        </item>
        <item>
            <title>JavaFX Separator</title>
            <link>http://tutorials.jenkov.com/javafx/separator.html</link>
            <description>The JavaFX Separator shows a visual divider between JavaFX controls inside a container, e.g. inside a VBox or HBox.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/separator.html</guid>
            <pubDate>2019.07.24</pubDate>
        </item>
        <item>
            <title>JavaFX ContextMenu</title>
            <link>http://tutorials.jenkov.com/javafx/contextmenu.html</link>
            <description>A JavaFX ContextMenu provides a right click menu which can be attached to a JavaFX control. This JavaFX ContextMenu tutorial explains how to use it.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/contextmenu.html</guid>
            <pubDate>2019.07.22</pubDate>
        </item>
        <item>
            <title>Stream Ops StreamOps Facade Class</title>
            <link>http://tutorials.jenkov.com/stream-ops-java/streamops.html</link>
            <description>The StreamOps class in the Stream Ops data streaming API is a convenience facade class that can act as a starting point when using Stream Ops.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/stream-ops-java/streamops.html</guid>
            <pubDate>2019.07.20</pubDate>
        </item>
        <item>
            <title>JavaFX SplitMenuButton</title>
            <link>http://tutorials.jenkov.com/javafx/splitmenubutton.html</link>
            <description>The JavaFX SplitMenuButton is an advanced MenuButton which can have an extra, often used menu choice available to click on directly, as a side-mounted button.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/splitmenubutton.html</guid>
            <pubDate>2019.07.10</pubDate>
        </item>
        <item>
            <title>JavaFX ScrollPane</title>
            <link>http://tutorials.jenkov.com/javafx/scrollpane.html</link>
            <description>A JavaFX ScrollPane is a container that has two scrollbars around the component it contains if the component is larger than the visible area of the ScrollPane. The scrollbars enable the user to scroll around the component shown inside the ScrollPane, so different parts of the component can be seen.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/scrollpane.html</guid>
            <pubDate>2019.07.07</pubDate>
        </item>
        <item>
            <title>Java Properties</title>
            <link>http://tutorials.jenkov.com/java-collections/properties.html</link>
            <description>The Java Properties class is a simple key,value store, like a Hashtable. The Java Properties class can write properties to disk and read them again, in both property file format and XML format.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/properties.html</guid>
            <pubDate>2019.07.06</pubDate>
        </item>
        <item>
            <title>Stream Ops Introduction</title>
            <link>http://tutorials.jenkov.com/stream-ops-java/searchIndex.html</link>
            <description>We have begun the documentation of Stream Ops - the embeddable data streaming engine for Java. Stream Ops enable you to write data records into a stream which is stored on disk, and read the records in the same order again later.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/stream-ops-java/searchIndex.html</guid>
            <pubDate>2019.06.30</pubDate>
        </item>
        <item>
            <title>Compare and Swap in Java</title>
            <link>http://tutorials.jenkov.com/java-concurrency/compare-and-swap.html</link>
            <description>Compare and swap is an essential operation in concurrency libraries. This tutorial explains the idea behind compare and swap, and how Java provides compare and swap functionality.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/compare-and-swap.html</guid>
            <pubDate>2019.06.22</pubDate>
        </item>
        <item>
            <title>JDBC Batch Update</title>
            <link>http://tutorials.jenkov.com/jdbc/batchupdate.html</link>
            <description>JDBC batch updates can batch multiple SQL statements into a batch which is sent to the database in a single batch, speeding up the update execution. The JDBC batch update tutorial has just been updated. </description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/jdbc/batchupdate.html</guid>
            <pubDate>2019.06.20</pubDate>
        </item>
        <item>
            <title>JavaFX SplitPane</title>
            <link>http://tutorials.jenkov.com/javafx/splitpane.html</link>
            <description>JavaFX SplitPane is a container component which splits its screen space between two or more controls. Between each two controls is a divider which can be moved by the user to specify how much space each control should take up within the SplitPane.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/splitpane.html</guid>
            <pubDate>2019.06.16</pubDate>
        </item>
        <item>
            <title>JavaFX TabPane</title>
            <link>http://tutorials.jenkov.com/javafx/tabpane.html</link>
            <description>JavaFX TabPane is a container component which can contain multiple sections (tabs) which can be displayed by clicking on the tab above the section area.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/tabpane.html</guid>
            <pubDate>2019.06.10</pubDate>
        </item>
        <item>
            <title>Parsing and Formatting Dates in Java</title>
            <link>http://tutorials.jenkov.com/java-date-time/parsing-formatting-dates.html</link>
            <description>Parsing and formatting dates in Java can be done using different classes. This updated tutorial gives a short overview of the options Java provides for parsing and formatting dates.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-date-time/parsing-formatting-dates.html</guid>
            <pubDate>2019.06.10</pubDate>
        </item>
        <item>
            <title>Java switch Expression</title>
            <link>http://tutorials.jenkov.com/java/switch.html</link>
            <description>Java 12 added the experimental Java switch expression which enables switch statements to return a value. I have expanded the Java switch tutorial to explain the Java switch expression.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/switch.html</guid>
            <pubDate>2019.06.01</pubDate>
        </item>
        <item>
            <title>Mem Ops ObjectPool</title>
            <link>http://tutorials.jenkov.com/mem-ops-java/objectpool.html</link>
            <description>The Mem Ops ObjectPool component is an object pool which allows you to obtain objects which can be freed back to the object pool for later reuse.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/mem-ops-java/objectpool.html</guid>
            <pubDate>2019.06.01</pubDate>
        </item>
        <item>
            <title>JavaFX Slider</title>
            <link>http://tutorials.jenkov.com/javafx/slider.html</link>
            <description>The JavaFX Slider control is enables the user to select a value within a preset interval by sliding a handle from left to right.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/slider.html</guid>
            <pubDate>2019.05.30</pubDate>
        </item>
        <item>
            <title>Java Ternary Operator</title>
            <link>http://tutorials.jenkov.com/java/ternary-operator.html</link>
            <description>The Java Ternary Operator provides a simplified if-statement construct. The Java Ternary Operator tutorial has been updated to show how to chain more than one ternary operator into a single expression.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/ternary-operator.html</guid>
            <pubDate>2019.05.30</pubDate>
        </item>
        <item>
            <title>JavaFX ProgressBar</title>
            <link>http://tutorials.jenkov.com/javafx/progressbar.html</link>
            <description>The JavaFX ProgressBar control is capable of displaying the progress of some task inside a bar.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/progressbar.html</guid>
            <pubDate>2019.05.27</pubDate>
        </item>
        <item>
            <title>Mem Ops BytesAllocatorManualDefrag</title>
            <link>http://tutorials.jenkov.com/mem-ops-java/bytesallocatormanualdefrag.html</link>
            <description>The Mem Ops BytesAllocatorManualDefrag is a byte block allocator which can allocate smaller blocks of bytes from a bigger byte array. The allocated blocks need to be explicitly freed again to be reallocated. You will need to manually trigger defragmentation of the free blocks when you find it suitable.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/mem-ops-java/bytesallocatormanualdefrag.html</guid>
            <pubDate>2019.05.27</pubDate>
        </item>
        <item>
            <title>Java Collections Class</title>
            <link>http://tutorials.jenkov.com/java-collections/collections.html</link>
            <description>The Java Collections class contains several useful utility methods for working with Java Collections, like Lists etc.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/collections.html</guid>
            <pubDate>2019.05.25</pubDate>
        </item>
        <item>
            <title>JavaFX Hyperlink</title>
            <link>http://tutorials.jenkov.com/javafx/hyperlink.html</link>
            <description>The JavaFX Hyperlink is a control that displays a text which can be clicked like a button, just like a link in a web page. Your JavaFX application can respond to clicks on a JavaFX Hyperlink, just like on a Button.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/hyperlink.html</guid>
            <pubDate>2019.05.25</pubDate>
        </item>
        <item>
            <title>Mem Ops BytesAllocatorAutoDefrag</title>
            <link>http://tutorials.jenkov.com/mem-ops-java/bytesallocatorautodefrag.html</link>
            <description>The Mem Ops BytesAllocatorAutoDefrag enables you to allocate smaller sections of a bigger byte array, and free them again. When freed, the BytesAllocatorAutoDefrag automatically defragments the free blocks of the bigger byte array.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/mem-ops-java/bytesallocatorautodefrag.html</guid>
            <pubDate>2019.05.12</pubDate>
        </item>
        <item>
            <title>Mem Ops</title>
            <link>http://tutorials.jenkov.com/mem-ops-java/searchIndex.html</link>
            <description>Mem Ops is a small open source toolkit which provides tools for memory management for Java applications that need to allocate and deallocate byte arrays or objects at a rapid pace.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/mem-ops-java/searchIndex.html</guid>
            <pubDate>2019.05.11</pubDate>
        </item>
        <item>
            <title>JavaFX Accordion</title>
            <link>http://tutorials.jenkov.com/javafx/accordion.html</link>
            <description>The JavaFX Accordion is a control which can contain several sections of content, each of which can be expanded and collapsed.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/accordion.html</guid>
            <pubDate>2019.04.29</pubDate>
        </item>
        <item>
            <title>Java Streams API</title>
            <link>http://tutorials.jenkov.com/java-functional-programming/streams.html</link>
            <description>The Java Streams API tutorial has been updated a bit, including a video version of part of the material now.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-functional-programming/streams.html</guid>
            <pubDate>2019.04.29</pubDate>
        </item>
        <item>
            <title>Java Streams API - Video Tutorial</title>
            <link>https://www.youtube.com/watch?v=bcrl-GL0vV4</link>
            <description>I have published a video about basics of the Java Streams API - for those who prefer a screencast over reading text.</description>
            <guid isPermaLink="true">https://www.youtube.com/watch?v=bcrl-GL0vV4</guid>
            <pubDate>2019.04.29</pubDate>
        </item>
        <item>
            <title>Java SimpleDateFormat</title>
            <link>http://tutorials.jenkov.com/java-internationalization/simpledateformat.html</link>
            <description>Java SimpleDateFormat tutorial updated. The SimpleDateFormat class is used to parse date strings into Date objects, and format Date objects into strings.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-internationalization/simpledateformat.html</guid>
            <pubDate>2019.04.23</pubDate>
        </item>
        <item>
            <title>JavaFX TitledPane</title>
            <link>http://tutorials.jenkov.com/javafx/titledpane.html</link>
            <description>The JavaFX TitledPane is a container control which displays a title above its content. The TitledPane can be collapsed and expanded to hide and show its content.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/titledpane.html</guid>
            <pubDate>2019.04.22</pubDate>
        </item>
        <item>
            <title>UTF-8</title>
            <link>http://tutorials.jenkov.com/unicode/utf-8.html</link>
            <description>UTF-8 is one of the most popular encodings used for Unicode characters. This UTF-8 tutorial explains how to encode and decode Unicode characters (code points) to and from UTF-8.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/unicode/utf-8.html</guid>
            <pubDate>2019.04.18</pubDate>
        </item>
        <item>
            <title>Unicode</title>
            <link>http://tutorials.jenkov.com/unicode/searchIndex.html</link>
            <description>Unicode is an international standard for how to represent characters of many different alphabets as bytes in a computer. This new unicode tutorial explains the basics of unicode.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/unicode/searchIndex.html</guid>
            <pubDate>2019.04.01</pubDate>
        </item>
        <item>
            <title>Data Streaming Storage Calculations</title>
            <link>http://tutorials.jenkov.com/data-streaming/storage.html</link>
            <description>When implementing data streaming it is useful to know how much storage the solution requires. This tutorial explains how to calculate (approximately) how much storage your data streaming solution will use.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/data-streaming/storage.html</guid>
            <pubDate>2019.04.01</pubDate>
        </item>
        <item>
            <title>Java Stack</title>
            <link>http://tutorials.jenkov.com/java-collections/stack.html</link>
            <description>I have updated my Java Stack tutorial. A Java Stack is a data structure where you push element on, and pop element off the top of the stack, like a stack of plates.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/stack.html</guid>
            <pubDate>2019.04.01</pubDate>
        </item>
        <item>
            <title>Software Elegance</title>
            <link>http://tutorials.jenkov.com/javafx/treetableview.html</link>
            <description>Following some feedback from readers I have added a few more sections and an example to my beginning trail on functional software elegance.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/treetableview.html</guid>
            <pubDate>2019.03.24</pubDate>
        </item>
        <item>
            <title>JavaFX TreeTableView</title>
            <link>http://tutorials.jenkov.com/javafx/treetableview.html</link>
            <description>The JavaFX TreeTableView enables you to display trees in JavaFX, and for each node in the tree you can have a row of column values displayed next to it.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/treetableview.html</guid>
            <pubDate>2019.03.24</pubDate>
        </item>
        <item>
            <title>JavaFX TreeView</title>
            <link>http://tutorials.jenkov.com/javafx/treeview.html</link>
            <description>The JavaFX TreeView enables you to display trees which can have the nodes expanded and collapsed inside your JavaFX applications.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/treeview.html</guid>
            <pubDate>2019.03.17</pubDate>
        </item>
        <item>
            <title>Java Collection Interface</title>
            <link>http://tutorials.jenkov.com/java-collections/collection.html</link>
            <description>I have updated my Java Collection interface tutorial. The Java Collection interface is one of the core interfaces in the Java Collections API.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/collection.html</guid>
            <pubDate>2019.03.17</pubDate>
        </item>
        <item>
            <title>Software Elegance</title>
            <link>http://tutorials.jenkov.com/software-elegance/searchIndex.html</link>
            <description>I have formalized my guiding sentence containing my three rules for achieving software elegance - functionally elegant software - in this latest tutorial touching the subject of usability.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/software-elegance/searchIndex.html</guid>
            <pubDate>2019.03.11</pubDate>
        </item>
        <item>
            <title>CSS Tutorial</title>
            <link>http://tutorials.jenkov.com/css/searchIndex.html</link>
            <description>I have updated my introduction to CSS as a starting point for updating several of the topics in the CSS tutorial.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/css/searchIndex.html</guid>
            <pubDate>2019.03.10</pubDate>
        </item>
        <item>
            <title>Java Arrays</title>
            <link>http://tutorials.jenkov.com/java/arrays.html</link>
            <description>A Java array is a collection of variables of the same data type which can be access individually, or traversed one by one. As part of my Java tutorial overhaul, I have given the Java Array tutorial an update too.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/arrays.html</guid>
            <pubDate>2019.03.06</pubDate>
        </item>
        <item>
            <title>New in Java 12</title>
            <link>http://tutorials.jenkov.com/java/searchIndex.html</link>
            <description>Java 12 is out soon, so I have updated the Java tutorial to list the new features in Java 12.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/searchIndex.html</guid>
            <pubDate>2019.03.04</pubDate>
        </item>
        <item>
            <title>Java JDBC Connection</title>
            <link>http://tutorials.jenkov.com/jdbc/connection.html</link>
            <description>A JDBC Connection is used to connect to a relational database from a Java application. I have updated the JDBC Connection tutorial to cover more of its core methods.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/jdbc/connection.html</guid>
            <pubDate>2019.02.27</pubDate>
        </item>
        <item>
            <title>Jackson JsonNode</title>
            <link>http://tutorials.jenkov.com/java-json/jackson-jsonnode.html</link>
            <description>The Jackson JsonNode is Jackson's tree model for representing dynamic JSON object graphs in a Java application. This Jackson JsonNode tutorial explains how to get and set fields etc. on a JsonNode.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-json/jackson-jsonnode.html</guid>
            <pubDate>2019.02.25</pubDate>
        </item>
        <item>
            <title>JavaFX TableView</title>
            <link>http://tutorials.jenkov.com/javafx/tableview.html</link>
            <description>The JavaFX TableView class is used to display tabular data inside a JavaFX application. In this JavaFX TableView tutorial I explain how to use the TableView.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/tableview.html</guid>
            <pubDate>2019.02.18</pubDate>
        </item>
        <item>
            <title>JDBC Tutorial</title>
            <link>http://tutorials.jenkov.com/jdbc/searchIndex.html</link>
            <description>I have updated the JDBC tutorial introduction quite a bit. Now it contains a list of popular relational databases, a full JDBC example, and a better explanation of what JDBC is intended for, among other things.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/jdbc/searchIndex.html</guid>
            <pubDate>2019.02.18</pubDate>
        </item>
        <item>
            <title>Joining Data Streams</title>
            <link>http://tutorials.jenkov.com/data-streaming/joining-data-streams.html</link>
            <description>Joining records from different data streams can be very useful, but also complicates your data streaming pipelines. This data stream joining tutorial explores what to look out for when joining data streams.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/data-streaming/joining-data-streams.html</guid>
            <pubDate>2019.02.10</pubDate>
        </item>
        <item>
            <title>Java Annotations</title>
            <link>http://tutorials.jenkov.com/java/annotations.html</link>
            <description>The Java Annotations tutorial has been updated, and a video version of the tutorial embedded.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/annotations.html</guid>
            <pubDate>2019.02.10</pubDate>
        </item>
        <item>
            <title>Jackson ObjectMapper - CBOR and MessagePack</title>
            <link>http://tutorials.jenkov.com/java-json/jackson-objectmapper.html</link>
            <description>The Jackson ObjectMapper can be used to read and write CBOR and MessagePack encoded data too - two compact binary data formats.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-json/jackson-objectmapper.html</guid>
            <pubDate>2019.01.31</pubDate>
        </item>
        <item>
            <title>JavaFX DirectoryChooser</title>
            <link>http://tutorials.jenkov.com/javafx/directorychooser.html</link>
            <description>The JavaFX DirectoryChooser is a dialog which enables the user to choose a directory. Your JavaFX application can then read what directory the user chose.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/directorychooser.html</guid>
            <pubDate>2019.01.24</pubDate>
        </item>
        <item>
            <title>Data Streaming Scalability</title>
            <link>http://tutorials.jenkov.com/data-streaming/scalability.html</link>
            <description>Scaling a data stream up is easy, but once you scale it out, certain distribution effects need to be taken into consideration.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/data-streaming/scalability.html</guid>
            <pubDate>2019.01.21</pubDate>
        </item>
        <item>
            <title>Java 11 Features</title>
            <link>http://tutorials.jenkov.com/java/searchIndex.html</link>
            <description>I have added a list of the most important Java 11 features to my Java tutorial introduction.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/searchIndex.html</guid>
            <pubDate>2019.01.14</pubDate>
        </item>
        <item>
            <title>Java Iterator</title>
            <link>http://tutorials.jenkov.com/java-collections/iterator.html</link>
            <description>The Java Iterator tutorial has been updated with information about the ConcurrentModificationException and remove() method.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/iterator.html</guid>
            <pubDate>2019.01.14</pubDate>
        </item>
        <item>
            <title>Java Try With Resources</title>
            <link>http://tutorials.jenkov.com/java-exception-handling/try-with-resources.html</link>
            <description>The Java Try With Resources tutorial has been improved a lot. It explains how to have resources automatically closed after use, when used inside a Java try-with-resources construct.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-exception-handling/try-with-resources.html</guid>
            <pubDate>2019.01.05</pubDate>
        </item>
        <item>
            <title>Data Streaming Products</title>
            <link>http://tutorials.jenkov.com/data-streaming/products.html</link>
            <description>I have compiled a list of data streaming products, and shortly explained what categories of products they belong to.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/data-streaming/products.html</guid>
            <pubDate>2019.01.02</pubDate>
        </item>
        <item>
            <title>JavaFX Scene</title>
            <link>http://tutorials.jenkov.com/javafx/scene.html</link>
            <description>The JavaFX Scene object represents the root of the content area of a JavaFX Stage (application window).</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/scene.html</guid>
            <pubDate>2019.01.01</pubDate>
        </item>
        <item>
            <title>JavaFX Stage</title>
            <link>http://tutorials.jenkov.com/javafx/stage.html</link>
            <description>The JavaFX Stage object represents an application window in a JavaFX application.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/stage.html</guid>
            <pubDate>2018.12.25</pubDate>
        </item>
        <item>
            <title>Java Functional Composition</title>
            <link>http://tutorials.jenkov.com/java-functional-programming/functional-composition.html</link>
            <description>Functional composition in Java enables you to compose new functions by combining existing functions into a single, new function.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-functional-programming/functional-composition.html</guid>
            <pubDate>2018.12.10</pubDate>
        </item>
        <item>
            <title>Data Streaming</title>
            <link>http://tutorials.jenkov.com/data-streaming/searchIndex.html</link>
            <description>Data Streaming is a data distribution technique where data producers write data records into an ordered data stream from which data consumers can read the records in the same order.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/data-streaming/searchIndex.html</guid>
            <pubDate>2018.12.06</pubDate>
        </item>
        <item>
            <title>Java Stream API</title>
            <link>http://tutorials.jenkov.com/java-functional-programming/streams.html</link>
            <description>The Java Stream API provides a functional approach to processing streams of objects - also known as functional stream processing.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-functional-programming/streams.html</guid>
            <pubDate>2018.11.11</pubDate>
        </item>
        <item>
            <title>Java ExecutorService</title>
            <link>http://tutorials.jenkov.com/java-util-concurrent/java-future.html</link>
            <description>The Java ExecutorService can execute tasks concurrently in separate threads. I have added information about how to cancel tasks, plus a few other changes.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-util-concurrent/java-future.html</guid>
            <pubDate>2018.10.29</pubDate>
        </item>
        <item>
            <title>Java Future</title>
            <link>http://tutorials.jenkov.com/java-util-concurrent/java-future.html</link>
            <description>The Java Future interface represents the result of a task that is executed concurrently, for instance by a Java ExecutorService.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-util-concurrent/java-future.html</guid>
            <pubDate>2018.10.29</pubDate>
        </item>
        <item>
            <title>Java Callable</title>
            <link>http://tutorials.jenkov.com/java-util-concurrent/java-callable.html</link>
            <description>The Java Callable interface represents a task that can be executed concurrently, for instance by a Java ExecutorService.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-util-concurrent/java-callable.html</guid>
            <pubDate>2018.10.29</pubDate>
        </item>
        <item>
            <title>JavaFX WebView</title>
            <link>http://tutorials.jenkov.com/javafx/webview.html</link>
            <description>The JavaFX WebView enables you to embed web pages or web applications inside your JavaFX applications. A handy way to combine web and desktop apps!</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/webview.html</guid>
            <pubDate>2018.10.22</pubDate>
        </item>
        <item>
            <title>Java Ternary Operator</title>
            <link>http://tutorials.jenkov.com/java/ternary-operator.html</link>
            <description>I had completely forgotten the Java ternary operator in my basic Java tutorial! Well - now it is included.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/ternary-operator.html</guid>
            <pubDate>2018.10.12</pubDate>
        </item>
        <item>
            <title>New in Java 10</title>
            <link>http://tutorials.jenkov.com/java/searchIndex.html</link>
            <description>Did you miss what was new in Java 10? The Java tutorial has been updated to list the most important changes.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/searchIndex.html</guid>
            <pubDate>2018.10.03</pubDate>
        </item>
        <item>
            <title>Java List</title>
            <link>http://tutorials.jenkov.com/java-collections/list.html</link>
            <description>The Java List tutorial has received a major round of improvements! More will come in a near future.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/list.html</guid>
            <pubDate>2018.10.03</pubDate>
        </item>
        <item>
            <title>Java Set</title>
            <link>http://tutorials.jenkov.com/java-collections/set.html</link>
            <description>The Java Set tutorial has been updated extensively! More to come soon!</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/set.html</guid>
            <pubDate>2018.10.03</pubDate>
        </item>
        <item>
            <title>Acme4J Tutorial</title>
            <link>http://tutorials.jenkov.com/acme4j/searchIndex.html</link>
            <description>Acme4J is a Java toolkit for obtaining automatically issued free TLS / SSL certificates from the Let's Encrypt Certificate Authority.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/acme4j/searchIndex.html</guid>
            <pubDate>2018.09.17</pubDate>
        </item>
        <item>
            <title>Java Map</title>
            <link>http://tutorials.jenkov.com/java-collections/map.html</link>
            <description>Java Map deep dive! Big round of updates. Notice especially the functional operations added in Java 8.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-collections/map.html</guid>
            <pubDate>2018.09.10</pubDate>
        </item>
        <item>
            <title>Java Functional Interfaces</title>
            <link>http://tutorials.jenkov.com/java-functional-programming/functional-interfaces.html</link>
            <description>Java 8 comes with a set of built-in functional interfaces which can be used with e.g. the Streams API. This tutorial explains some of the core functional interfaces in Java.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-functional-programming/functional-interfaces.html</guid>
            <pubDate>2018.09.03</pubDate>
        </item>
        <item>
            <title>Maven Java Compiler Version</title>
            <link>http://tutorials.jenkov.com/maven/java-compiler.html</link>
            <description>You pretty much always have to set the Java compiler in your Maven POM files. Now the Maven tutorial explains how.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/maven/java-compiler.html</guid>
            <pubDate>2018.08.19</pubDate>
        </item>
        <item>
            <title>Java Interfaces</title>
            <link>http://tutorials.jenkov.com/java/interfaces.html</link>
            <description>Java interfaces can contain static methods. I have extended my Java interfaces tutorial to include that.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/interfaces.html</guid>
            <pubDate>2018.08.18</pubDate>
        </item>
        <item>
            <title>Higher Order Functions in Java</title>
            <link>http://tutorials.jenkov.com/java-functional-programming/higher-order-functions.html</link>
            <description>I have extended the Java functional programming tutorial with a text explaining higher order functions and giving examples in Java.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-functional-programming/higher-order-functions.html</guid>
            <pubDate>2018.08.01</pubDate>
        </item>
        <item>
            <title>Java Functional Programming</title>
            <link>http://tutorials.jenkov.com/java-functional-programming/searchIndex.html</link>
            <description>I have started a new tutorial series on Java functional programming. Basic concepts explained. More will come.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-functional-programming/searchIndex.html</guid>
            <pubDate>2018.08.01</pubDate>
        </item>
        <item>
            <title>Java Enum</title>
            <link>http://tutorials.jenkov.com/java/enums.html</link>
            <description>The Java enum tutorial has been updated with several new sections, including a video version.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/enums.html</guid>
            <pubDate>2018.06.04</pubDate>
        </item>
        <item>
            <title>Java Lambda Expressions</title>
            <link>http://tutorials.jenkov.com/java/lambda-expressions.html</link>
            <description>The Java lambda expression tutorial has been updated quite a bit, and now includes a video version too.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/lambda-expressions.html</guid>
            <pubDate>2018.05.27</pubDate>
        </item>
        <item>
            <title>JavaFX FileChooser</title>
            <link>http://tutorials.jenkov.com/javafx/filechooser.html</link>
            <description>A JavaFX FileChooser is a dialog that enables the user to select one or more files via a file explorer from the user's local computer.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/filechooser.html</guid>
            <pubDate>2018.03.31</pubDate>
        </item>
        <item>
            <title>JavaFX ToolTip</title>
            <link>http://tutorials.jenkov.com/javafx/tooltip.html</link>
            <description>JavaFX ToolTip is a small popup with explanatory text shown when a user hovers the mouse over a JavaFX control. </description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/tooltip.html</guid>
            <pubDate>2018.03.31</pubDate>
        </item>
        <item>
            <title>JavaFX ToolBar</title>
            <link>http://tutorials.jenkov.com/javafx/toolbar.html</link>
            <description>JavaFX ToolBar is a horizontal or vertical bar of buttons and other JavaFX components typically used to select or interact with different tools. </description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/toolbar.html</guid>
            <pubDate>2018.03.29</pubDate>
        </item>
        <item>
            <title>JavaFX FXML</title>
            <link>http://tutorials.jenkov.com/javafx/fxml.html</link>
            <description>JavaFX FXML is an XML format used to compose JavaFX GUIs in a way similar to how you compose web GUIs with HTML. </description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/fxml.html</guid>
            <pubDate>2018.03.19</pubDate>
        </item>
        <item>
            <title>Java volatile</title>
            <link>http://tutorials.jenkov.com/java-concurrency/volatile.html</link>
            <description>The Java volatile tutorial has been updated, so the visibility and happens-before guarantee is more properly explained.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/volatile.html</guid>
            <pubDate>2018.03.12</pubDate>
        </item>
        <item>
            <title>Java Modules</title>
            <link>http://tutorials.jenkov.com/java/modules.html</link>
            <description>The biggest addition to Java 9 is the Java Platform Module System which brings better modularity to Java. This Java modules tutorial explains how modules work.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/modules.html</guid>
            <pubDate>2018.02.28</pubDate>
        </item>
        <item>
            <title>JavaFX MenuBar</title>
            <link>http://tutorials.jenkov.com/javafx/menubar.html</link>
            <description>The JavaFX MenuBar adds a top menu to a JavaFX application, just like you are used to from desktop applications.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/menubar.html</guid>
            <pubDate>2018.02.19</pubDate>
        </item>
        <item>
            <title>Java Certificate</title>
            <link>http://tutorials.jenkov.com/java-cryptography/certificate.html</link>
            <description>The Java Certificate class represents a cryptographic identity certificate, possibly signed by a Certificate Authority (CA).</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-cryptography/certificate.html</guid>
            <pubDate>2018.02.12</pubDate>
        </item>
        <item>
            <title>Java KeyPair</title>
            <link>http://tutorials.jenkov.com/java-cryptography/keypair.html</link>
            <description>The Java KeyPair class represents a public key, private key pair used in asymmetric encryption (e.g. RSA).</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-cryptography/keypair.html</guid>
            <pubDate>2018.02.10</pubDate>
        </item>
        <item>
            <title>Java KeyPairGenerator</title>
            <link>http://tutorials.jenkov.com/java-cryptography/keypairgenerator.html</link>
            <description>The Java KeyPairGenerator can generate asymmetric encryption key pairs (public key, private key). This Java KeyPairGenerator tutorial explains how to use the KeyPairGenerator class.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-cryptography/keypairgenerator.html</guid>
            <pubDate>2018.01.24</pubDate>
        </item>
        <item>
            <title>Java KeyGenerator</title>
            <link>http://tutorials.jenkov.com/java-cryptography/keygenerator.html</link>
            <description>The Java KeyGenerator can generate symmetric encryption keys. This Java KeyGenerator tutorial explains how to use the KeyGenerator class.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-cryptography/keygenerator.html</guid>
            <pubDate>2018.01.23</pubDate>
        </item>
        <item>
            <title>Java Signature</title>
            <link>http://tutorials.jenkov.com/java-cryptography/signature.html</link>
            <description>The Java Signature class can create digital signatures from binary data. This Java Signature tutorial explains how to create and verify digital signatures.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-cryptography/signature.html</guid>
            <pubDate>2017.12.20</pubDate>
        </item>
        <item>
            <title>Java Keytool</title>
            <link>http://tutorials.jenkov.com/java-cryptography/keytool.html</link>
            <description>The Java Keytool is a command line tool that can work with Java KeyStore files - e.g. generate key pairs into a KeyStore, import / export certificates etc.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-cryptography/keytool.html</guid>
            <pubDate>2017.12.19</pubDate>
        </item>
        <item>
            <title>Java MessageDigest</title>
            <link>http://tutorials.jenkov.com/java-cryptography/messagedigest.html</link>
            <description>The Java MessageDigest class can calculate a message digest (cryptographic hash value) from a block of data.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-cryptography/messagedigest.html</guid>
            <pubDate>2017.12.18</pubDate>
        </item>
        <item>
            <title>Java Cipher</title>
            <link>http://tutorials.jenkov.com/java-cryptography/cipher.html</link>
            <description>The Java Cipher class represents an encryption algorithm and can encrypt and decrypt data.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-cryptography/cipher.html</guid>
            <pubDate>2017.12.05</pubDate>
        </item>
        <item>
            <title>Java KeyStore</title>
            <link>http://tutorials.jenkov.com/java-cryptography/keystore.html</link>
            <description>The Java KeyStore is an encrypted, password protected store for encryption keys.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-cryptography/keystore.html</guid>
            <pubDate>2017.11.30</pubDate>
        </item>
        <item>
            <title>Java Cryptography</title>
            <link>http://tutorials.jenkov.com/java-cryptography/searchIndex.html</link>
            <description>The first part of a new Java Cryptography tutorial has been released!</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-cryptography/searchIndex.html</guid>
            <pubDate>2017.11.27</pubDate>
        </item>
        <item>
            <title>Java Regex - Updated</title>
            <link>http://tutorials.jenkov.com/java-regex/searchIndex.html</link>
            <description>The Java Regex (regular expressions) tutorial has been updated to better introduce how regular expressions work.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-regex/searchIndex.html</guid>
            <pubDate>2017.11.13</pubDate>
        </item>
        <item>
            <title>Java String - Updated</title>
            <link>http://tutorials.jenkov.com/java/strings.html</link>
            <description>The Java String tutorial has been updated with explanations of its regular expression methods.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/strings.html</guid>
            <pubDate>2017.11.13</pubDate>
        </item>
        <item>
            <title>Jackson ObjectMapper - Updated</title>
            <link>http://tutorials.jenkov.com/java-json/jackson-objectmapper.html</link>
            <description>The Jackson ObjectMapper tutorial (Java JSON toolkit) has received a major update!</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-json/jackson-objectmapper.html</guid>
            <pubDate>2017.11.07</pubDate>
        </item>
        <item>
            <title>Netty ChannelPipeline</title>
            <link>http://tutorials.jenkov.com/netty/netty-channelpipeline.html</link>
            <description>The Netty ChannelPipeline contains ChannelHandlers that process incoming and outgoing data from sockets.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/netty/netty-channelpipeline.html</guid>
            <pubDate>2017.10.31</pubDate>
        </item>
        <item>
            <title>Netty TCP client</title>
            <link>http://tutorials.jenkov.com/netty/netty-tcp-client.html</link>
            <description>This tutorial explains how to create a TCP client with Netty.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/netty/netty-tcp-client.html</guid>
            <pubDate>2017.10.26</pubDate>
        </item>
        <item>
            <title>Netty TCP Server</title>
            <link>http://tutorials.jenkov.com/netty/netty-tcp-server.html</link>
            <description>This tutorial explains how to create a TCP server with Netty.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/netty/netty-tcp-server.html</guid>
            <pubDate>2017.10.23</pubDate>
        </item>
        <item>
            <title>Netty Overview</title>
            <link>http://tutorials.jenkov.com/netty/overview.html</link>
            <description>An overview of Netty for developers getting started with Netty.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/netty/overview.html</guid>
            <pubDate>2017.10.16</pubDate>
        </item>
        <item>
            <title>Riot.js Conditionals</title>
            <link>http://tutorials.jenkov.com/riotjs/conditionals.html</link>
            <description>Riot.js conditionals can show, hide or remove HTML elements depending on the condition specified.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/riotjs/conditionals.html</guid>
            <pubDate>2017.05.27</pubDate>
        </item>
        <item>
            <title>Riot.js Expressions</title>
            <link>http://tutorials.jenkov.com/riotjs/expressions.html</link>
            <description>Riot.js expressions enable you to generate HTML based on JavaScript variables. This tutorial was just updated.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/riotjs/expressions.html</guid>
            <pubDate>2017.05.16</pubDate>
        </item>
        <item>
            <title>Riot.js</title>
            <link>http://tutorials.jenkov.com/riotjs/searchIndex.html</link>
            <description>Riot.js is a small JavaScript web framework centered around the ideas of React.js and web components.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/riotjs/searchIndex.html</guid>
            <pubDate>2017.04.24</pubDate>
        </item>
        <item>
            <title>ION Specification</title>
            <link>http://tutorials.jenkov.com/ion/searchIndex.html</link>
            <description>ION is a fast, compact, versatile binary data format similar to binary JSON.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/ion/searchIndex.html</guid>
            <pubDate>2017.03.01</pubDate>
        </item>
        <item>
            <title>Java GZIPOutputStream Tutorial</title>
            <link>http://tutorials.jenkov.com/java-zip/gzipoutputstream.html</link>
            <description>The Java GZIPOutputStream class can GZIP compress data and write it to an OutputStream.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-zip/gzipoutputstream.html</guid>
            <pubDate>2017.01.16</pubDate>
        </item>
        <item>
            <title>Java GZIPInputStream Tutorial</title>
            <link>http://tutorials.jenkov.com/java-zip/gzipinputstream.html</link>
            <description>The Java GZIPInputStream class can read a GZIP compressed file as a normal InputStream - decompressed.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-zip/gzipinputstream.html</guid>
            <pubDate>2017.01.11</pubDate>
        </item>
        <item>
            <title>Java ZipFile Tutorial</title>
            <link>http://tutorials.jenkov.com/java-zip/zipfile.html</link>
            <description>The Java ZipFile class can read files contained in a ZIP file. This tutorial explains how to use the ZipFile class.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-zip/zipfile.html</guid>
            <pubDate>2016.12.20</pubDate>
        </item>
        <item>
            <title>ModRun Tutorial</title>
            <link>http://tutorials.jenkov.com/modrun/searchIndex.html</link>
            <description>ModRun brings modularity to Java without project Jigsaw. Load classes directly from Maven repositories!</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/modrun/searchIndex.html</guid>
            <pubDate>2016.11.21</pubDate>
        </item>
        <item>
            <title>Race Conditions - Fixed!</title>
            <link>http://tutorials.jenkov.com/java-concurrency/race-conditions-and-critical-sections.html</link>
            <description>A significant error at the end of this articles was fixed.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/race-conditions-and-critical-sections.html</guid>
            <pubDate>2016.09.11</pubDate>
        </item>
        <item>
            <title>JavaFX StackedAreaChart</title>
            <link>http://tutorials.jenkov.com/javafx/stackedareachart.html</link>
            <description>The JavaFX StackedAreaChart component can stacked draw area charts inside your JavaFX applications.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/stackedareachart.html</guid>
            <pubDate>2016.05.29</pubDate>
        </item>
        <item>
            <title>JavaFX AreaChart</title>
            <link>http://tutorials.jenkov.com/javafx/areachart.html</link>
            <description>The JavaFX AreaChart component can draw area charts inside your JavaFX applications.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/areachart.html</guid>
            <pubDate>2016.05.29</pubDate>
        </item>
        <item>
            <title>JavaFX LineChart</title>
            <link>http://tutorials.jenkov.com/javafx/linechart.html</link>
            <description>The JavaFX LineChart component can draw line charts inside your JavaFX applications.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/linechart.html</guid>
            <pubDate>2016.05.28</pubDate>
        </item>
        <item>
            <title>JavaFX ScatterChart</title>
            <link>http://tutorials.jenkov.com/javafx/scatterchart.html</link>
            <description>The JavaFX ScatterChart component can draw scatter charts inside your JavaFX applications.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/scatterchart.html</guid>
            <pubDate>2016.05.28</pubDate>
        </item>
        <item>
            <title>JavaFX StackedBarChart</title>
            <link>http://tutorials.jenkov.com/javafx/stackedbarchart.html</link>
            <description>The JavaFX StackedBarChart component can draw stacked bar charts inside your JavaFX applications.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/stackedbarchart.html</guid>
            <pubDate>2016.05.27</pubDate>
        </item>
        <item>
            <title>JavaFX BarChart</title>
            <link>http://tutorials.jenkov.com/javafx/barchart.html</link>
            <description>The JavaFX BarChart component can draw bar charts inside your JavaFX applications.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/barchart.html</guid>
            <pubDate>2016.05.26</pubDate>
        </item>
        <item>
            <title>JavaFX PieChart</title>
            <link>http://tutorials.jenkov.com/javafx/piechart.html</link>
            <description>The JavaFX PieChart component can draw pie charts inside your JavaFX applications.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/piechart.html</guid>
            <pubDate>2016.05.25</pubDate>
        </item>
        <item>
            <title>Maven Unit Test Report</title>
            <link>http://tutorials.jenkov.com/maven/maven-unit-test-report.html</link>
            <description>This tutorial explains how to generate unit test reports with Maven and the Surefire plugin.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/maven/maven-unit-test-report.html</guid>
            <pubDate>2016.05.24</pubDate>
        </item>
        <item>
            <title>JavaFX GridPane</title>
            <link>http://tutorials.jenkov.com/javafx/gridpane.html</link>
            <description>The JavaFX GridPane can layout components in a grid. Each component can span multiple rows and columns.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/gridpane.html</guid>
            <pubDate>2016.05.24</pubDate>
        </item>
        <item>
            <title>JavaFX TilePane</title>
            <link>http://tutorials.jenkov.com/javafx/tilepane.html</link>
            <description>The JavaFX TilePane can layout components in a horizontal or vertical grid of equally sized tiles.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/tilepane.html</guid>
            <pubDate>2016.05.23</pubDate>
        </item>
        <item>
            <title>JavaFX FlowPane</title>
            <link>http://tutorials.jenkov.com/javafx/flowpane.html</link>
            <description>The JavaFX FlowPane can layout components in a horizontal or vertical flow, breaking onto next line when there is no more space in the width or height.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/flowpane.html</guid>
            <pubDate>2016.05.22</pubDate>
        </item>
        <item>
            <title>JavaFX Group</title>
            <link>http://tutorials.jenkov.com/javafx/group.html</link>
            <description>The JavaFX Group component groups a set of JavaFX components together so effects and transformations can be applied to the components as a group.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/group.html</guid>
            <pubDate>2016.05.21</pubDate>
        </item>
        <item>
            <title>Butterfly DI Container</title>
            <link>http://tutorials.jenkov.com/butterfly-container/searchIndex.html</link>
            <description>The documentation for Butterfly DI Container has been published on this tutorial website.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/butterfly-container/searchIndex.html</guid>
            <pubDate>2016.05.20</pubDate>
        </item>
        <item>
            <title>JavaFX TextArea</title>
            <link>http://tutorials.jenkov.com/javafx/textarea.html</link>
            <description>JavaFX TextArea enables the user to enter a text that spans multiple lines.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/textarea.html</guid>
            <pubDate>2016.05.19</pubDate>
        </item>
        <item>
            <title>JavaFX PasswordField</title>
            <link>http://tutorials.jenkov.com/javafx/passwordfield.html</link>
            <description>JavaFX PasswordField enables the user to enter a password. The PasswordField hides what is entered - showing circles instead of characters.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/passwordfield.html</guid>
            <pubDate>2016.05.19</pubDate>
        </item>
        <item>
            <title>JavaFX DatePicker</title>
            <link>http://tutorials.jenkov.com/javafx/datepicker.html</link>
            <description>JavaFX DatePicker enables the user to enter a date or choose a date from a wizard-like popup dialog.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/datepicker.html</guid>
            <pubDate>2016.05.18</pubDate>
        </item>
        <item>
            <title>JavaFX ListView</title>
            <link>http://tutorials.jenkov.com/javafx/listview.html</link>
            <description>JavaFX ListView enables the user to choose a value from a predefined list of choices.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/listview.html</guid>
            <pubDate>2016.05.18</pubDate>
        </item>
        <item>
            <title>JavaFX ComboBox</title>
            <link>http://tutorials.jenkov.com/javafx/combobox.html</link>
            <description>JavaFX ComboBox enables the user to choose a value from a predefined list of choices or type in a value of the user's own choice.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/combobox.html</guid>
            <pubDate>2016.05.17</pubDate>
        </item>
        <item>
            <title>JavaFX ChoiceBox</title>
            <link>http://tutorials.jenkov.com/javafx/choicebox.html</link>
            <description>JavaFX ChoiceBox enables the user to choose a value from a predefined list of choices.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/choicebox.html</guid>
            <pubDate>2016.05.17</pubDate>
        </item>
        <item>
            <title>JavaFX CheckBox</title>
            <link>http://tutorials.jenkov.com/javafx/checkbox.html</link>
            <description>JavaFX CheckBox is a button that can be either selected, not selected or in an indeterminate state.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/checkbox.html</guid>
            <pubDate>2016.05.16</pubDate>
        </item>
        <item>
            <title>JavaFX RadioButton</title>
            <link>http://tutorials.jenkov.com/javafx/radiobutton.html</link>
            <description>JavaFX RadioButton is a button that can be either selected or not selected. As part of a toggle group only one RadioButton in the group can be selected.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/radiobutton.html</guid>
            <pubDate>2016.05.16</pubDate>
        </item>
        <item>
            <title>JavaFX ToggleButton</title>
            <link>http://tutorials.jenkov.com/javafx/togglebutton.html</link>
            <description>JavaFX ToggleButton is a button that can be either pressed or not pressed, and can be part of a toggle group (group of toggle buttons).</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/togglebutton.html</guid>
            <pubDate>2016.05.16</pubDate>
        </item>
        <item>
            <title>JavaFX MenuButton</title>
            <link>http://tutorials.jenkov.com/javafx/menubutton.html</link>
            <description>JavaFX MenuButton can display a list of menu items (options) the user can choose from, like a drop down menu.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/menubutton.html</guid>
            <pubDate>2016.05.15</pubDate>
        </item>
        <item>
            <title>JavaFX VBox</title>
            <link>http://tutorials.jenkov.com/javafx/vbox.html</link>
            <description>JavaFX VBox is a layout component which positions all its nested nodes (controls) in a vertical row.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/vbox.html</guid>
            <pubDate>2016.05.15</pubDate>
        </item>
        <item>
            <title>JavaFX HBox</title>
            <link>http://tutorials.jenkov.com/javafx/hbox.html</link>
            <description>JavaFX HBox is a layout component which positions all its nested nodes (controls) in a horizontal row.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/hbox.html</guid>
            <pubDate>2016.05.14</pubDate>
        </item>
        <item>
            <title>JavaFX TextField</title>
            <link>http://tutorials.jenkov.com/javafx/textview.html</link>
            <description>JavaFX ImageField enables a user to enter text which can then be read by the JavaFX application.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/textview.html</guid>
            <pubDate>2016.05.14</pubDate>
        </item>
        <item>
            <title>JavaFX ImageView</title>
            <link>http://tutorials.jenkov.com/javafx/imageview.html</link>
            <description>JavaFX ImageView can display images inside a JavaFX application. They can also be used inside labels and buttons.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/imageview.html</guid>
            <pubDate>2016.05.13</pubDate>
        </item>
        <item>
            <title>JavaFX Button</title>
            <link>http://tutorials.jenkov.com/javafx/button.html</link>
            <description>JavaFX buttons enables an application to react when the user clicks the button.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/button.html</guid>
            <pubDate>2016.05.13</pubDate>
        </item>
        <item>
            <title>JavaFX Label</title>
            <link>http://tutorials.jenkov.com/javafx/label.html</link>
            <description>JavaFX labels can display text and images inside a JavaFX application.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/label.html</guid>
            <pubDate>2016.05.13</pubDate>
        </item>
        <item>
            <title>Your First JavaFX Application</title>
            <link>http://tutorials.jenkov.com/javafx/your-first-javafx-application.html</link>
            <description>This text how to create a basic JavaFX application, so you can start playing with it.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/your-first-javafx-application.html</guid>
            <pubDate>2016.05.12</pubDate>
        </item>
        <item>
            <title>JavaFX Overview</title>
            <link>http://tutorials.jenkov.com/javafx/overview.html</link>
            <description>This text gives an overview of the JavaFX platform and how JavaFX applications are structured.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/overview.html</guid>
            <pubDate>2016.05.12</pubDate>
        </item>
        <item>
            <title>JavaFX Tutorial Started</title>
            <link>http://tutorials.jenkov.com/javafx/searchIndex.html</link>
            <description>JavaFX is an impressive GUI toolkit for Java which replaces Java Swing as recommended GUI platform.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/javafx/searchIndex.html</guid>
            <pubDate>2016.05.12</pubDate>
        </item>
        <item>
            <title>Same-threading</title>
            <link>http://tutorials.jenkov.com/java-concurrency/same-threading.html</link>
            <description>A same-threaded system that scales a single-threaded design out on multiple CPUs.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-concurrency/same-threading.html</guid>
            <pubDate>2016.04.27</pubDate>
        </item>
        <item>
            <title>Micro Batching</title>
            <link>http://tutorials.jenkov.com/java-performance/micro-batching.html</link>
            <description>Micro batching is a technique that groups tasks into small batches to gain some of the throughput advantages of batching without sacrificing latency too much.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-performance/micro-batching.html</guid>
            <pubDate>2016.04.11</pubDate>
        </item>
        <item>
            <title>Java High Performance Read Patterns</title>
            <link>http://tutorials.jenkov.com/java-performance/read-patterns.html</link>
            <description>This tutorial covers 4 common data read patterns in Java and discusses their performance.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-performance/read-patterns.html</guid>
            <pubDate>2016.03.14</pubDate>
        </item>
        <item>
            <title>Learning is Hard, But Don't Give Up</title>
            <link>http://tutorials.jenkov.com/software-as-career/learning-is-hard.html</link>
            <description>Learning new topics can often be hard and frustrating. In this article I explain how I face the challenge of learning.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/software-as-career/learning-is-hard.html</guid>
            <pubDate>2016.03.11</pubDate>
        </item>
        <item>
            <title>Standard Deviation</title>
            <link>http://tutorials.jenkov.com/mathematical-analysis/standard-deviation.html</link>
            <description>The standard deviation of a data set is calculated as the square root of the variance. This standard deviation tutorial explains how to calculate standard deviation of a data set.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/mathematical-analysis/standard-deviation.html</guid>
            <pubDate>2016.03.09</pubDate>
        </item>
        <item>
            <title>Variance</title>
            <link>http://tutorials.jenkov.com/mathematical-analysis/variance.html</link>
            <description>The variance of a data set is a measure of how much the observations in the data set deviate from the mean value of the data set. Variance is also used as base for calculating standard deviation.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/mathematical-analysis/variance.html</guid>
            <pubDate>2016.03.08</pubDate>
        </item>
        <item>
            <title>Mean Deviation</title>
            <link>http://tutorials.jenkov.com/mathematical-analysis/mean-deviation.html</link>
            <description>The mean deviation tells how the observations of a data set are distributed around the mean value of the data set.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/mathematical-analysis/mean-deviation.html</guid>
            <pubDate>2016.03.07</pubDate>
        </item>
        <item>
            <title>Frequency Distribution</title>
            <link>http://tutorials.jenkov.com/mathematical-analysis/frequency-distribution.html</link>
            <description>The frequency distribution of a data set shows the number of occurrences of each value.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/mathematical-analysis/frequency-distribution.html</guid>
            <pubDate>2016.03.04</pubDate>
        </item>
        <item>
            <title>Range of a Data Set</title>
            <link>http://tutorials.jenkov.com/mathematical-analysis/range.html</link>
            <description>The range of a data set is the difference between the highest and the lowest value. This tutorial explains range with an example.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/mathematical-analysis/range.html</guid>
            <pubDate>2016.03.02</pubDate>
        </item>
        <item>
            <title>Mode of a Data Set</title>
            <link>http://tutorials.jenkov.com/mathematical-analysis/mode.html</link>
            <description>The mode of a data set is the most frequently occurring value. This tutorial explains mode with an example.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/mathematical-analysis/mode.html</guid>
            <pubDate>2016.03.02</pubDate>
        </item>
        <item>
            <title>Mathematical Analysis</title>
            <link>http://tutorials.jenkov.com/mathematical-analysis/searchIndex.html</link>
            <description>We have started a tutorial about mathematical analysis which is a core part of data science.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/mathematical-analysis/searchIndex.html</guid>
            <pubDate>2016.03.01</pubDate>
        </item>
        <item>
            <title>Java JSON Tutorial - Part 2</title>
            <link>http://tutorials.jenkov.com/java-json/searchIndex.html</link>
            <description>We have now completed another big round of updates to our Java JSON tutorial.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-json/searchIndex.html</guid>
            <pubDate>2016.02.23</pubDate>
        </item>
        <item>
            <title>GSON JsonParser</title>
            <link>http://tutorials.jenkov.com/java-json/gson-jsonparser.html</link>
            <description>The GSON JsonParser can parse a JSON string or stream into a Java object tree structure.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-json/gson-jsonparser.html</guid>
            <pubDate>2016.02.19</pubDate>
        </item>
        <item>
            <title>GSON Tutorial Updated</title>
            <link>http://tutorials.jenkov.com/java-json/gson.html</link>
            <description>The GSON tutorial has been updated with sections about custom serializers, deserializers and how to include null fields in the generated JSON.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-json/gson.html</guid>
            <pubDate>2016.02.15</pubDate>
        </item>
        <item>
            <title>GSON JsonReader</title>
            <link>http://tutorials.jenkov.com/java/gson-jsonreader.html</link>
            <description>A short introduction to GSON's pull parser for parsing JSON. GSON is Google's Java JSON API.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java/gson-jsonreader.html</guid>
            <pubDate>2016.02.18</pubDate>
        </item>
        <item>
            <title>IapObjectWriter Tutorial Updated</title>
            <link>http://tutorials.jenkov.com/iap-tools-java/ionobjectwriter.html</link>
            <description>Information added about how to use different field names in, or exclude fields from ION serialization.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/iap-tools-java/ionobjectwriter.html</guid>
            <pubDate>2016.02.16</pubDate>
        </item>
        <item>
            <title>IapObjectWriter Tutorial Updated</title>
            <link>http://tutorials.jenkov.com/iap-tools-java/ionobjectwriter.html</link>
            <description>Information added about how to use different field names in, or exclude fields from ION serialization.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/iap-tools-java/ionobjectwriter.html</guid>
            <pubDate>2016.02.16</pubDate>
        </item>
        <item>
            <title>GSON Tutorial Updated</title>
            <link>http://tutorials.jenkov.com/java-json/gson.html</link>
            <description>The GSON tutorial has been updated with information about how to exclude fields from serialization / deserialization, pretty printing JSON etc.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-json/gson.html</guid>
            <pubDate>2016.02.15</pubDate>
        </item>
        <item>
            <title>HTML5 Local Storage Updated</title>
            <link>http://tutorials.jenkov.com/html5/local-storage.html</link>
            <description>The HTML5 local storage tutorial has been extended and polished.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/html5/local-storage.html</guid>
            <pubDate>2016.02.09</pubDate>
        </item>
        <item>
            <title>JCTools Introduction</title>
            <link>http://tutorials.jenkov.com/jctools/searchIndex.html</link>
            <description>JCTools contains a set of high performance, non-blocking concurrent data structures missing in core Java.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/jctools/searchIndex.html</guid>
            <pubDate>2016.02.02</pubDate>
        </item>
        <item>
            <title>Chronicle Introduction</title>
            <link>http://tutorials.jenkov.com/chronicle/searchIndex.html</link>
            <description>Chronicle is a suite of high performance libraries to make it easier to process data in low latency, high throughput environments.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/chronicle/searchIndex.html</guid>
            <pubDate>2016.02.01</pubDate>
        </item>
        <item>
            <title>ION - Fast Binary Data Format</title>
            <link>http://tutorials.jenkov.com/iap/ion-design-goals.html</link>
            <description>ION is a new, binary data format. ION is the default data format used in IAP - our new network protocol.</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/iap/ion-design-goals.html</guid>
            <pubDate>2016.01.22</pubDate>
        </item>
        <item>
            <title>IAP - New Network Protocol</title>
            <link>http://tutorials.jenkov.com/iap/searchIndex.html</link>
            <description>IAP is a new general purpose network protocol intended to replace HTTP which we are developing at http://vstack.co .</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/iap/searchIndex.html</guid>
            <pubDate>2016.01.22</pubDate>
        </item>
        <item>
            <title>New Design!</title>
            <link>http://tutorials.jenkov.com</link>
            <description>This tutorial website has a new, faster, more mobile friendly design, which we believe to be more user friendly too!</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com</guid>
            <pubDate>2016.01.21</pubDate>
        </item>
        <item>
            <title>Java ArrayList vs. OpenArrayList Performance</title>
            <link>http://tutorials.jenkov.com/java-performance/java-arraylist-vs-openarraylist-performance.html</link>
            <description>Did you know there is up to 12% difference in performance depending on how you iterate an ArrayList?</description>
            <guid isPermaLink="true">http://tutorials.jenkov.com/java-performance/java-arraylist-vs-openarraylist-performance.html</guid>
            <pubDate>2015.11.27</pubDate>
        </item>
    </channel>
</rss>