Class.forName возвращает экземпляр объекта Class.Класс эквивалентен объекту класса c #.
Class.forName заставляет классы загружаться, если они еще не были загружены.В рамках процесса загрузки класса вызываются все статические блоки, определенные в классе.Статический блок выглядит так:
class Foo {
static {
System.out.println("loaded Foo");
}
}
//running this will print "loaded Foo"
Class.forName("Foo");
Статические блоки вызываются только один раз, при первой загрузке класса, поэтому повторный вызов Class.forName ("Foo") вызовет только "загруженный Foo"напечатан один раз.Создание нового экземпляра Foo также приведет к загрузке класса, если он еще не был загружен.
Обычно драйверы JDBC регистрируют себя, вызывая DriverManager.registerDriver () встатический блок, поэтому при вызове Class.forName () загружается драйвер.