A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 帅哥哥 高级黑马   /  2014-5-6 14:19  /  1036 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 帅哥哥 于 2014-5-6 14:20 编辑

现在越来越觉着学习Java的时候,不仅要有扎实的基本语法基本功,还要对编译器、虚拟机等东东有深入的了解了!!!

现在和大家分享一下Java编译器是怎么处理 import 语句的

Demo类中有下列语句:
  1. package com.abc.demoapp.demo;
  2. import com.abc.demoapp.person.Person;
复制代码

  • 由于 Demo 类的 import 语句中声明 Person 类位于 com.abc.demoapp.person 包中,因此Java编译器先找到 classpath 根目录下的 com\abc\demoapp\person 目录下寻找 Person.class 文件,然后到 -sourcepath 选项指定的 src 根目录下的 com\abc\demoapp\person 目录下寻找 Person.java 文件。
  • 如果同时找到了 Person.class 文件和 Person.java 文件,Java编译器就会根据 Person.java 文件的更新日期来判断 Person.class 文件有没有过期,如果过期就会重新编译 Person.java ,否则就直接使用 Person.class 。
  • 如果只找到了 Person.class 文件,Java编译器就会直接使用这个 Person.class 。如果只找到了 Person.java 文件,Java编译器就编译这个 Person.java 。
  • 如果既没有找到 Person.class 文件,也没有找到 Person.java 文件,就会抛出编译错误,提示无法解析 Demo 类中的 Person 符号。

1 个回复

倒序浏览
谢谢楼主分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马