[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]
程序员分为类创建者和客户端程序员。
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]