Methods are chosen to be declared as static when they perform some tasks,which are not specific to any particular object of the class. as static methods belong to the class, they can be accessed by more than one thread at a time.and one has to be careful in programming. There is every chance that what ever content on which this methods works may be inconsistant.
Yes, they do. If you do not need an instance of an object to call the method, then why create the object? Object creation is inherantly an expensive task. Secondly, static methods do no participate in overriding/polymorphism. There is no need to maintain/use a dynamic look-up table to determine which version of the method to call. In fact, the method to call is determined at compile-time by the compiler. However, don't let performance guide you in a quest to make all methods static. Stick to good design, using static methods only as needed, and look for performance optimizations other places (DB access, Network I/O, etc).
Piscis Babelis est parvus, flavus, et hiridicus, et est probabiliter insolitissima raritas in toto mundo.
Also keep in mind that static methods don't have access to any of the instance variables. So if you need manipulate instance variables you CAN'T use a static method. As Joel pointed out, the design should dictate the usage.