Most all of Hashtable's methods are synchronized to make them (mostly) thread-safe. If you don't need thread-safety (or need finer-grained control), HashMap is your friend. Java 1.5 also added ConcurrentHashMap (or some similar name) that I believe allows multiple readers simultaneously.
I don't know why they chose to synchronize it. Its synchronization is not going to preclude your own synchronization. IMHO its a design flaw and a waste of time for them to have done that.
Originally posted by CL Gilbert: I don't know why they chose to synchronize it.
I'd bet five bucks it was a simple matter of the early Java developers at Sun going hog-wild: "Man, it's so cool having synchronization built into the language. I wonder where else I can use it?"