How to Benchmark Java Code Properly

Why startTime / endTime Benchmarks Lie — And Why JMH Exists