Question: As per the concept about static members, they are created/loaded into the memory when there is first call made to its class. And they are common among all instances of that class. Means they are not re-created or re-itialized etc. In addition, They can be accessed by the class name only. There is no need to create object for that class just to access them.

Now my questions are; 

1. Whether static members ever be in
memory till the application is
running? even if all the instances
of that class had been collected by
GC(garbage collector).
2. For a big project, where 8-10 teams
are working together, they dont care
about the coding of other's team.
They may create static members as
per their need. If all the members
are cached in memory, would it not
create overhead over JVM?
3. By default, all the members of interfaces are STATIC and the use of interfaces are good in many cases. But if i keep my above questions in mind, should i still use interfaces?

Answer: 
1. yes. No GC will ever clean up static variables. This is important because otherwise one could not rely on values stored in static variables. Design patterns like "Singleton" rely on static variables.
2. The static variables take as much mem as the same value stored in instance variable, so as long as the value stored in the variable is really necessary for the abblication, there is no particular storage overhead in static variables. But the side-effects iposed by the use of static variables when it comes to thread-safety etc. need to be considered more thatn the memory issues.
3. yes. But Interfaces are there for describing the contract between provider and user of functionality, not for storing any data.
1. No, they are collected with the class.
2. Overhead compared to what? What's the alternative?
3. Yes, but nobody said you have to fill them up with static members.