Java defines four types of driver, with differing properties. Types 1 and 2 rely on native code in the driver, so are not platform independent. Types 3 and 4 are a client-server arrangement, in which the client is 100% Java. Thus, it can be deployed on any machine with a JVM.