Paul- you're thinking of the Singleton
pattern, in which you want one and only one instance of a class to exist. But Math doesn't even have that - there is no static getInstance() method to access the private constructor. You can never even get a single instantiation - Math is completely uninstanitable.
Nirmal- the reason Math is left of the list of immutable objects, is that you can never have a Math object in the first place. Being immutable is meaningless if the object can't even exist.
Several people have explained why, in
Java terms, it's impossible to instantiate Math. The other part of the question is, why did the Java language designers set up Math this way? Remember that it takes a certain amount of time and memory to create any object, so it's worthwhile to not create an object unless there's a use for it. In designing the Math class, they had a large number of methods which had no need to use any instance variables - i.e. no private data, and no need for a "this" reference anywhere in the code. So these methods might as well be made static. (Static methods, like final methods and private methods, are slightly faster to execute because there's no time spent doing dynamic lookup to check for overriding methods.) Once the methods are all static there's no need for any Math instance. And once there's no need for any Math instance, they might as well prevent anyone from wasting time and memory creating Math objects which have no possible use. So that's what they did.