https://medium.com/@travelswithkrishna/java-i-o-basics-day-13-understanding-java-input-and-output-0753d8f3b574