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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘刚洪 初级黑马   /  2012-3-17 20:54  /  2143 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

边看毕老师视频编写练习程序,遇到一个现象,之前也遇到过但没太注意。
比如我看视频1 的时候写了个 1.java源文件,看视频2 的时候将之前的源文件另存为了 2.java。
在 2.java 的基础上修改了main所在类之外的一些代码,并将主函数类改为了Demo2(之前为Demo),重新编译之后,运行时错将Demo2写成了之前的Demo,但还是能得到代码修改后的效果,为什么?
PS:只要是同一天的视频练习程序都存放在同一个文件夹

2 个回复

正序浏览
我的猜测
你的2.Java中有和1.Java中相同的类。而这个类正是你在2.Java中修改的那个地方。由于你对2.Java文件进行了编译。生成的新的该类的字节码文件把原来的覆盖了。而你在1.Java文件的字节码时,他调用你最后修改的那个同类名的字节码文件。所以运行的结果就是你修改后的结果了。
声明:每个类在编译时都回生成一个字节码文件。也就是说一个Java文件可以生成一到多个字节码文件。
回复 使用道具 举报
那是因为i他直接运行了Demo的class文件
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马