Quoting the documentation:
There are a number of ways to refer to a job in the shell. The
character % introduces a job specification (jobspec). Job number n
referred to as %n. A job may also be referred to using a prefix of the name used to start it, or using a substring that appears
in its command
line. For example, %ce refers to a stopped ce job. If a prefix matches more than one job, bash reports an error. Using %?ce,
on the other
hand, refers to any job containing the string ce in its command line. If the substring matches more than one job, bash
reports an error. The
symbols %% and %+ refer to the shell's notion of the current job, which is the last job stopped while it was in the foreground or
the background. The previous job may be referenced using %-. If there is only a single job, %+ and %- can both be used to refer to
In output pertaining to jobs (e.g., the output of the jobs command), the current job is always flagged with a +, and the previous
job with a -.
A single % (with no accompanying job specification) also refers to the current job.