%27%20fill-opacity%3D%27.5%27%3E%3Cellipse%20fill%3D%22%235f5f5f%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(-118.28012%20-23.6347%208.4612%20-42.34416%2022.4%20121)%22%2F%3E%3Cellipse%20fill%3D%22%23dedede%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(-.65543%2051.0702%20-239.62092%20-3.0753%20195.9%2016.2)%22%2F%3E%3Cpath%20fill%3D%22%23ddd%22%20fill-opacity%3D%22.5%22%20d%3D%22M418.8%20258.6L278.4%20281%20264%20190l140.4-22.3z%22%2F%3E%3Cellipse%20fill%3D%22%23969696%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22rotate(-24.7%20503.8%20-356.2)%20scale(114.8886%2061.74923)%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)

Stack Data Structure
Sven WoltmannMarch 16, 2022In this tutorial, you will learn everything about the abstract data type "stack", how to use it, and how to implement your own stack in Java.
%27%20fill-opacity%3D%27.5%27%3E%3Cellipse%20fill%3D%22%232b2b2b%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(-42.501%20-12.6701%20113.82896%20-381.83165%20369.4%20168.5)%22%2F%3E%3Cellipse%20fill%3D%22%232a2a2a%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(41.06248%20-8.03016%2016.06561%2082.15206%2013.3%2075.7)%22%2F%3E%3Cpath%20fill%3D%22%23a6a6a6%22%20fill-opacity%3D%22.5%22%20d%3D%22M.8%20200.8h32.8v25H.8z%22%2F%3E%3Cellipse%20fill%3D%22%23676767%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(74.53347%20-178.69566%20129.53427%2054.02839%20205.8%2097.2)%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)

Java Switch Expression
Sven WoltmannFebruary 2, 2022Switch expressions were released in Java 14. This article shows how the arrow notation and the use as expression with return values allows a much more concise, clearer and less error-prone notation than before.
%22%20transform%3D%22translate(.8%20.8)%20scale(1.5625)%22%20fill-opacity%3D%22.5%22%3E%3Cellipse%20fill%3D%22%23f43f22%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22rotate(-91.3%20100.7%20-18.1)%20scale(25.13582%2097.46826)%22%2F%3E%3Cellipse%20fill%3D%22%23c7ddfb%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22rotate(90.4%2040.7%2055.7)%20scale(20.29396%20255)%22%2F%3E%3Cellipse%20fill%3D%22%23efa8e1%22%20cx%3D%22108%22%20cy%3D%22143%22%20rx%3D%22255%22%20ry%3D%2216%22%2F%3E%3Cellipse%20fill%3D%22%23d3824e%22%20cx%3D%22111%22%20cy%3D%2281%22%20rx%3D%22200%22%20ry%3D%2245%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)

Generating Random Numbers in Java
Sven WoltmannJanuary 31, 2022How to generate random numbers in Java? How do Math.random() and methods in Random like nextInt() and nextDouble() work?What are pseudorandom numbers? Can they be predicted? If so, how?
%22%20transform%3D%22translate(.8%20.8)%20scale(1.5625)%22%20fill-opacity%3D%22.5%22%3E%3Cellipse%20fill%3D%22%23565952%22%20cx%3D%22248%22%20cy%3D%2225%22%20rx%3D%2230%22%20ry%3D%22148%22%2F%3E%3Cellipse%20fill%3D%22%23765b5e%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(10.4493%20-32.02447%2062.8998%2020.52364%200%2080.5)%22%2F%3E%3Cellipse%20fill%3D%22%23f2f0ff%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22rotate(-130.8%2070%201.8)%20scale(159.24147%2046.96724)%22%2F%3E%3Cellipse%20fill%3D%22%23f8fbf4%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(4.0672%2024.04675%20-48.8558%208.26334%2084.8%20143)%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)

Java Text Blocks
Sven WoltmannJanuary 19, 2022Text blocks are a notation for multiline strings in Java. Why do we need them? How do we write and format them? Which escape sequences can or must we use?
%22%20transform%3D%22translate(.8%20.8)%20scale(1.5625)%22%20fill-opacity%3D%22.5%22%3E%3Cellipse%20fill%3D%22%23a0a8a7%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22rotate(155.9%2018.6%207.6)%20scale(51.9609%2031.87802)%22%2F%3E%3Cellipse%20fill%3D%22%233a2727%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(10.93303%20-56.07375%20112.19043%2021.87442%20108.8%20136.5)%22%2F%3E%3Cellipse%20fill%3D%22%239ca4a3%22%20cx%3D%22180%22%20cy%3D%2262%22%20rx%3D%2230%22%20ry%3D%2228%22%2F%3E%3Cellipse%20fill%3D%22%23800526%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(14.38895%20-22.25545%2029.35338%2018.978%20241%2018)%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)

Java substring()
Method
Sven WoltmannJanuary 17, 2022Java's String.substring() method is one of the most used Java methods ever.How do you use the method? How does substring() work internally, and how has the implementation changed over time?
%27%20fill-opacity%3D%27.5%27%3E%3Cellipse%20fill%3D%22%239c9c9c%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(-48.47214%2030.9964%20-47.5757%20-74.39882%20340.3%20208)%22%2F%3E%3Cellipse%20fill%3D%22%23fff%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(-357.0781%20115.33308%20-29.05289%20-89.94948%2096%2059.9)%22%2F%3E%3Cellipse%20fill%3D%22%23d1d1d1%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(1.79469%20-46.71705%2092.64054%203.55889%20315.2%20102.6)%22%2F%3E%3Cpath%20fill%3D%22%23fff%22%20fill-opacity%3D%22.5%22%20d%3D%22M-24.2%208.6l165.6%20176.6L333.6-22.7z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)

Sealed Classes in Java
Sven WoltmannDecember 28, 2021Sealed classes and interfaces were the big news in Java 17.What are sealed classes and interfaces? How exactly do they work? And why do we need them?
%22%20transform%3D%22translate(.8%20.8)%20scale(1.5625)%22%20fill-opacity%3D%22.5%22%3E%3Cellipse%20fill%3D%22%2300000b%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(-10.82483%20-33.31541%2067.09683%20-21.80108%20242%20113.4)%22%2F%3E%3Cellipse%20fill%3D%22%23e4e3e1%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(5.2031%2042.34783%20-86.08915%2010.5774%20139.5%2031)%22%2F%3E%3Cellipse%20fill%3D%22%23274061%22%20cx%3D%22125%22%20cy%3D%22126%22%20rx%3D%2285%22%20ry%3D%2235%22%2F%3E%3Cellipse%20fill%3D%22%23aa922c%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(25.44383%203.08286%20-16.22928%20133.9456%2012.4%20109.2)%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)

Java 17 Features
(with Examples)
Sven WoltmannDecember 28, 2021All new features of Java 17 with examples: Sealed Classes, InstantSource, HexFormat, context-specific deserialization filters, and more...
%22%20transform%3D%22translate(.8%20.8)%20scale(1.5625)%22%20fill-opacity%3D%22.5%22%3E%3Cellipse%20fill%3D%22%23809419%22%20cx%3D%22117%22%20cy%3D%2292%22%20rx%3D%2233%22%20ry%3D%2227%22%2F%3E%3Cellipse%20fill%3D%22%234c4b50%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22rotate(128.2%20103.2%2085.1)%20scale(27.46995%2087.25949)%22%2F%3E%3Cellipse%20fill%3D%22%234b4c49%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(-6.63205%2023.91504%20-34.4544%20-9.5548%20106%20133.8)%22%2F%3E%3Cellipse%20fill%3D%22%238d8c91%22%20cx%3D%22200%22%20cy%3D%22139%22%20rx%3D%2258%22%20ry%3D%2258%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)

Java Records
(with Examples)
Sven WoltmannDecember 8, 2021Records are one of two major new features in Java 16.What are records, and why do we need them? How to implement and use records? How to extend records with additional functions? What is important in the context of inheritance?
%27%20fill-opacity%3D%27.5%27%3E%3Cellipse%20fill%3D%22%23ffebb2%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(-29.34604%20-57.5223%20174.86279%20-89.2094%2079.5%2032.8)%22%2F%3E%3Cellipse%20fill%3D%22%23dbf4c4%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(-38.57612%2038.66578%20-170.69058%20-170.29477%20323.1%20.8)%22%2F%3E%3Cellipse%20fill%3D%22%234f0a00%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22rotate(69.1%20-82.4%20227.3)%20scale(112.65753%20196.71689)%22%2F%3E%3Cellipse%20fill%3D%22%23616697%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(52.90237%20.42399%20-.34772%2043.3854%20370.7%20129)%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)

Java 16 Features
(with Examples)
Sven WoltmannDecember 8, 2021All new features of Java 16 with examples: "Pattern Matching for instanceof", Records, Value-Based Classes, Strong Encapsulation, new Stream methods, jpackage and more...
%22%20transform%3D%22translate(.8%20.8)%20scale(1.5625)%22%20fill-opacity%3D%22.5%22%3E%3Cellipse%20fill%3D%22%23bdb6a1%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(-33.05807%2032.37556%20-57.5097%20-58.72204%20130.5%2050.3)%22%2F%3E%3Cellipse%20fill%3D%22%23573200%22%20cx%3D%22239%22%20cy%3D%22143%22%20rx%3D%2258%22%20ry%3D%2258%22%2F%3E%3Cellipse%20fill%3D%22%235d1500%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(-53.04801%20-36.73219%2015.42884%20-22.28208%20237.5%2013.8)%22%2F%3E%3Cellipse%20fill%3D%22%23e7965f%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22rotate(-61.1%20125.7%20-121.6)%20scale(23.50827%2051.03371)%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)

Java 15 Features
(with Examples)
Sven WoltmannNovember 23, 2021All new features of Java 15 with examples: Text Blocks, ZGC + Shenandoah, new String methods, Biased Locking, Sealed Classes (preview), and more...