Решений много, Но можно найти видео или описание, где подробно объясняется конкретное решения на JAVA ? А то как-то в голову не до конца влезает :) возникают вопросы - почему так ?