https://medium.com/@t.dasanthaedirisinghe/understanding-java-data-types-a-comprehensive-guide-d2bc69b6241a