Deprecated means that the method or class in question should no lomger be used, because it has deficiencies. Sometimes these are functional (e.g. the Stream classes in the java.io package that do not handle I18N characters properly), sometimes something more powerful comes along (java.util.Date vs. java.util.Calendar), and sometimes something was ill though out to begin with (SingleThreadModel, various methods of Thread). Usually the javadocs suggest which methods/classes should be used instead.
From Java 5's @deprecated Annotation's API: A program element annotated @Deprecated is one that programmers are discouraged from using, typically because it is dangerous, or because a better alternative exists. Compilers warn when a deprecated program element is used or overridden in non-deprecated code.
Something like what the others have said. Deprecated means, that over the evolution of a new version of Java, the developers of the new version of Java have rolled out a new version of an existing function which either:
1. Offers more features (And/or) 2. Is safer than the previous version.
However, in new versions of Java, support is still present for the deprecated functions. They are backward compatible. But do discourage you from using them, Sun has forced you to use the -deprecation tag each time you compile programs with deprecated API.
Hope this helps.
SCJP, SCWCD, SCBCD, IBM XML, IBM OOAD, SCEA 5, ITAC - Distinguished IT Architect.