According to man bash:
When bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option,
it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for
~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable.
~/.bash_profile
The personal initialization file, executed for login shells
~/.bashrc
The individual per-interactive-shell startup file
There is also /etc/bashrc (/etc/bash.bashrc in Debian-based Linux) which contains System wide functions and aliases. By default, this is set, even for non-interactive, non-login shells.
EDIT:
The tilde in the paths indicates the home directory of the currently logged in user. Bash is only able to use one of ~/.bash_profile, ~/.bash_login, or ~/.profile (per currently logged in user), in that order, for reading and executing commands. (Debian-based operating systems typically do not have ~/.bash_profile or ~/.bash_login. They use the file ~/.profile. This file explains that it will be read and used unless ~/.bash_profile or ~/.bash_login are created.
#~/.profile: executed by the command interpreter for login shells.
#This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
exists.