黑马程序员技术交流社区

标题: 关于编译运行的问题 [打印本页]

作者: 刘刚洪    时间: 2012-3-17 20:54
标题: 关于编译运行的问题
边看毕老师视频编写练习程序,遇到一个现象,之前也遇到过但没太注意。
比如我看视频1 的时候写了个 1.java源文件,看视频2 的时候将之前的源文件另存为了 2.java。
在 2.java 的基础上修改了main所在类之外的一些代码,并将主函数类改为了Demo2(之前为Demo),重新编译之后,运行时错将Demo2写成了之前的Demo,但还是能得到代码修改后的效果,为什么?
PS:只要是同一天的视频练习程序都存放在同一个文件夹
作者: 唐林渊    时间: 2012-3-17 21:08
那是因为i他直接运行了Demo的class文件
作者: 李爱军    时间: 2012-3-17 21:33
我的猜测
你的2.Java中有和1.Java中相同的类。而这个类正是你在2.Java中修改的那个地方。由于你对2.Java文件进行了编译。生成的新的该类的字节码文件把原来的覆盖了。而你在1.Java文件的字节码时,他调用你最后修改的那个同类名的字节码文件。所以运行的结果就是你修改后的结果了。
声明:每个类在编译时都回生成一个字节码文件。也就是说一个Java文件可以生成一到多个字节码文件。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2