https://findtheansweres.blogspot.com/2017/12/java-allows-for-three-forms-of.html