Огромный PS, указываю, где хранить в самом простом виде в разделе*

Задача.

Создаём CRUD приложение (Create Read Update Delete).

интерфейс Crud с методами

interface Crud<T> {
	void create(T model);
	void update(T model);
	T find(Integer id);
	void delete(Integer id);
}
// T-типизацация или обобщение
// при имплементации, во всех методах вместо T 
// будет стоять класс, который будет имплементировать интерфейс

// в данном случае User или Gift
// так мы достигаем гибкости и нам всё равно, что за класс

класс User, реализующий Crud (то есть, пользователя можно создавать, находить и тд...):

PS. List с генериками (List<?> friends, List<?> gifts), догадайтесь, что должно стоять вместо "?"

и Класс Gift реализующий Crud:

Хэшируем пароли 🕶️

Не забываем ДОБАВИТЬ В POM.XML зависимость apache-logging

На данный момент, одним из самых популярных хэшаторов паролей является технология под названием bcrypt. Можете даже в онлайн-режиме зашифровать свой пароль для Вконтактика прямо на этом сайте.