Traditionally, when you log into a Unix system, the system would start one program for you.
That program is a shell, i.e., a program designed to start other programs.
It's a command line shell: you start another program by typing its name.
The default shell, a Bourne shell, reads commands from ~/.profile
when it is invoked as the login shell.
Bash is a Bourne-like shell.
It reads commands from ~/.bash_profile
when it is invoked as the login shell,
and if that file doesn't exist¹, it tries reading ~/.profile
instead.