1. Java与C++程序在编译和运行上有什么区别?
C++源码编译以后,生成的是特定机器可以直接运行的文件,而java源码经过编译后,生成的是中间的字节码文件。这些字节码文件是需要放在JVM中运行的,而JVM是有多个平台版本的,因此,Java具有跨平台性,而C++没有。
2. 什么是JVM及其工作原理?
JVM是一种用软件模拟出来的计算机,它用于执行Java程序,有一套非常严格的技术规范,是Java跨平台特性的依赖基础。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统,它运行Java程序就好像一台计算机运行C或C++程序一样。
3. Java程序为什么无须delete语句进行内存回收?
Java的堆内存数据的释放功能是由垃圾回收器自动进行的,无需程序员显示的调用delete方法。该机制有效地避免了因为程序员忘记释放内存而造成内存溢出的错误,相对于C++等需要显示释放内存的语言,是一种巨大的改进。
4. 如何利用命名提示符把Java程序打包成jar文件?
利用JDK的bin目录下的jar命令就可以完成Java程序的打包,一班需要包含程序所需的class文件、配置文件和manifest.mf文件。其中c、v、f这三个命令参数最为常见,以下是一个把当前目录的所有文件都打包成jar文件的事例:
jar cf test.jar .
5. 关于Java Web项目的生成、部署和配置问题
Java Web应用程序的生成,需要把它所需的class文件编译好以后存放在WEB-INF/classes目录下把存放类库文件的lib文件夹以及web.xml放在WEB-INF中,与WEB-INF文件夹同一层次的目录存放的是JSP、HTML等页面文件。如果需要添加自己的配置,需要增加或修改WEB-INF/web.xml文件。对于Java Web应用程序的部署,可以使用文件夹和War两种部署方式,其中War就是文件夹按照jar的方法进行打包,只不过后缀名为War。
6. EJB项目的生成和部署问题
EJB是Java EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准,是分布式加法的一把利器。
EJB项目的生成过程主要有两个步骤:编译class文件和在特定位置中存放配置文件。例如:对于EJB3.0程序的JPA,就需要在META-INF文件夹下存放持久化的配置文件persistence.xml。部署过程:就是把打包好的jar文件或者不打包的文件夹,存放在Java EE服务器指定的路径下即可。