A static variable is a variable that retains its value even after the program that created it has finished running. For example, a static variable in a program that calculates the sum of two numbers would retain the sum even after the program has finished running.
A non-static variable is a variable that changes its value when the program that created it is running. For example, a non-static variable in a program that calculates the sum of two numbers would change its value each time the program runs.