Q:

How to create proxy in java

How do they create proxy of a class in java. Do they create the proxy on as needed basis or they create it and have it around forever.

A:

You can create proxies in two basic ways:

using the JDK mechanism, by interface. Take a look at java.lang.reflect.Proxy.
using some byte-code generation/manipulation library, on a concrete class. Take a look at cglib and javassist

Apache has a nice utility: commons-proxy. It wraps many mechanisms and frameworks for creating proxies.
This is all about dynamic proxies - i.e. those created at runtime. For static proxies - see wikipedia about the proxy pattern
Note that you are not making a proxy of a class - you are making a proxy of an object.

A:

I agree with the comments that the question is a little vague. However, I'd suggest you look at some of the mocking frameworks such as easymock and mockito. Their source code is available and their core functionality is creating proxies of class and interfaces. So they are good concrete examples of how to go about creating proxies.

