

Bubble Sort – Algorithm, Source Code, Time Complexity
Sven WoltmannJuly 8, 2020In this article, I describe how Bubble Sort works, introduce the source code, and explain how to derive its time complexity.


Selection Sort – Algorithm, Source Code, Time Complexity
Sven WoltmannJune 25, 2020In this article, I describe how Selection Sort works, show its source code, and explain its derivation of time complexity.


Insertion Sort – Algorithm, Source Code, Time Complexity
Sven WoltmannJune 11, 2020This article describes how Insertion Sort works, shows an implementation in Java and explains the time complexity.


Sorting in Java
[Tutorial]
Sven WoltmannJune 11, 2020This tutorial explains – step by step and with many code examples – how to sort primitive data types (ints, longs, doubles, etc.) and objects of any class in Java.


Sorting Algorithms
[Ultimate Guide]
Sven WoltmannJune 11, 2020If you need a refresher on how the most common sorting algorithms work and how they differ, this series is for you.
Big O Notation and Time Complexity – Easily Explained
Sven WoltmannMay 28, 2020In this article, I will explain the big O notation (and the time and space complexity described with it) only using examples and diagrams – and entirely without mathematical formulas, proofs and symbols like θ, Ω, ω, ∈, ∀, ∃ and ε.
%27%20fill-opacity%3D%27.5%27%3E%3Cellipse%20fill%3D%22%23ecffd3%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22rotate(-111.4%2048.5%2040.4)%20scale(59.38404%20141.6422)%22%2F%3E%3Cellipse%20fill%3D%22%23a96000%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22rotate(124.9%2017.9%20152)%20scale(313.37378%2064.37239)%22%2F%3E%3Cellipse%20fill%3D%22%23f0dcbe%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(-56.54666%20-6.42156%2012.63382%20-111.25036%20364.7%20153.4)%22%2F%3E%3Cellipse%20fill%3D%22%23c9d44b%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(17.22167%2028.48592%20-72.36402%2043.74895%20144.4%20122.8)%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)

Stack, Queue, Deque in Java
Sven WoltmannApril 8, 2020How do the stack, queue and deque data structures work? Which implementations are available in the JDK? Which one should you use when?
%22%20transform%3D%22translate(.8%20.8)%20scale(1.5625)%22%20fill-opacity%3D%22.5%22%3E%3Cellipse%20fill%3D%22%237a7a7a%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(111.83698%2021.54318%20-5.05904%2026.26295%2079.6%2048)%22%2F%3E%3Cellipse%20fill%3D%22%23020202%22%20cx%3D%22119%22%20cy%3D%22130%22%20rx%3D%22255%22%20ry%3D%2219%22%2F%3E%3Cellipse%20fill%3D%22%236d6d6d%22%20cx%3D%2213%22%20cy%3D%2223%22%20rx%3D%2230%22%20ry%3D%2255%22%2F%3E%3Cellipse%20fill%3D%22%230a0a0a%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(12.14758%2012.1462%20-26.52104%2026.52404%20248.3%2093.4)%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)

Java Deep Reflection: How to Hack Integer and String
Sven WoltmannMarch 11, 2020Can 2+3 = 6?In this article, I show you how Deep Reflection can be used to change the values of Integers and Strings at runtime.
%27%20fill-opacity%3D%27.5%27%3E%3Cellipse%20fill%3D%22%23003b06%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(50.38388%2067.34952%20-315.2801%20235.85965%20328.7%20176.3)%22%2F%3E%3Cellipse%20fill%3D%22%23588fd2%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22rotate(-145.2%2030.1%2094.8)%20scale(102.8416%20189.32649)%22%2F%3E%3Cellipse%20fill%3D%22%232c63a5%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22rotate(92.6%2071.2%20131.3)%20scale(87.1009%20132.36301)%22%2F%3E%3Cellipse%20fill%3D%22%23679fcc%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(-7.39737%20-79.31827%2054.86606%20-5.11691%2020.2%20170.2)%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)

Java ByteBuffer Example: How to Use flip()
and compact()
Sven WoltmannFebruary 26, 2020In this article, I show you (using an example) how the Java ByteBuffer works, and what precisely the Methoden flip() and compact() do.
%22%20transform%3D%22translate(.8%20.8)%20scale(1.5625)%22%20fill-opacity%3D%22.5%22%3E%3Cellipse%20fill%3D%22%2300261f%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(-196.92186%20-1.71851%20.15193%20-17.40889%20138.2%204)%22%2F%3E%3Cellipse%20fill%3D%22%23043229%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(-4.42483%20-34.06933%2072.302%20-9.39039%2061.5%20143)%22%2F%3E%3Cellipse%20fill%3D%22%23a95274%22%20cx%3D%2285%22%20cy%3D%2272%22%20rx%3D%22176%22%20ry%3D%2236%22%2F%3E%3Cellipse%20fill%3D%22%238f4d00%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22rotate(67.7%2027.4%20233.3)%20scale(28.8016%2062.05762)%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)

FileChannel, Memory-Mapped I/O, Locks
(Java Files Tutorial)
Sven WoltmannFebruary 26, 2020In this article, you will learn everything about the NIO classes FileChannel and ByteBuffer introduced in Java 1.4.You'll learn about their capabilities for reading and writing files and their advantages over the previously discussed methods.