Java defines four types of driver, with differing properties. Types 1 and 2 rely on native code in the driver, and so aren't platform independent. Types 3 and 4 are client/server drivers, in which the client is 100% Java. The client can therefore be deployed on any machine with a Java Virtual Machine (JVM).