黑马程序员技术交流社区

标题: 关于几个术语概念的问题!有点似懂非懂!求解惑! [打印本页]

作者: 还不到时候    时间: 2013-11-26 10:15
标题: 关于几个术语概念的问题!有点似懂非懂!求解惑!
有这样几个术语概念:java源文件,,字节码文件,编译器,JVM虚拟机,类加载器,内存,javac.exe,java.exe。
刚学java时,在CMD中执行java命令时老师就引述了上面的几个概念:
       输入 javac Demo.java 就将java源文件转换成字节码文件(Demo.class),再输入java Demo 就启动了JVM来执行当前字节码文件中的内容。后面又引出了编译器的概念,将java源文件转换成字节码文件就是一个编译的过程;在内存中画图展示了JVM执行时数据传递的过程。再后来又提到了类加载器,加载到内存中执行程序的。
       我现在有几个疑问:javac.exe就是编译器吗?如果不是,它和编译器之间如何相互作用?java.exe只是启动JVM吗?还有别的作用吗?类加载器是在编译器运行之后才运行的吗?是在JVM运行前运行的吗?为什么?JVM为运行前到底存在哪?运行时又存在哪?
       新手提问,希望高手解答详细,最好有代码引证,有图表示真相!超级感谢!

作者: 回天之力    时间: 2013-11-26 10:39
一、使用
1.文件
Java的源代码存放在扩展名为“.java”的文件中;
Java源文件编译后,得到“.class”的文件
2.方法
命令行下编译java源代码的方法:javac  文件名.java
命令行下执行.class文件:java  文件名(如果文件有main方法,直接执行)
作者: 凌风    时间: 2013-11-26 11:47
javac编译器将.java文件编译成.class文件,JVM是java的虚拟机,java把.class文件交给Java虚拟机执行,类的加载都是在编译器运行之后才运行的,编译器只是把.java文件编译成.class文件。




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