我的Java之路一

我的Java之路一

/******************************************************************

*本文首发于bbs.bluegem.org的Java

*本人emailchenfei@sohu.com

*如转载本文,请保留首发地和本人联络方式,以方便交流,谢谢!

******************************************************************/     

初接触java,被一大堆概念搞迷糊了。什么javajava2j2sej2eej2mejavabeansEJB……呀,都是些什么呀?糊涂哟!

先澄清个事情,自从jdk 1.2推出以后,sun公司就将java重新命名为java2,现在所提的java一般就是指java2

之所以java显得如此神秘,是因为,java既是一种变成语言,也是一个平台(platform),或者说是架构。如果不了解java平台,就无法理解java。遗憾的是很少有人能深入浅出的讲解java 平台。

如果撇开java平台,仅仅作为一种编程语言,java在语法以及编程思想(指coding方面)上与传统语言没有多大本质区别。java具有纯面向对象、优化的内存管理模型等等好处,具体细节查书吧,我写也是copy&paste,没意思哦。

下边我就按照我的理解说说java 平台。

首先说,编译后的java程序并不是直接可以在某个特定操作系统上运行的二进制代码,而是一种所谓的字节码。要把安装了java vm的计算机看成一个虚拟机,字节码只能在这个虚拟机上运行。至于真正的硬件和操作系统是什么并不重要。什么?您没听说过虚拟机?那赶紧把《计算机原理》翻出来看看,我可讲不了这么高深的东东。其实不明白也无妨,只要知道无论在win*nix抑或mac OS上要运行java语言编的程序必须安个叫java虚拟机的玩意就够了。

说到这里,有心人已经可以想见,既然java写的程序是运行在java虚拟机上,那么同一个编译后的java就可以在任何java虚拟机上运行,而不必 java虚拟机下到底是什么操作系统什么硬件了。这也就是SUN一直吹嘘的“一次编写,处处运行”特性。好像很自然就引出来了,看到大学里基础课程的重要性了吧,哈哈!

了解了这一点以后就可以继续了。

Java体系结构的基础是j2sejava 2 platform,standard editions),顾名思义,标准版。j2se最底层是JREjava 运行环境),JRE提供包括java apijava虚拟机和其他支持applet以及java应用程序运行的组件等。也就是说安装了JRE,就可以运行由java编写的各种程序了。有了JRE还不能开发java程序,想开发java程序还需要jdkjava 开发包),对应win中的sdkJdk自然中包括compilerdebuger等等工具。具体内容参考http://java.sun.com/j2se/overview.html吧,人家官方网站讲得蛮清楚。

J2eeJava 2 Platform, Enterprise Edition),相对j2se,很明显j2ee就是为企业服务的。j2eej2se的一个超集,为企业运算提供了一个平台。这个在这个平台上使用java技术开发具有很多优点:易于开发、跨平台性、兼容其它应用比如数据库、CORBA、轻松实现中间件。实现的技术手段有EJB(Enterprise JavaBeans), Java Servlets API,JSP( JavaServer Pages) xml

下面做些名词解释。

Java应用程序(java application):像普通的windows应用程序或者linuxelf应用程序一样,用java语言编写的“可执行程序”。打引号的意思是说它只能在java虚拟机上运行,而不能在低一级的虚拟机上运行。

Applet:所谓的“java小程序”,迷糊了吧?其实我第一次看得时候不明白是什么。Applet是一种特殊的程序,只且只能在支持applet的浏览器中运行,如果浏览器不支持,那她就只能哀叹自古红颜多薄命了。好在现在大部分浏览器都支持applet

Servletjsp

在解释jspservlet之前先讲讲cgi和服务器端脚本的区别。Cgi和服务器端脚本都实现动态网页的技术,cgi是个运行在服务器端的特殊的可执行程序,用c就可以写个cgi;而服务器端脚本是一种解释执行的脚本语言,不是可执行程序。她的运行需要www服务器支持,比如iis支持的aspasp.netapatch支持php都是。

Servlet就是在java平台上运行的cgi,是编译好的用java写好的特殊程序。而jsp就是那个需要www服务器支持的脚本语言。

Jdbcjava平台上连接数据库的东东,作用类似于odbc

EjbEnterprise JavaBeans):我现在也不太明白到底是个什么东东。只知道是个具有高可重用性程序。主要作用是隐藏异构系统得区别。给上层的jspservlet提供独立的编程接口,jspservlet程序员不必 ejb后边到底是什么样的系统。

我对java平台的理解:

java的核心在于跨平台。把复杂的系统细分成多层,每层屏蔽掉底层的异构特性,为高层提供统一的访问接口。这种模型可以参考网络的七层协议模型。

就单机而言,比如pentium上跑windows2000的机器、pentium上跑Linux的机器、rs60000上跑aix的机器都是不同的平台。Sun公司针对不同的操作系统开发了相应版本的java虚拟机,这样,同一个java应用程序不必重新编译就可以在安装了java虚拟机的任何平台上运行了。

对网络环境来说稍微复杂些。传统的三层模型不讲了,不懂的自己查资料。Java平台的模型有点不同。请参考http://java.sun.com/j2ee/images/appmodel.jpg。由ejb为不同的数据库提供了相同的访问方法,屏蔽掉了数据库的异构性。这样jspservlet的程序员就可以不必 心访问不同数据库的细节问题,把精力集中于算法。

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 1

打赏作者

chenfei

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值