源文件命名
- 每个源文件至多允许含一个public class(允许无public class),含public class源文件public class名必须与源文件名一致,无public class源文件,源文件命名无限制
程序启动
- 每个源文件都可作为启动项,如果源文件作为启动项,那么必须包含一个与源文件名同名class(public无要求),启动时根据源文件名找到对应类作为启动加载类,如果找不到对应类,则runtime error,因此如果源文件内含public class且作为启动项,则该public class必然是启动加载类
- 启动加载类必须包含public static void main(String[] args)方法成员作为java程序执行入口(除形参名args可任意,其他不可更改)
classpath
- classpath类似于c++中的header search paths或library search paths,是一个目录列表
- header search paths是头文件search目录列表
- library search paths是库文件search目录列表
- classpath是.class文件加载时jvm search目录列表
package
- 相对于classpath相对路径(目录),与classpath一起组成.class文件所在完整目录
import
- import类似于c++中的#include,用来导入.class文件,只有导入.class文件,该.class文件才可能被jvm加载,import导入.class文件支持文件通配符
- 当前可用类名中同一类名不允许对应多个可加载.class文件,否则引用该类时二义性error(jvm不知道加载哪个.class文件),但如果类访问权限不允许,则引用该类时不构成二义性error(比如import两个同名类,但这两个同名类访问权限并非同为public,则引用该类不构成二义性error)
- 每个源文件默认import java.util.*