类的载入以及类是如何工作的(实用于初学)

来源:互联网 发布:php接口怎么写 编辑:程序博客网 时间:2024/05/17 20:25
<script type="text/javascript">google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//</script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>  由于很多java初学者都对classpath和path的概念模糊,我阅读了众多书籍,相关书籍有<<java编程基础>>,<<java2技术内幕>>,<<Cisco Networking Academy Program Fundamentals of Java Programming>>希望对他们有帮助!!  到目前为止,我们在实验室中创建的类都放在一个指定的目录下.实验指定了一个工作目录,这个目录叫做确省目录.我们创建的源文件存储在这个目录下,生成的类文件也存储在这个目录下,你在这个确省的包中工作!  当一个源代码文件编写完后,我们通常叫他一个编译单元,每个源代码文件或编译代码的文件名都必须以.java文件名为后缀.在这个编译单元中,只能有一个public 的类的定义,但可以有一个或多个的非public类定义.当你编译源文件时,源文件的每个类都会产生一个相应的类文件(以class为后缀),java编译器和解释器负责查找,载入和解释这些类文件.  要理解类定位的概念,你必须理解一些path 和classpath的相关重要的概念.所有的操作系统都利用变量来存储目录名,而这些目录正是用户试图载入或启动程序的时候需要查找的地方!在java运行环境中,有两个变量会影响到类文件和和JDK程序的访问,这就是path和classpath.  术语"路径"用来表示程序查找一个文件的位置时所用到的一系列的指定的目录!比如说,在windows系统中,java编译器和java解释器的程序文件分别为javax.exe和java.exe.这两个文件通常存储在你的jdk的bin目录下,对于某些特定的平台,path变量是一个操作系统的变量,它所包含的路径指向众多的可执行文件所存在的目录.计算机上面的操作系统通过这些路径来查找需要运行的可执行文件.  比如说,要保证操作系统能找到javac.exe和java.exe,这两个文件都在你的jdk/bin目录下,就需要添加到path 变量中去.java编译器和解释器使得变量classpath 来定位类和包.classpath变量可以获得很多条包含包的目录路径.jdk目录结构包含一些被自动来查找类的子目录,这些就是所谓的标准目录,而且这些目录就不需要定义在classpath变量中.你可以把类文件保存在这些目录中的一个,例如,jdk1.3/jre/classes就是一个能自动找到的标准目录.其中 classes是我自己新建的目录!你可以把自己的类文件放到这!   但我建议不这样做,类文件应该通过程序员创建的目录结构来管理.   由于创建的类大多数情况下总是存储在相互分开的目录中,classpath变量必须包含到达这些目录的路径.命令 CLASSPATH=d/javacourse/lab在操作系统级别为classpath变量赋值.   载入类的时候,需要查找的额是确省目录和显示定义的包的目录.他的执行顺序为: 1,在标准目录下查找文件; 2,在当前的工作目录下查找所有的文件.在大多数的操作系统中,(.)符号表示当前的工作目录.有些书中有介绍! 3,使用classpath变量定义的目录路径来查找文件,程序员必须在classpath变量中显示的指定他们将要查找的目录路径. 4,在类的包声明语句所声明的包中查找文件,只在classpath变量所指定的目录下查找这些包.   补充:   1,标准类有java.lang包,你部需要特别的指定这个包的位置;   2,在当前目录(确省目录)下查找,注意是确省目录,他会在确省目录中查找所有文件的第一个!   3,显示查找包的声明,简单的说就是我们在java语言中用import所引入的类或者说我们在classpath中用(.)所表示的当前的类.   4,对编译器带有-classpath选项的调用提供了一个指向确省目录的类路径!   同时也可以用-cp选项来声明一个指定的classpath以供解释器使用!!   例如:javac -classpath.huiwu917.java java -cp.huiwu917 注意使用编译器和-classpath选项以及-cp选项时,classpath变量可以被覆盖掉!!     
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 葱伴侣大酱 大葱蘸大酱 东北大酱的制作方法 好餐得传统大酱 大葱大酱炒鸡蛋 kemomimi酱 marmite酱 peko酱 酺怎么读 大野芋 大野 大野智 大野木 大野克夫 超级大野怪 大野実花 大野木技能 大野一雄 大野洋子 大野优美 大野智图片 日本50熟大野 河流大野犹嫌束 河流大野犹嫌束下一句 安德烈对小丸子表白大野吃醋 大金重工 大金步步赢 洪荒大金乌 油炸大金 网红大金 大金链子 周大金 大金网红 大金牙 证大金服 斗大金印 周大金珠宝 大金空调vrv 大金vrv空调 大金怎么样