Also known as dynamic typing. The idea that values, rather than variables, has a type. This entails a run-time penalty.
Languages using weak typing include Scheme and Perl, while Pascal and Ada are strongly typed.
The difference is becoming a bit blurred. While Java nominally is strongly typed, you can get many of the properties of weak typing by passing around Object references.