Q: int n=Integer.parseInt("+5");
int n=Integer.parseInt("123ABC");
编译时正常,解析时就报错了,要实现上述转换,该怎么解决?
A: 你如果要带符号,int n=Integer.parseInt("-5");可以,但+5就不可以了.
int n=Integer.parseInt("123ABC",16);
Q: 书上说Class.forName("org.postgresql.driver");作用是驱动程序会由静态初始化过程加载,是什么意思呀!
A: 静态初始化过程解释起来太麻烦,希望你自己去阅读一下Thinking in Java 2nd 的第5-8章
不过,我可以给你解释一下为什么在调用JDBC的时候,我们总要写这句话:
JDBC提供的DriverManager类用于跟踪所有可用的JDBC驱动,并在用户需要时选择合适的驱动提供给
用户但是其跟踪不是自动的,必须由可用的JDBC驱动的Driver类自己在DriverManager上进行注册但是
这个注册过程一般是由Driver类加载的时候自动完成的。Class.forName("org.postgresql.driver");这句就是
为了加载这个类进入内存用的,而在一个类加载入内存的时候,类中的静态初始化过程会执行,关于这
部分就需要你去Thinking in Java里去看了,而刚才所说的Driver类在DriverManager上注册的过程,事实上就
是在这个静态初始化块中完成的,也就是说Class.forName("org.postgresql.driver");这句话在这里的用处就是
强制JVM将org.postgresql.Driver这个类加载入内存,以便将其注册到DriverManager类上去