The Java Naming and Directory Interface (JNDI) allows Java applications to look up and discover named objects in a directory service. JNDI provides a standard interface for naming and accessing resources such as databases. Distributed application components can use JNDI to locate other components and resources by name. The JNDI lookup method passes a name and returns the associated object, enabling access to resources without prior knowledge of implementation details or location.