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.
%27%20fill-opacity%3D%27.5%27%3E%3Cellipse%20fill%3D%22%23ffbfe1%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(-1.33973%2014.13668%20-42.15324%20-3.99485%20371.3%2084.3)%22%2F%3E%3Cpath%20fill%3D%22%23e0f57e%22%20fill-opacity%3D%22.5%22%20d%3D%22M329%20.8h71.8v7.8h-71.9z%22%2F%3E%3Cpath%20fill%3D%22%23ffcbe1%22%20fill-opacity%3D%22.5%22%20d%3D%22M333%2052.5l91.2%2048-91.5-12-4.9%201z%22%2F%3E%3Cpath%20fill%3D%22%23fff%22%20fill-opacity%3D%22.5%22%20d%3D%22M127.3%20119.5h18.8v11h-18.8z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)

DataOutputStream + DataInputStream
(Java Files Tutorial)
Sven WoltmannFebruary 12, 2020In this fifth part of the series, you will learn how to write and read structured data with DataOutputStream, DataInputStream, ObjectOutputStream, and ObjectInputStream.
%27%20fill-opacity%3D%27.5%27%3E%3Cellipse%20fill%3D%22%23626b35%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22rotate(10.5%20-1090.1%20104.8)%20scale(64.86895%20146.04532)%22%2F%3E%3Cellipse%20fill%3D%22%23d7e39d%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(-118.03852%20-107.73165%2033.032%20-36.19224%20188.6%2053.4)%22%2F%3E%3Cpath%20fill%3D%22%239c95c5%22%20fill-opacity%3D%22.5%22%20d%3D%22M327.3%2089.8h48.5v47h-48.5z%22%2F%3E%3Cellipse%20fill%3D%22%23877fb3%22%20fill-opacity%3D%22.5%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(-17.13812%2037.10702%20-20.597%20-9.51286%206.5%2075.1)%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)

How to List, Move, Copy, and Delete Files
(Java Files Tutorial)
Sven WoltmannJanuary 29, 2020This fourth part of the series describes the most important directory and file operations.
You will learn how to list files in a directory, how to search for files, how to move, rename, and copy files, and much more.
%22%20transform%3D%22translate(.8%20.8)%20scale(1.5625)%22%20fill-opacity%3D%22.5%22%3E%3Cellipse%20fill%3D%22%23ff6723%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(-38.36253%20-20.78453%2024.51285%20-45.24398%20224.3%20134.2)%22%2F%3E%3Cellipse%20fill%3D%22%2368ba72%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(112.6154%20-34.13807%2022.95743%2075.73247%2029.1%2025.2)%22%2F%3E%3Cellipse%20fill%3D%22%2390cadc%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22rotate(-29.8%20196%20-63.5)%20scale(215.90162%2028.94856)%22%2F%3E%3Cellipse%20fill%3D%22%23eda4cb%22%20cx%3D%22144%22%20cy%3D%22105%22%20rx%3D%2245%22%20ry%3D%2245%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)

File and Directory Names: File, Path, Paths
(Java Files Tutorial)
Sven WoltmannJanuary 15, 2020This third part of the series of articles shows how to use the classes File, Path, and Paths to construct file and directory paths – regardless of the operating system.
%22%20transform%3D%22translate(.8%20.8)%20scale(1.5625)%22%20fill-opacity%3D%22.5%22%3E%3Cpath%20fill%3D%22%237ea0aa%22%20d%3D%22M121%2050L-12%20159l1-125z%22%2F%3E%3Cellipse%20fill%3D%22%23d79c54%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(-75.86657%2093.15556%20-29.25405%20-23.82471%20113.6%20104)%22%2F%3E%3Cellipse%20fill%3D%22%23f38fcc%22%20cx%3D%22192%22%20cy%3D%22132%22%20rx%3D%2234%22%20ry%3D%2222%22%2F%3E%3Cellipse%20fill%3D%22%236c7e93%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(10.86494%20135.03854%20-45.81713%203.68636%20251.8%2039.9)%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)

How to Write Files Quickly and Easily
(Java Files Tutorial)
Sven WoltmannDecember 4, 2019This second part introduces methods for writing small and large text and binary files in Java.
After reading this article, you will know exactly when to use FileWriter, FileOutputStream, OutputStreamReader, BufferedOutputStream, and BufferedWriter.
%22%20transform%3D%22translate(.8%20.8)%20scale(1.5625)%22%20fill-opacity%3D%22.5%22%3E%3Cellipse%20fill%3D%22%23d8c3ca%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(-25.79799%2057.80622%20-77.48993%20-34.5825%20185%20116.6)%22%2F%3E%3Cellipse%20fill%3D%22%233e4b78%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(101.40796%20-175.64374%2063.26833%2036.52799%2019.7%2053.5)%22%2F%3E%3Cellipse%20fill%3D%22%23cccff3%22%20cx%3D%22202%22%20cy%3D%22143%22%20rx%3D%2286%22%20ry%3D%2235%22%2F%3E%3Cellipse%20fill%3D%22%2363a8e5%22%20cx%3D%2236%22%20cy%3D%2272%22%20rx%3D%2225%22%20ry%3D%2228%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)

How to Read Files Easily and Fast
(Java Files Tutorial)
Sven WoltmannNovember 21, 2019This article introduces methods for reading and writing files in Java.
After reading this article, you will know exactly when to use FileReader, FileInputStream, InputStreamReader, BufferedInputStream, and BufferedReader.