java即时编译,Java源代码 怎么即时编译

1,Java源代码 怎么即时编译什么意思呢?myeclipse 中就是及时编译的告诉你一个秘密,智能手机能编写python,j2me,mshell语言cmd里进源文件目录 , 然后javac编译【java即时编译,Java源代码 怎么即时编译】
2 , 即时编译器和JAVA解释器的区别Java的编译方式有两种,2113一种是和C++等语言一样的,把源代码编译成和本地机器平台相关的机器语5261言,叫即时编译 。另一种是编译成一种中4102间的字节码,与机器平台无关的,这种也是常用的,叫解释型的 。即时编译器因1653为产生的是本地机版器的机器码 , 能直接执行;不像字节码还要在JVM(Java虚拟机)上解释运行,权所以执行得更快些 。即时编译器预先把程序编译完成,当执行时就直接调用 。而JAVA解释器则是当需要调用该代码时才临时编译解释,而且没执行一次就要编译一次 。所以即时编译器好一些 。即时编译器预先把程序编译完成,当执行时就直接调用 。而JAVA解释器则是当需要调用该代码时才临时编译解释,而且没执行一次就要编译一次,而即时编译器则是一次编译多次执行 。编译器负责把java程序转成class文件,方便jvm来读取它.jvm是java虚拟机,其实它就是解释器,把class文件中的命令转成某种平台的命令,比如把java命令转成windows下的命令,然后java程序就执行了.
3,JAVA简单编译import java.io.*;import java.util.*;public class CheckLetter/*** @param args*/ public static void main(String[] args) throws IOException// TODO Auto-generated method stubBufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));String s;String[] data =http://www.lisdn.com/mnsj/hhwd/Map countMap = new HashMap();for(int i = 0;i 4,java的编译器与即时编译器有什么区别编译器(在windows下,javac.exe)将源代码(java文件)编译为字节码(bytecode),存放在class文件中 。字节码不能直接在机器上执行 , 而是通过虚拟机(windows下是java.exe)执行 。具体的执行方式有两种:1. 一般情况下解释执行 。解释执行并不是“解释为用c++语言写成的程序”,而是jvm把字节码看成脚本,根据字节码中的指令 , 由JVM去调用实际的本地方法 。2. 在打开了JIT参数的前提下,jvm会把执行过程中发现的热点位置,由jvm内部的即时编译器编译为本地机器码直接执行 。编译器将java文件编译为class文件,解释器将class文件变为机器语言你好!编译器(在windows下 , javac.exe)将源代码(java文件)编译为字节码(bytecode),存放在class文件中 。字节码不能直接在机器上执行,而是通过虚拟机(windows下是java.exe)执行 。具体的执行方式有两种:1. 一般情况下解释执行 。解释执行并不是“解释为用c++语言写成的程序” , 而是jvm把字节码看成脚本,根据字节码中的指令,由JVM去调用实际的本地方法 。2. 在打开了JIT参数的前提下,jvm会把执行过程中发现的热点位置,由jvm内部的即时编译器编译为本地机器码直接执行 。编译器将java文件编译为class文件,解释器将class文件变为机器语言我没听过即时编译器.我知道得有, 编译, 直译.直译: 程序保持源码状态, 执行时, 直接依照源码进行执行.编译: 编译器将源码编译成"可执行"数据格式, 运行环境则去读取"可执行"数据格式之文档.可执行环境有两种,1. 特定环境的机械语言, 如windows下的com/exe.2. 中间语言, 如Java. 他的程序执行环境(JVM)执行在windows上. Java编译後为可执行的中间语言, 程序执行在JVM上. 这是用来跨平台的. 现在Microsoft的.NET也有提供中间语言模式. 这就是某些程序要求先安装Java, 才能执行的原因.我没听过即时编译器.我知道得有, 编译, 直译.直译: 程序保持源码状态, 执行时, 直接依照源码进行执行.编译: 编译器将源码编译成"可执行"数据格式, 运行环境则去读取"可执行"数据格式之文档.可执行环境有两种,1. 特定环境的机械语言, 如windows下的com/exe.2. 中间语言, 如Java. 他的程序执行环境(JVM)执行在windows上. Java编译後为可执行的中间语言, 程序执行在JVM上. 这是用来跨平台的. 现在Microsoft的.NET也有提供中间语言模式. 这就是某些程序要求先安装Java, 才能执行的原因.java的编译方式有两种,一种是和c++等语言一样的 , 把源代码编译成和本地机器平台相关的机器语言,叫即时编译 。另一种是编译成一种中间的字节码,与机器平台无关的 , 这种也是常用的,叫解释型的 。即时编译器因为产生的是本地机器的机器码 , 能直接执行;不像字节码还要在jvm(java虚拟机)上解释运行,所以执行得更快些 。5,解释一下 即时编译 不要抄了谢谢.net程序编译时生成的是中间语言IL, IL是不能直接被硬件执行的,需要虚拟机层(对.net来说就是CLR)解析执行,解析是需要代价的,所以无论是.net的CLR还是java的jvm,都采用了即时编译技术,在运行时对中间代码再次编译,转化成对应平台的程序指令,使程序效率更加接近原生的应用程序我按照参考做了一个例子看看,但是总在那句报错,我找了很多方法还是不行..郁闷ing...usingSystem;usingSystem.CodeDom;usingSystem.CodeDom.Compiler;usingMicrosoft.CSharp;usingSystem.Reflection;usingSystem.Windows.Forms;usingSystem.Text;namespaceCompilerApp///<summary>///Class1的摘要说明 。///</summary>classClass1///<summary>///应用程序的主入口点 。///</summary>[STAThread]staticvoidMain(string[]args)GetValue("aaaa");}staticobjectGetValue(stringvalue)StringBuildercodeSnippet=newStringBuilder();codeSnippet.Append("usingSystem;\r\n");codeSnippet.Append("usingSystem.Windows.Forms;\r\n");codeSnippet.Append("namespaceCzGcodeSnippet.Append("publicclassEval\r\n");codeSnippet.Append("codeSnippet.Append(" publicEval()codeSnippet.Append(" publicobjectGetValue()\r\n");codeSnippet.Append("codeSnippet.Append(" return"+value+";\r\n");codeSnippet.Append(" }\r\n");codeSnippet.Append(" publicvoidShowMesg()\r\n");codeSnippet.Append("codeSnippet.Append(" System.Windows.Forms.MessageBox.Show(\"Applicationnamecannotbeempty\");\r\n");codeSnippet.Append(" }\r\n");codeSnippet.Append("}\r\n");codeSnippet.Append("}\r\n");codeSnippet.Append("\r\n");codeSnippet.Append("\r\n");CodeSnippetCompileUnitunit=newCodeSnippetCompileUnit(codeSnippet.ToString());ICodeCompilercompiler=newCSharpCodeProvider().CreateCompiler();CompilerParameterspara=newCompilerParameters();para.ReferencedAssemblies.Add("System.dll");para.ReferencedAssemblies.Add("System.Windows.Forms.dll");para.GenerateInMemory=true;para.GenerateExecutable=false;para.OutputAssembly="CompilerApp.exe";Assemblyasm=compiler.CompileAssemblyFromDom(para,unit).CompiledAssembly;Typetype=asm.GetType("CzG.Eval");MethodInfomi=type.GetMethod("Eval.ShowMesg",BindingFlags.Public|BindingFlags.Instance);//*****错在这里!!!!*****objectobj=asm.CreateInstance("CzG.Eval");returnmi.Invoke(obj,null);}}}大家直接拷贝粘贴就可以运行的,麻烦看看吧...谢谢啊丫 , 就是用到的时候再编译 。

    推荐阅读