-
使用包名可以有效地区分名字相同的类,当不同Java源文件中的两个类的名字相同时,它们可以通过隶属于不同的包来相互区分。
-
包语句:package 包名;
-
在源程序中最多有一个包语句,如果源程序中省略了package语句,源文件中所定义、命名的类将被隐含地认为是无名包的一部分,只要这些类的字节码被存放在相同的目录中,那么它们就属于同一个包,但没有包名。
-
包名可以是一个合法的标识符,也可以是若干个标识符加“.”分隔而成.
-
如果一个类有包名,那么就不能在任意位置存放,否则虚拟机将无法加载这样的类。
-
java.lang包含所有的基本语言类。
-
javax.swing包含抽象窗口工具集中的图形、文本、窗口GUI类。
-
java.io包含所有的输入/输出类。
-
java.util包含实用类。
-
java.sql包含操作数据库的类.
-
java.net包含所有实现网络功能的类。
-
java.lang包是Java语言的核心类库,它包含了运行Java程序必不可少的系统类,系统自动为程序引入java.lang包中的类(例如System类、Math类等),因此不需要再使用 import语句引入该包中的类。
-
如果使用import语句引入了整个包中的类,那么可能会增加编译时间,但绝对不会影响程序运行的性能,因为当程序执行时只是将程序真正使用的类的字节码文件加载到内存。
-
如果没用import语句引入包中的类,那么也可以直接带着包名使用该类。例: java.util.Date date = new java.util.Date();
-
包名路径左对齐。所谓包名路径左对齐,就是让源文件中的包名所对应的路径和它要用 import语句引入的非类库中的类的包名所对应的路径的父目录相同。
-
包名路径和源文件左对齐。假如用户的源文件没有包名,该源文件想引人非类库中的类,那么只需让源文件中import语句要引入的非类库中的类的包名路径的父日录和用户的源文件所在的目录相同,即包名路径和源文件左对齐。
-
无包名而且在同一个文件夹下的类可以互相使用,无包名类也可以通过import语句来使用有包名的类,但是有包名的类无论如何也不能使用无包名的类。
-
可以将有包名的类的字节码文件压缩成一个jar文件,供其他源文件用import语句导入 jar文件中的类。
-
需要注意的是,在编写清单文件qingdan.mf时,在“Manifest-Version:”和“l.0”之间、 “Class::”和类之间,以及“Created--By:”和“14”之间必须有且只有一个空格。
-
如果-cp参数需要使用多个jar文件中的类,需将这些jar文件用分号分 隔,例如: java -cp one,jar;two.jar;three.jar; (至少一个空格)主类
-
如果源文件没有包名,只要将该源文件和它所要使用的jar文件存放在相同的目录中,并使用-cp参数编译、运行即可。
-
如果主类的包名是people.cry,那么主类的字节码文件一定存放在“…\people\cry'”目录中,则必须到“\people\cry'”的上一层目录(即people的父目录)中去运行主类。C:\people父目录>java people.cry.(主类名)
-
如果源文件的包名所对应路径的父目录和所使用的jar文件不在同一目录,那么-cp参数 必须给出jar文件的绝对路径。例如:C:\people父目录\people\cry
-
在使用java执行程序时,通过增加参数-jar执行含有主类的jar文件: java -jar 含有主类的 jar 文件