gcj的意思是一个轻巧的,性能优越的Java语言编译器。
gcj是GNUCompilerfortheJavaProgramingLanguage的简称。
在gcj内部,它包含Java编程语言的前端(gcc/java),一个运行时库(libjava)和其他工具库(boehm-gc,libffiandzlib)。
大多数的运行时库的实现是在GNUClasspathproject共享的。
它能够将Java源文件编译为Java字节码文件或者直接将Java源文件编译为本地机器码,它也能够将Java字节码文件编译为本地机器码。
被编译的应用程序和gcj运行时libgcj进行链接。
该运行时提供了核心类库,垃圾回收器和一个字节码解释器。
libgcj能够动态加载和解释类文件,产生混合编译/解释的应用程序。
该运行时同名为GNUClasspath的工程整合在一起。
最多支持jdk1.4的类库和一些jdk1.5的类库。
Java编译器概念
JAVA编译器(javac.exe)的作用是将java源程序编译成中间代码字节码文件,是最基本的开发工具。
编译时首先读入java源程序(即在MS-DOS命令行下键入javacHelloWorld.java等文件名参数和其他选项参数),然后进行语法检查,如果出现问题就终止编译。
语法检查通过后,生成中间代码即字节码,字节码文件名和源文件名相同,扩展名为.class。
Java以跨平台、面向对象、多线程、兼具编译型语言和解释型语言、稳定性好、安全性强的特点,以及与Internet的完美结合而取得成功。
工作原理:字节码文件是一种和任何具体机器环境及操作系统环境无关的中间代码,它是一种二进制文件,是Java源文件由Java编译器编译后生成的目标代码文件。
编程人员和计算机都无法直接读懂字节码文件,它必须由专用的Java解释器来解释执行,因此Java是一种在编译基础上进行解释运行的语言。
Java解释器负责将字节码文件翻译成具体硬件环境和操作系统平台下的机器代码,以便执行。因此Java程序不能直接运行在现有的操作系统平台上,它必须运行在被成为Java虚拟机的软件平台之上。
Java语言这种“一次编写,到处运行”的方式,有效地解决了大多数高级程序设计语言需要针对不同系统来编译产生不同机器代码的问题,即硬件环境和操作平台的异构问题,大大降低了程序开发、维护和管理的开销。
还没有评论,来说两句吧...