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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

有这样几个术语概念: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为运行前到底存在哪?运行时又存在哪?
       新手提问,希望高手解答详细,最好有代码引证,有图表示真相!超级感谢!

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 神马都是浮云

查看全部评分

2 个回复

倒序浏览
一、使用
1.文件
Java的源代码存放在扩展名为“.java”的文件中;
Java源文件编译后,得到“.class”的文件
2.方法
命令行下编译java源代码的方法:javac  文件名.java
命令行下执行.class文件:java  文件名(如果文件有main方法,直接执行)

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 淡定

查看全部评分

回复 使用道具 举报
javac编译器将.java文件编译成.class文件,JVM是java的虚拟机,java把.class文件交给Java虚拟机执行,类的加载都是在编译器运行之后才运行的,编译器只是把.java文件编译成.class文件。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马