java,是一种解释型语言。由sun公司开发,最初用于移动设备软件开发,结果却因为internet的发展而成名。
java 语言基本上属于一个完全面向对象的语言,并且语言的设计仍然以简捷为重点,因此有其它语言基础的朋友学习java语言会感觉比较简单,对于这个语言学习的难点则是面向对象的相关概念,包括:包、类、对象、实例、接口、继承、重载与覆盖,还有就是类、变量、函数的相关作用域,这些是语言学习的重点和难点。
对于语言的学习可以参考《java 2参考大全》,对于面向对象的学习可以参考《think in java》,先学语言打好基础,再学面向对象的概念以及设计,通过自己设计程序再进一步去了解设计模式,循序渐进地达到java程序员的基本要求。
学习java还有个非常重要的就是类库,因为没有人还会从头开发程序,sun公司提供了一套完整的开发用的基础类库,如何用好这些类才是java语言学习的重中之重。
jvm (java virtual machine, java虚拟机)。
就是java程序运行的虚拟环境,因为java是解释型的语言,因此需要一个边解释边运行的支撑环境。同时,jvm又是在os(操作系统)之上的,对于在jvm上运行的java程序提供了统一的标准接口,从而屏蔽了操作系统的差异性,实现了java代码的“一次编写,处处运行”的承诺,这个解释说明。net平台理论上也可以实现这个功能,只是微软没有提供这样的支持。
为了提升程序运行的效率以及代码知识产权的保护,java代码会使用jdk中的编译器编译成字节码(中间代码),从而运行在jvm之上,但是这个编译结果与c/c++这种编译型语言编译出来的结果不同,java编译出来的是一种结构中立的中间文件格式,只能在jvm上执行,而c/c++编译出来的已经是最终的执行程序,操作系统只是管理和支撑应用运行,但是编译出来的结果已经是机器码。因此java的class文件可以使用反编译工具转换成 java代码进行分析,推荐的反编译工具是jad及它的eclise插件。
许多公司都有开发自己的jvm,据测试数据显示性能都比sun提供的免费版本要好,但是我实际使用中没有发现明显地区别,而sun也有高级但是收费的版本,因此性能上没有显示地提升还是使用免费地版本就可以了。
jre(java runtime environment,java运行环境)。jre提供了类库、jvm与其他组件来支持applet和java应用程序的运行。另外,jre拥有两个关键的发布技术:java plug-in与java web start,java plug-in支持applet运行在大部分浏览器上,java web start则可以将一个独立的应用程序发布到网络上。
jre同时还是j2ee平台企业级应用开发与部署的支撑技术,但是不包括编译器与调试器等各种工具去支持applet和应用程序的开发。
java plug-in.这个技术是jre的一部分,用于连接浏览器与java平台。这个连接使得web站点的applets运行在客户端的浏览器中。
java web start:只要拥有相同版本的jre,独立的java应用程序就可以通过这个技术发布到网络上。
jdk(java development kit,java开发工具)。
包括了java运行环境(java runtime envirnment),一堆java工具和java基础的类库(rt.jar),还有java类库的源代码(src.zip)以及学习用的例子 (sample与demo)。为了使程序安装后就可以运行,许多java应用服务器会集成jdk,原因可以参考我所写的《jre与jdk在启动应用服务器中的作用》。
无论是jre还是jdk最主要是使用他们携带的jvm,以及安装到jdk与jre目录下的lib目录里的jar包。使用jre还是 jdk都通过java_home这个参数完成,而对lib目录下的jar包则通过classpath目录进行添加。值得注意的是如果java_home设置成jdk的安装目录,实际上用的是包含在jdk安装目录下的jre目录里的jvm.
jdk里面还包括了开发所需要用的编译、跟踪、发布等多种工具,这里就不一一描述,大家可以在网上查询资料,如果需要我这边补充,也可以跟帖说明。
j2se( java 2 standard edition, java 2 标准版)。
java 2平台标准版(现在叫java se)支持客户端和服务器端的java应用程序开发,如今还包括了嵌入式和实时系统环境。java se还支持java web services的开发,并且还是java ee平台的基础。
java se平台中有两个主要的产品就是jre与jdk.
j2ee( java 2 enterprise edition, java 2 企业版)。
j2ee(现在叫java ee)是一种工业标准,用于支持可移植、可扩展、健壮并安全的服务器端java程序。java ee提供了web服务、组件模型、管理和通讯api从而可以实现符合工业标准soa框架与web应用程序。java ee平台包括符合java ee规范的应用服务器,以及相关的工具、例子及帮助文件。还有符合java ee标准的应用程序的发布与调试工具。
简单来说java ee就是一组规范组成的,这些规范合成到一起组成一个技术标准。这个标准现在是由jcp组织制定,最新的版本是2006年6月发布的java ee 5.0,所有的应用服务器产品都希望通过这样的认证。因为所有认证过的产品从理论上讲符合j2ee规范开发的应用程序都可以平滑地移植,现实中我做的移植工作也只需要修改不到5%的内容,并且大多是xml配置文件而不涉及到源代码。这样的好处使用户无须绑定到某个厂商的平台上,也为扩展这个市场打下了基础。
java ee 5.0的认证过程是必须通过sun公司提供的软件测试包,测试包里面包括了27000多个功能点的验证,验证通过后就可以获得这个标志,并且会在sun的网站上挂出。http://java.sun.com/javaee/overview/compatibility.jsp
在2006年12月apusic 5.0全球第四家通过了这个认证,这个事实也就说明中国的应用服务器产品终于在技术上没有了差距,甚至因为apusic研发产品的态度专注,所以还领先了国外的主要竞争对手。
java ee sdk就是sun公司开发的一个符合j2ee标准的应用服务器,可以下载后免费使用来了解java ee的最新技术,当然也可以下载apusic 5.0这个也是符合java ee最新标准的产品,而且会有更加友好的中文界面与中文帮助。
写的过程中,总觉得知识点都在相互关联着,于是写出来的东西好像会越来越多,无法收笔。因此,希望看过的朋友多给提宝贵意见,使我写的东西更加有针对性,能够为学习和使用j2ee技术的朋友,以及使用我们apusic产品的客户带来收获。
闽公网安备 35060202000074号