网站首页 > 文章精选 正文
从Java源代码到运行的程序,有编译和链接两个步骤。编译是将源代码文件变成扩展名是.class的一种字节码,这个工作一般是由javac命令完成的。链接是在运行时动态执行的,.class文件不能直接运行,运行的是Java虚拟机,虚拟机听起来比较抽象,执行的就是Java命令,这个命令解析.class文件,转换为机器能识别的二进制代码,然后运行。所谓链接就是根据引用到的类加载相应的字节码并执行。
Java编译和运行时,都需要以参数指定一个classpath,即类路径。类路径可以有多个,对于直接的class文件,路径是class文件的根目录;对于jar包,路径是jar包的完整名称(包括路径和jar包名)。在Windows系统中,多个路径用分号“;”分隔;在其他系统中,以冒号“:”分隔。
在Java源代码编译时,Java编译器会确定引用的每个类的完全限定名,确定的方式是根据import语句和classpath。如果导入的是完全限定类名,则可以直接比较并确定。如果是模糊导入(import带.*),则根据classpath找对应父包,再在父包下寻找是否有对应的类。如果多个模糊导入的包下都有同样的类名,则Java会提示编译错误,此时应该明确指定导入哪个类。
Java运行时,会根据类的完全限定名寻找并加载类,寻找的方式就是在类路径中寻找,如果是class文件的根目录,则直接查看是否有对应的子目录及文件,如果是jar文件,则首先在内存中解压文件,然后再查看是否有对应的类。
总结来说,import是编译时概念,用于确定完全限定名,在运行时,只根据完全限定名寻找并加载类,
编译和运行时都依赖类路径,类路径中的jar文件会被解压缩用于寻找和加载类。
猜你喜欢
- 2025-01-23 Java程序员终极面试题(java程序员面试题库)
- 2025-01-23 人生中的第一个Java程序:HelloWorld
- 2025-01-23 彻底搞定JAVA乱码问题来龙去脉(java乱码问题解决)
- 2025-01-23 面试必杀技:Jmeter性能测试攻略大全(第二弹)
- 2025-01-23 PATH系统环境变量配置教程【图文步骤】
- 2025-01-23 如何在Windows10中配置java的JDK环境
- 2025-01-23 java环境变量设置(java环境变量怎么设置)
- 2025-01-23 Java First Hello World 程序(hello world.java)
- 2025-01-23 Linux 下安装JDK17(linux如何安装jdk1.8)
- 2025-01-23 java编程、java学习:深刻理解Java编程的7个例子
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)
- mysql数据库面试题 (57)