https://medium.com/spring-boot/top-10-java-job-interview-questions-clear-answers-code-explained-70a9ae383d31