ClassLoader

Catalogue
  1. 1. ClassPath
  2. 2. ClassLoader
  3. 3. 参考资料

ClassPath

CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

我们都记得在第一次配置Java的时候,我们需要配置CLASSPATH,Classpath是什么意思呢,其实Classpath就是如同
单词的意思一样,Class的路径。我们来看看Java的加载类的机制。

ClassLoader

  • Bootstrap Class Loader – It loads JDK internal classes, typically loads rt.jar and other core classes for example java.lang.* package classes (通常是rt.jar的类,比如lang包下面的那些东西)
  • Extensions Class Loader – It loads classes from the JDK extensions directory, usually $JAVA_HOME/lib/ext directory. (通常加载lib里面的class)
  • System Class Loader – It loads classes from the current classpath that can be set while invoking a program using -cp or -classpath command line options.(加载通过 -cp 传入的地址)

那我们再看 CLASSPATH 原来就是定义rt.jar 和 lib 地址的。

ClassLoader

这里就不多说明了,给一个链接即可。java类的加载机制

注意下 双亲委派模型 这个老生常谈的问题

双亲委派模型意义:

  • 系统类防止内存中出现多份同样的字节码
  • 保证Java程序安全稳定运行(防止恶性覆盖系统级别代码)

参考资料