JAVA语言学体会.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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层仅使用第N-1层提供的服务。这种层次结构的思想的实现有很多,如TCPIP五层结构应用的就是一个典型的分层思想。举例大机-客户端,客户端实质仅仅是一个数据

文档评论(0)

pao0969363mou8 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档