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

[b][size=large]一 Java为什么提供访问权限修饰符[/size][/b]

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

下面是Java权限修饰符权限:
[img]http://dl2.iteye.com/upload/attachment/0116/5248/881ae562-d709-38a3-ad37-7f351b4c3e5d.png[/img]

[b][size=large]二 如何解决类名称冲突[/size][/b]

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

[b][size=large]三 Java环境变量CLASSPATH[/size][/b]

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

这是我本机的配置:
[img]http://dl2.iteye.com/upload/attachment/0116/5265/a17221d3-2bdb-323f-ab75-4cb09e01492c.png[/img]

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

[color=red]加载器主要有四种:[/color]

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实现,负责加载用户类路径中类库中的类,如果没有使用自定义的加载器,这个就是默认的 加载器!

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

[img]http://dl2.iteye.com/upload/attachment/0116/5280/ce4ee9cb-e86c-393a-abda-cedb3fe80e1a.png[/img]

web.xml里面的classpath

[img]http://dl2.iteye.com/upload/attachment/0116/5284/dca4d79b-beb5-329d-9f0b-f307828131f8.png[/img]

通过下面的图我们可以了解到 classpath为 /WEB-INF /classes/ 这个路径
[img]http://dl2.iteye.com/upload/attachment/0116/5287/7fa4483a-3342-3bf0-9f1b-f5afa74cfb73.png[/img]

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


类加载参考地址:
[url]http://www.cnblogs.com/fsjohnhuang/p/4284515.html[/url]
[url]http://my.oschina.net/jingxing05/blog/275141[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值