java编译是为了让机器读懂么
① java工作原理
Java工作原理
由四方面组成:
(1)Java编程语言
(2)Java类文件格式
(3)Java虚拟机
(4)Java应用程序接口
当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类 ,通过调用类(这些类实现了Java API)中的方法来访问资源系统,把源文件编译生成一种二进制中间码,存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用 。
② 计算机怎么读懂java代码的原理
首先你需要懂得编译原理这门学科,JDK将java代码编译成机器能够识别的二进制字节码,然后用JVM(java虚拟机)来加载这些二进制字节码并进行解析(翻译),然后形成指令并执行。jre其实就是java虚拟机的实现,全名叫做Java
Runtime
Environment
③ 请问java程序在编译和运行时有什么区别,系统分别都会做什么
Java程序的编译
使用命令: javac *.java
编译时,会将写的.java文件(高级语言),生成相应的字节码文件.class文件(二进制代码)
Java程序的执行
使用命令:java *
流程: 加载到 -- 连接 ---- 初始化 ...
运行时,首先会由将相应的.class文件,加载到内存中,并验证.class文件的有效性,将相应类的Class加载到内存中,并对类中的静态变量进行初始化操作,然后就由 主 类开始执行
具体的可以看一下 JVM 类加载过程,以及jVM的内存分配机制
④ java为什么要编译
因为java的跨平台特性,java所谓的一次编译,到处运行,关键就是在于java的虚拟机,也就是jvm,jvm只认识字节码,所以你写好的java代码就需要编译成字节码才能在jvm上运行。其实不只是java需要编译,C也需要编译,机器本身并不能认识你写的代码,它们只认识0、1这样的字节码,所以无论是你用什么样的语言编写的代码,要想最终在物理机器上运行,都要进行编译。
⑤ 编译是具体是什么概念
简单的说,就是把机器不能直接理解和执行的程序代码转换成机器能直接执行的代码。
因为机器直接执行的代码程序员读懂很费事,编程的话也就会浪费大量的时间。所以有高级语言的产生,高级语言的代码是程序员容易理解和编程的,但是需要编译之后才能让机器执行。
高级语言和低级语言各有各的好处。高级语言易懂易读,编程方便,而低级语言执行效率高。
⑥ JAVA中: 编译过的代码和源代码的区别是
源代码就是你在电脑里手敲进去的那些;
编译过的代码其实是你的编译软件将你手敲进去的那些代码“翻译”成了计算机可以识别读懂的机器语言,换句话说也就是一堆二进制的代码。
你写程序的时候会用到某种软件(比如java的eclipse,.NET的vs2005、vs2008等),当你要编译时只需点下软件的编译按钮,软件会自动给你编译。
⑦ java编译器的作用是什么
java编译器的作用就是“编译”,即将java源代码编译成中间代码字节码文件。
编译时,编译器(java.exe)首先读入 java 源代码,然后进行语法检查,如果出现问题就终止编译。语法检查通过后,生成中间代码即字节码。
字节码文件是一种和任何具体机器环境及操作系统环境无关的中间代码,它是一种二进制文件,是Java源文件由Java编译器编译后生成的目标代码文件。
编译器编译生成与平台无关的字节码文件后,提供给 JVM (Java虚拟机)执行。
⑧ Java是解释型还是编译型
有人说Java是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就无法执行。
也有人说Java是解释型的。因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释型的。对于C和C++,它们经过一次编译之后,可以由操作系统直接执行,所以它们是编译型语言。而Java不一样,它首先由编译器编译成.class(字节码)文件,然后在通过JVM从.class文件中读一行解释执行一行,所以它是解释型的语言。也正是由于java对于多种不同的操作系统有不同的JVM,所以实现了真正意义上的跨平台。(1)Java语言的编译-->解释-->运行过程
(2)JVM到这里,大家应该也都明白了。最后给出编译型语言和解释型语言的定义。
定义:编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。
解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!特点:编译型语言,执行速度快、效率高;依靠编译器、跨平台性差。
解释型语言,执行速度慢、效率低;依靠解释器、跨平台性好。