




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JAVA语言学习体会JAVA在编程语言家族中,有如此强大的生命力,是因为借助于JAVA语言,形成了一个JAVA产品线,具备了大量的JFC,乃至基于JAVA的架构,而决不是因为其作为JAVA编程语言本身的特色。JAVA的许多特性是从C继承来的,这使得JAVA具备了面向对象的特性,由于其利用虚拟机技术,使其实现了平台无关性。因此下面将要论述的两个主题一是语言本身的特点,二是从虚拟机技术出发简单介绍一下JAVA架构。第一个主题从软件发展史开始讲起。纵观软件发展史,我们经历了面向过程-面向对象-面向组件-面向集成的几个时代: 这里所说的软件发展史,确切地说应该指的是应用软件,强调的是基于业务,如IBM公司提出的口号是“随需而变,按需计算”。而非系统软件。大家可以看一看WINDOWS源代码泄露后众多程序员读后的感想:C语言还是世界上最好的编程语言,也就是说在系统软件编程领域,C语言的地位和作用是无法取代的。 但是C作为一个面向过程的编程语言,在应用软件的编写中,可以实现高度耦合、高效率,通常是针对一个具体的应用实现,因此无法适应快速业务变化,不适合做大型面向客户应用的开发。 面向对象:OOP提供了封装、继承、多态和重载等等一系列的特性使应用软件的架构可以被重用,开发人员可以不用关心其具体实现,而是专注于对象能够提供怎样的功能,因此提高了软件重用性,从而使得整个IT的基础架构能够适应需求的快速变化。语言的单一性和源代码级的共享决定了在跨应用系统重用的过程中必定会有各种各样的困难。 面向组件:这就是刚才提到的COM的概念。二进制级别的组件共享进一步加速了面向应用实现的步伐,继承了OO的显著的优点,使得IT基础架构能够更加快速适应业务变化,但是平台单一性依然阻碍了其复用程度。 面向集成:这是一个完全面向业务的时代,所有的应用都是以业务应用为主题去组织的。在这里提一个观点:任何技术都是在继承的基础上发展的。C+的底层实现离不开C语言。面向过程时流传最广的一句话是“程序=数据结构+算法”,但到面向对象时“类=变量+方法”,从技术角度来看,这里体现的也是一种编程思想的继承。面向集成的思想的本质在于脱离技术细节后,从非技术的思想去看待软件发展的推动,增加其支撑能力。在这里开始讲一下JAVA语言的特点,没有比较就没有鉴别,我想与其它编程语言对比一下,随便找一本JAVA的书都会看到以下几条:简单、面向对象、健壮性(!)、分布性、可移植、解释执行、多线程、动态性、高性能1、简单;体现在继承了C语法;摒弃了C中容易引发程序错误的地方,如指针和内存管理(别忘了指针操作是C的特色,容易引发错误是因为使用复杂,但带来的好处却是灵活和处理的功能的增强以及作为编程语言的代码的精炼); 丰富的类库。2、面向对象,不必多说;3、健壮性;检测程序在编译和运行时的错误;自已操纵内存(指VM);实现真数组,检测数组越界;关于简单和健壮性的讨论,是不是与程序员的水平也有关联呢,这也是一个需要讨论的问题。当然它能结省了一部分工作量,但这里还存在一个编程语言应用领域的问题,即去用它做什么工作,是否合适。在这里我引用C的鼻组stanley B Lippman 的一句话,“JAVA VM也无非就是几万行的C代码而已”。4、分布性、可移植、解释执行;源于其虚拟机技术和中间字节码的实现。这一点其它许多脚本语言都可以实现。比如PERL,Practical extraction and report language,脚本语言具有解释执行的特性,只要在不同的系统,如WINDOW、UNIX都有其解释器,只要安装完成后,同样可以实现跨平台。5、多线程C和C+同样能够实现,但JAVA声明了其对多线程技术的实现更简单,更安全。这里也同样存在着编程人员对于技术细节理解和把握的需求程度。因为任何技术都是一柄双刃剑,其运用的合理性要置于其应用的领域中去考察,是否适用。举例:VC和CB的差别。举例用PERL实现的MP3改名。6、动态性和高性能;二者是互相矛盾的。动态性在于程序动态装载运行过程中所需的类,这是因为其中间字节码由VM解释执行带来的特性,这也带来了性能的问题,随着其解释器速度的提高,JAVA也只能说其翻译目标代码的速度与C、C+已很接近。而C+在类中变量或成员函数变化时,必须全重新编译。提到虚拟机,它是用一个解释层屏蔽了硬件细节。这里提到了一个层的概念,因此,在这里我想借用J2EE介绍架构设计方面的内容。一个层就是相关功能的一个一致的集合。在一个严格分层的结构中,第N层仅使用第N1层提供的服务。这种层次结构的思想的实现有很多,如TCPIP五层结构应用的就是一个典型的分层思想。举例大机客户端,客户端实质仅仅是一个数据录入和展示界面;二层为CS,在这里引出前置机的概念;三层结构客户层、应用组件层和数据层。DCC系统就是一个典型的分层架构。应用架构体系的目的在于提供一个业务的模型与理论基础以满足我行整体业务的扩充与发展。分层的好处在于提供一个弹性架构,可根据实际业务的需要或者技术的发展快速嵌入组件(Component)以接入方式(Adapter)运行业务系统。全行统一业务DCC主机SNA-GW前置柜面网点龙卡清算网银证券重客ATMP中间业Call分行统一渠道在前置系统中,实际包括两个子系统,一个是前置子系统,另一个是特色业务子系统,在两个子系统之间,是高速数据通道。具体实现上,又包括以下模块:A. 渠道系统的接入B. 服务系统的接入C. SNA-GW的接入D. 数据整合(拆/打包、序列化、映射)E. 安全控制(加/解密、MAC校验)F. 交易控制(交易识别、决策、执行、交易一致性控制、通讯路由决策)G. 应用功能(前置NIF、虚拟柜员分配、签约本地登记、签约通知、龙卡金卡决策等)分层也可以说是一个纵向的架构。但若提到横向的概念,是一个什么状况呢?EAI的概念大家耳熟能详。由于各套单独系统的作大(举例:如联通客服、计费、出账到账务等),单纯的从业务上整合,其实提出一个最佳的方案并不难,但往往由于各种非技术因素的制约而无法实施。资金、实施周期、过渡期业务处理等等。基于此作EAI,出现了WEBSERVICE技术。(在这里注意提到的是一种技术)。即各系统仍然以其相对独立的身份存在,但要把其要与其它系统分享的服务和数据通过WSDL(web service describe language)进行描述(其利用了XML技术),利用UDDI(universal description discovery and integration)。这里其实也是一个松藕合的思想。WEBSERVICE思想发展的前身是EDI,但其只能实现数据而不包括服务。在异构环境下构建分布式系统时遇到了困难的解决方案都有哪些呢?还有一种就是CORBA。CORBA模型提供了一种标准的软件平台,分布的对象可以在此平台上无缝透明地交互。在这种情况下,ORB允许对象公布其接口,此时还允许客户端程序查找计算机网络上的这些对象,并请求它们提供服务(MICO就是开源CORBA的实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南省宜良县2025年上半年事业单位公开遴选试题含答案分析
- 河北省容城县2025年上半年公开招聘城市协管员试题含答案分析
- 河北省康保县2025年上半年公开招聘城市协管员试题含答案分析
- 2025年度智能穿戴设备采购订货合同
- 2025多人共建养老养生项目合伙协议书
- 2025年度创新型基础设施建设项目全过程工程造价咨询合同
- 2025年度港口码头视频监控技术服务合同
- 2025年度道路拓宽工程打桩劳务分包合同(含交通疏导)
- 2025版时尚杂志图文设计制作服务协议
- 2025年度健康养老产业入股投资合同
- 高级职称答辩模板
- 建筑工程盾构机故障应急预案
- 《胰源性门脉高压症》课件
- 招标入门摇号定标招标文件范本
- 工程送审金额超合同价10%的补充协议
- 2024年初级招标采购从业人员《招标采购专业实务》考前通关必练题库(含答案)
- 2024年秋季新北师大版七年级上册数学全册教案
- 中学安全管理制度汇编
- 2024年BIM模型转换与兼容性合同
- 《继电保护和安全自动装置屏柜建模及交互规范》
- 住院精神疾病患者自杀风险护理
评论
0/150
提交评论