【Thinking in Java】五:访问权限控制

一  Java为什么提供访问权限修饰符

程序员分为类创建者和客户端程序员。
1 为了使用户不要触碰不应该触碰的部分,这些部分对于类的操作是必须的,但是它不属于客户端程序猿所需接口的一部分,这些部分就指定域为private
2 为了让类创建者可以更改类的内部工作方式,而不必担心对客户端程序员产生重大的影响。

下面是Java权限修饰符权限:


二 如何解决类名称冲突

Java引入了包机制 package,package名称的第一部分是类的创建者的反顺序的Internet域名,域名是独一无二的,因此你的包名称也是独一无二的。

三 Java环境变量CLASSPATH

安装JDK时,要配置CLASSPATH
Java解释器的运行过程:首先找出环境变量CLASSPATH,CLASSPATH包含一个或多个目录,用作查找.class的根目录。

这是我本机的配置:


然后解释器获取包的名称跟据操作系统的不同,产生正斜杠或者反斜杠的路径。
得到的路径会与CLASSPATH中的各个不同的项相连接,解释器就在这些目录中查找与你所要创建的类。

加载器主要有四种:

jvm启动类加载器bootstrap loader,用c++实现为jvm的一部分(仅指sun的hotspot),负责 JAVA_HOME/lib下面的类库中的类的加载,这个加载器,java程序无法引用到。

扩展类加载器Extension Loader,由sun.misc.Launcher$ExtClassLoader类实现,可在java中使用,负责JAVA_HOME/lib/ext 目录和java.ext.dir目录中类库的类的加载。

应用系统类加载器Application System Loader,由sun.misc.Louncher$AppClassLoader实现,负责加载用户类路径中类库中的类,如果没有使用自定义的加载器,这个就是默认的 加载器!

用户自定义加载器 自己定义从哪里加载类的二进制流



web.xml里面的classpath



通过下面的图我们可以了解到 classpath为 /WEB-INF /classes/  这个路径


这两个classpath应该是没有什么关联关系的,如果有朋友有其他观点,不吝赐教。


类加载参考地址:
http://www.cnblogs.com/fsjohnhuang/p/4284515.html
http://my.oschina.net/jingxing05/blog/275141

猜你喜欢

转载自lovejavah123.iteye.com/blog/2290084
今日推荐