There are three types of variables in Java: local, instance, and class/static variables. Local variables are declared within methods and can only be accessed within that method. Instance variables are declared within a class but outside of methods, and can be accessed by any non-static method of that class. Class/static variables are also declared within a class but with the static keyword, and can be accessed from both static and non-static contexts.