The proxy is a piece of software design paradigm in the Java programming language. In its most basic form, a proxy is a shell interface that contains something else. Be it a network connection, a big file in memory, or some other hard to reproduce or expensive resource might all be represented by the proxy. In a nutshell, a proxy is an agent object which is used by the client to gain access to the true serving object in the background. It can be used to send data to the underlying object or to offer extra functionality.