编译和反编译那些事
|
文章,估计以后更新文章频率不会那么高了,不过还是会定期分享的,我的目的还是希望我的每篇文章大家都能学到点东西 基本概念 我们可以通过javac命令将Java程序的源代码编译成Java字节码,即我们常说的class文件,这是我们通常意义上理解的编译 但是,字节码并不是机器语言,要想让机器能够执行,还需要把字节码翻译成机器指令,这个过程是通过解释器实现的,叫解释执行 注意:大家别把编译和解释执行混淆了,而后面所说的后端编译过程是JVM为提高效率做的优化 在不同的虚拟机实现中,执行引擎在执行字节码的时候,通常会有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选择,也可能两者兼备 所以大家可以思考下,Java到底是属于编译型语言还是解释器语言呢 那为什么java不直接编译成可执行文件呢 为了实现跨平台 Java源码通过编译成字节码,然后通过不同平台的虚拟机解释执行,从而实现 一次编译,到处运行的跨平台的效果 编译原理 Java语言的编译期分为前端编译和后端编译两个阶段 前端编译 前端编译是指把*.java文件转变成*.class文件的过程
包括词法分析、语法分析、语义分析与中间代码生成 (编辑:文章分享网_茂名站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


