java 汇总

2016-07-25  本文已影响21人  young_dreamer

反射中,Class.forName和Classloader.loadclass的区别
加载,链接,初始化
forName可以选择初始化类static块和static变量,ClassLoader.loadClass(className)实际调用的是ClassLoader.loadClass(name, false),第二个参数指出Class是否被link。因此区别就是看程序是否依赖于Class是否被初始化,是就必须用Class.forName(name)了。典型例子就是jdbc的driver,需要在static块中注册到manager


异常

  1. 举例说明异常的结构,运行时异常和非运行时异常
  1. try-catch-finally-return的执行顺序
  • return语句并不是函数的最终出口,如果有finally语句,这在return之后还会执行finally(return的值会暂存在栈里面,等待finally执行后再返回)
  • finally里面不建议放return语句,根据需要,return语句可以放在try和catch里面和函数的最后。可行的做法有四: (1)return语句只在函数最后出现一次。
    (2)return语句仅在try和catch里面都出现。
    (3)return语句仅在try和函数的最后都出现。
    (4)return语句仅在catch和函数的最后都出现。 注意,除此之外的其他做法都是不可行的,编译器会报错。
    转自:http://qing0991.blog.51cto.com/1640542/1387200

JVM

上一篇 下一篇

猜你喜欢

热点阅读