如何使用JDBC代码连接到Windows中的基于Microsoft Access的数据库?
为Type-1和Type-4类型的驱动程序编写什么语法?
Class.forName(" ");
Run Code Online (Sandbox Code Playgroud)
以上语法对于我们使用的驱动程序的每种类型都不同吗?我们如何定义和识别我们使用的驱动程序的类型?
如果可能的话,还要为oracle指定要加载的驱动程序语法.
这是问题的扩展:Java中初始化的顺序
所以在代码块中:
public class Point {
int y = getX();
int x = 42;
int getX() {
return x;
}
public static void main (String s[]) {
Point p = new Point();
System.out.println(p.x + "," + p.y);
}
Run Code Online (Sandbox Code Playgroud)
}
它输出 42,0
虽然通过描述Java编译器和运行时的行为来回答上述问题,但仍然困扰我为什么编译器不将x(42)的初始值烘焙到字节码中?我知道静态变量的值嵌入到字节码中,因为它们是类级变量,并且它们不占用对象内存中的任何空间,但是为类级非静态变量嵌入任何初始值也没有意义也进入字节码?这样,上面的代码将更符合预期的行为,并且我猜测对象的实例化会更快(因为分配给x的内存将立即包含42因此节省了解析类中初始化行的时间每次创建Point类的对象时)
我怀疑这可能与类字节码大小,对象初始化效率和编译时效率之间的权衡有关.
我希望对Java编译器/运行时有深入了解的人可以对此有所了解.了解框架如何在内部工作总能帮助我们编写更好的代码:-)