Java脚本编程:语言、框架与模式[赠品]
基本信息
- 作者: (美)Dejan Bosanac [作译者介绍]
- 译者: 翟育明 俞黎敏
- 丛书名: Sun公司核心技术丛书
- 出版社:机械工业出版社
- ISBN:9787111238492
- 上架时间:2009-12-11
- 出版日期:2008 年5月
- 开本:16开
- 页码:308
- 版次:1-1
- 所属分类:
赠品
编辑推荐
作者是JSR223专家组成员之一,内容权威、准确可靠。.
CSDN Java大版主最新译作。..
讲解脚本语言的基本概念和使用方法。
阐述与示例并举,用语规范标准,通俗易懂。...
内容简介回到顶部↑
本书讲解了脚本语言的基本概念和使用方法,概括了java开发人员可以使用的解决方案,并探讨了在java应用程序中应用脚本语言的用例和设计模式。内容分为五部分:第一部分介绍脚本语言的基本特征及适合用脚本语言的应用程序;第二部分介绍java平台实际的技术和解决方案,详细讲解了groovy脚本语言;第三部分介绍脚本语言在实际项目中的使用;第四部分介绍java平台的脚本编程规范;第五部分提供了关于文中涉及的技术的安装和使用细节。
本书内容丰富,讲解清晰,适合作为软件开发人员的参考书。
本书内容丰富,讲解清晰,适合作为软件开发人员的参考书。
作译者回到顶部↑
本书提供作译者介绍
Dejan Bosanac是一名专业的软件开发人员和技术顾问。他致力于各种技术的整合和互用,尤其是与Java和Web相关的应用。他花了几年的时间开发复杂的软件项目,从高流量的网站到企业级应用程序。他是JSR 223专家组的成员之一。
.. << 查看详细
.. << 查看详细
目录回到顶部↑
第一部分
第1章 脚本简介
1.1 背景
1.2 脚本语言的定义
1.2.1 编译器与解释器
1.2.2 产品中的源代码
1.2.3 类型策略
1.2.4 数据结构
1.2.5 代码作为数据
1.2.6 小结
1.3 脚本语言和虚拟机
1.4 脚本和系统编程的对比
1.4.1 运行时性能
1.4.2 开发速度
1.4.3 健壮性
1.4.4 维护
1.4.5 极限编程
1.5 混合法
1.6 一个脚本案例
1.7 小结
第1章 脚本简介
1.1 背景
1.2 脚本语言的定义
1.2.1 编译器与解释器
1.2.2 产品中的源代码
1.2.3 类型策略
1.2.4 数据结构
1.2.5 代码作为数据
1.2.6 小结
1.3 脚本语言和虚拟机
1.4 脚本和系统编程的对比
1.4.1 运行时性能
1.4.2 开发速度
1.4.3 健壮性
1.4.4 维护
1.4.5 极限编程
1.5 混合法
1.6 一个脚本案例
1.7 小结
译者序回到顶部↑
当今,脚本语言已经在信息技术基础结构中扮演了重要的角色。它们广泛用于各种各样的任务,从工作自动化到复杂软件项目的原型和实现,而且在越来越多的应用中也显得越来越重要。随着时间的推移,脚本语言在不同的系统中有着不同的任务,但仍不可忽略传统(原生)的脚本语言在整个信息技术基础结构中的作用。.
首先,本书从脚本语言的基础概念和用法入手,介绍如何通过语言的基本特征来区分脚本语言与系统编程语言,了解脚本语言幕后的概念,并且可以学到Java开发人员可以使用的解决方案,以及在Java应用程序中如何应用脚本语言和相关的设计模式。
接着,本书开始关注Java平台实际的技术和解决方案。目前,在JVM当中可以使用的有三大流行脚本语言——BeanShell、JavaScript和Python,在了解它们的主要特性之后,可以利用它们来与Java应用程序进行交互。本书通过涵盖Groovy内建的类似于Java的语法和所有的脚本概念,讨论了Groovy与Java的整合,以及一些与安全性相关的问题,并且涵盖了一些可以帮助日常编程任务的Groovy扩展。还介绍了如何访问数据库、创建和处理XML文件,以及如何利用Groovy中特定于脚本的特性,轻松地创建简单的Web应用程序和Swing用户界面,从而详细讲解了Groovy脚本语言。本书还通过Bean Scripting Framework(BSF)讲解了一般的Java脚本框架。除了解释如何在项目中给任何兼容的脚本语言实现一般的支持之外,还讲解了在BSF中实现的基础的一些基本抽象,并介绍了一些成功的用法。
同时,本书还关注脚本语言在实际Java项目中的使用,关于给日常编程任务使用脚本的话题,例如,其中有单元测试、交互式调试和项目构建,Java中的实用脚本。在脚本模式中,讲解了涉及脚本语言的Java应用程序设计模式。介绍了如何利用脚本来实现传统设计模式中的某些部分,并介绍了一些只特定于脚本环境的新设计模式。还讲解了这些设计模式的利与弊,以及它们的用途。..
根据JSR 223而创建的Scripting for the Java Platform规范中,包括了该规范定义的两个API:先是作为Java平台一个标准部分的Scripting API,在Mustang(Java SE 6)发行包中已经直接包含了它。Scripting API与BSF一样,但是它带来了许多现代脚本框架所需要的新特性。另一个则是构建在Scripting API之上的Web Scripting Framework框架,创建它使脚本语言能够在一个Servlet容器内部产生Web内容。此外,还解释了原生的脚本语言(如PHP)如何与Java平台结合,以便给Web应用程序开发带来更多的灵活性。
最后,在附录中提供了关于本书提及的某些技术安装和使用的细节,例如,描述了如何安装、构建和配置Groovy脚本语言,如何给集成开发环境安装Groovy支持的说明,并且还描述了如何安装第10章中实例运行时所需要的JSR 223的参考实现。
虽然我们在翻译的过程中竭力以求信、达、雅,但限于自身水平,必定会有诸多不足,还望各位读者不吝指正。大家可以通过访问我的博客http://YuLimin.JavaEye.com/或者发送电子邮件到YuLimin@163.com来交流。
本书由我组织进行翻译,翟育明翻译了第1~8章,我翻译第9章和第10章,并负责全书所有章节的审校。参与本书翻译和审校的还有:荣浩、杨春花、凌家亮、王琳、邱庆举、李勇、师文丽、王建旭、程旭文、罗兴、刘传飞、林仪明,在此再次深表感谢。
快乐分享,实践出真知,最后,祝大家能够像我一样在阅读中享受本书带来的乐趣!...
Read a bit and take it out,then come back read some more.
俞黎敏
2008年4月
首先,本书从脚本语言的基础概念和用法入手,介绍如何通过语言的基本特征来区分脚本语言与系统编程语言,了解脚本语言幕后的概念,并且可以学到Java开发人员可以使用的解决方案,以及在Java应用程序中如何应用脚本语言和相关的设计模式。
接着,本书开始关注Java平台实际的技术和解决方案。目前,在JVM当中可以使用的有三大流行脚本语言——BeanShell、JavaScript和Python,在了解它们的主要特性之后,可以利用它们来与Java应用程序进行交互。本书通过涵盖Groovy内建的类似于Java的语法和所有的脚本概念,讨论了Groovy与Java的整合,以及一些与安全性相关的问题,并且涵盖了一些可以帮助日常编程任务的Groovy扩展。还介绍了如何访问数据库、创建和处理XML文件,以及如何利用Groovy中特定于脚本的特性,轻松地创建简单的Web应用程序和Swing用户界面,从而详细讲解了Groovy脚本语言。本书还通过Bean Scripting Framework(BSF)讲解了一般的Java脚本框架。除了解释如何在项目中给任何兼容的脚本语言实现一般的支持之外,还讲解了在BSF中实现的基础的一些基本抽象,并介绍了一些成功的用法。
同时,本书还关注脚本语言在实际Java项目中的使用,关于给日常编程任务使用脚本的话题,例如,其中有单元测试、交互式调试和项目构建,Java中的实用脚本。在脚本模式中,讲解了涉及脚本语言的Java应用程序设计模式。介绍了如何利用脚本来实现传统设计模式中的某些部分,并介绍了一些只特定于脚本环境的新设计模式。还讲解了这些设计模式的利与弊,以及它们的用途。..
根据JSR 223而创建的Scripting for the Java Platform规范中,包括了该规范定义的两个API:先是作为Java平台一个标准部分的Scripting API,在Mustang(Java SE 6)发行包中已经直接包含了它。Scripting API与BSF一样,但是它带来了许多现代脚本框架所需要的新特性。另一个则是构建在Scripting API之上的Web Scripting Framework框架,创建它使脚本语言能够在一个Servlet容器内部产生Web内容。此外,还解释了原生的脚本语言(如PHP)如何与Java平台结合,以便给Web应用程序开发带来更多的灵活性。
最后,在附录中提供了关于本书提及的某些技术安装和使用的细节,例如,描述了如何安装、构建和配置Groovy脚本语言,如何给集成开发环境安装Groovy支持的说明,并且还描述了如何安装第10章中实例运行时所需要的JSR 223的参考实现。
虽然我们在翻译的过程中竭力以求信、达、雅,但限于自身水平,必定会有诸多不足,还望各位读者不吝指正。大家可以通过访问我的博客http://YuLimin.JavaEye.com/或者发送电子邮件到YuLimin@163.com来交流。
本书由我组织进行翻译,翟育明翻译了第1~8章,我翻译第9章和第10章,并负责全书所有章节的审校。参与本书翻译和审校的还有:荣浩、杨春花、凌家亮、王琳、邱庆举、李勇、师文丽、王建旭、程旭文、罗兴、刘传飞、林仪明,在此再次深表感谢。
快乐分享,实践出真知,最后,祝大家能够像我一样在阅读中享受本书带来的乐趣!...
Read a bit and take it out,then come back read some more.
俞黎敏
2008年4月
前言回到顶部↑
Java是一种优秀的面向对象编程语言。它给软件开发人员提供了许多益处,其中包括一种很好的面向对象的方法、隐式的内存管理和动态的链接。这些语言特征就是Java之所以普及和广受认可的一大原因。.
但是Java远远不只是一种编程语言,它还是一个完整的开发平台。这意味着它具备提供虚拟机的运行时环境(JRE),以及帮助开发人员完成他们想要的大多数任务的标准应用程序编程接口(API)。这种集成式运行时环境的主要好处在于它真正是平台独立的,并简化了软件开发。
另一方面,多年来,脚本语言已经在信息技术基础结构中扮演了重要的角色。它们广泛用于各种各样的任务,从工作自动化到复杂软件项目的原型和实现。
由此我们可以得出结论,Java开发平台也可以从脚本概念和语言中受益。Java开发人员可以在公认为最适合于这项技术的领域中使用脚本语言。就像我们将看到的,Java平台与脚本语言的这种结合给整个软件开发过程增添了特别的品质。
本书讲解了脚本语言背后的概念,概括了Java开发人员可以使用的解决方案,并探讨了在Java应用程序中应用脚本语言的用例和设计模式。
本书编排
本书由五个部分组成。
第一部分
本书的第一部分有两章,概括描述了脚本语言:
■第1章定义了脚本语言的基本特征,并将它们与系统编程语言进行对比。
■第2章阐述了传统(原生)的脚本语言在整个信息技术基础结构中的作用,还讲述了随着时间的推移在不同系统中使用脚本语言的各种任务。
第二部分
讲解完脚本语言的基础概念和用法之后,我们就准备关注Java平台实际的技术和解决方案了。本书的这个部分包含了以下几章:
■第3章从讲解Java平台的基础元素和解释脚本语言的适用之处开始。之后,讲解了JVM(Java虚拟机)可以使用的三大流行脚本语言(BeanShell、JavaScript和Python)的主要特性以及如何用它们来与Java应用程序进行交互。本章的最后讲解了Java开发人员可以使用的其他解决方案。
■第4章详细讲解了Groovy脚本语言。涵盖了这种语言中内建的类似于Java的语法和所有的脚本概念,并讨论了Groovy与Java的整合,以及一些与安全性相关的问题。
■第5章涵盖了一些有助于日常编程任务的Groovy扩展。还解释了Java程序员如何访问数据库、创建和处理XML文件,以及如何利用第4章中所涵盖的Groovy中特定于脚本的特性,轻松地创建简单的Web应用程序和Swing用户界面。
■第6章讲解了一般的Java脚本框架。除了解释如何在工程中给任何兼容的脚本语言实现一般的支持之外,还讲解了在Bean Scripting Framework(BSF)中实现的一些基本抽象,并介绍了一些成功的用法。
第三部分
本书的这个部分主要关注脚本语言在实际Java项目中的使用:..
■第7章涵盖了用脚本完成日常编程任务的话题,例如,其中有单元测试、交互式调试和项目构建。
但是Java远远不只是一种编程语言,它还是一个完整的开发平台。这意味着它具备提供虚拟机的运行时环境(JRE),以及帮助开发人员完成他们想要的大多数任务的标准应用程序编程接口(API)。这种集成式运行时环境的主要好处在于它真正是平台独立的,并简化了软件开发。
另一方面,多年来,脚本语言已经在信息技术基础结构中扮演了重要的角色。它们广泛用于各种各样的任务,从工作自动化到复杂软件项目的原型和实现。
由此我们可以得出结论,Java开发平台也可以从脚本概念和语言中受益。Java开发人员可以在公认为最适合于这项技术的领域中使用脚本语言。就像我们将看到的,Java平台与脚本语言的这种结合给整个软件开发过程增添了特别的品质。
本书讲解了脚本语言背后的概念,概括了Java开发人员可以使用的解决方案,并探讨了在Java应用程序中应用脚本语言的用例和设计模式。
本书编排
本书由五个部分组成。
第一部分
本书的第一部分有两章,概括描述了脚本语言:
■第1章定义了脚本语言的基本特征,并将它们与系统编程语言进行对比。
■第2章阐述了传统(原生)的脚本语言在整个信息技术基础结构中的作用,还讲述了随着时间的推移在不同系统中使用脚本语言的各种任务。
第二部分
讲解完脚本语言的基础概念和用法之后,我们就准备关注Java平台实际的技术和解决方案了。本书的这个部分包含了以下几章:
■第3章从讲解Java平台的基础元素和解释脚本语言的适用之处开始。之后,讲解了JVM(Java虚拟机)可以使用的三大流行脚本语言(BeanShell、JavaScript和Python)的主要特性以及如何用它们来与Java应用程序进行交互。本章的最后讲解了Java开发人员可以使用的其他解决方案。
■第4章详细讲解了Groovy脚本语言。涵盖了这种语言中内建的类似于Java的语法和所有的脚本概念,并讨论了Groovy与Java的整合,以及一些与安全性相关的问题。
■第5章涵盖了一些有助于日常编程任务的Groovy扩展。还解释了Java程序员如何访问数据库、创建和处理XML文件,以及如何利用第4章中所涵盖的Groovy中特定于脚本的特性,轻松地创建简单的Web应用程序和Swing用户界面。
■第6章讲解了一般的Java脚本框架。除了解释如何在工程中给任何兼容的脚本语言实现一般的支持之外,还讲解了在Bean Scripting Framework(BSF)中实现的一些基本抽象,并介绍了一些成功的用法。
第三部分
本书的这个部分主要关注脚本语言在实际Java项目中的使用:..
■第7章涵盖了用脚本完成日常编程任务的话题,例如,其中有单元测试、交互式调试和项目构建。
书摘回到顶部↑
第1章脚本简介
本书的主题结合了脚本技术与Java平台。它描述了Java开发人员可以用来创建一个更加强大的开发环境的项目,以及使脚本变得有用的一些实践。
在开始讨论Java领域中的脚本应用程序之前,先整体概括一下脚本背后的一些理论,以及它在信息技术基础结构中的用途。这是本书开头两章的主题,这样,可以更好地了解脚本技术,以及这项技术在Java平台内部起着什么样的作用。
首先,我们必须定义什么是脚本语言,并描述它们的特征。它们的特征很大程度上决定了它们可以(应该)用在哪些场景中。在本章中,我解释了术语脚本语言的含义,并讲解了它们的基本特征。
本章最后讨论了脚本语言与系统编程语言之间的区别,以及这些区别如何使它们符合开发中的某些场景。
1.1 背景
脚本语言的定义很含糊,有时候与脚本语言在现实中的使用方式不太一致,因此,最好整体概括一些关于编程与计算的基础概念。这样可为定义脚本语言和讨论它们的特征提供必要的基础。
让我们从头开始。处理器执行机器指令,它操作处理器的寄存器或者外部存储器中的数据。简单来说,机器指令由一系列二进制数字(很多0和1)组成,是特定于它在其中运行的特殊处理器的。机器指令由告诉处理器它应该执行什么操作的操作码和表示操作应该在其中执行的数据的操作数组成。
例如,将一个寄存器中包含的值添加到另一个寄存器中这样一个简单的操作。现在让我们假设一个简单的处理器,包含8位指令集,其中前5位表示操作码(比如,00111为“加”的寄存器值),且寄存器都以3位的模式进行处理。我们可以将这个简单的实例写成如下:
00111 001 010
在这个例子中,我用了001和010对处理器的寄存器数字1和2(相应为Rl和R2)进行操作。
这个基础的计算方法已经广为人知几十年,我相信你对它也很熟悉。各种处理器对于它们指令集的外观有着不同的策略(RISC或者CISC架构),但是从软件开发人员的角度来说,唯一重要的是,处理器只能执行二进制指令。无论使用什么编程语言,最终的应用程序都是通过处理器执行的
一系列机器指令。
随着时间而改变的是人们如何创建执行机器指令的顺序。这个有序的机器指令称为计算机程序。由于硬件的成本变得越来越低,且功能越来越强,因此用户的期望在增长。软件开发作为一门学科,其目标就是提供一些机制,使开发人员用与以前同样的(或者更少的)工作,就能编写出更加复杂的应用程序。
一个特定处理器的指令集称为它的机器语言。机器语言属于第一代编程语言。以这种方式编写的程序通常非常快,因为它们针对特殊处理器的架构进行了优化。但是除了这点好处之外,人类却很难(即便不是不可能的话)用机器语言编写大型且安全的应用程序,因为人类不善于处理大量的0和1。
为了解决这个问题,开发人员们开始为二进制数创建符号,这样就引人了汇编语言。汇编语言是第二代编程语言。汇编语言中的指令就是机器指令的上一级,它们在该级别中用容易记的关键字(如ADD、SUB等等)替代了二进制数。如此一来,你就可以用汇编语言将前面那个简单的指令实例重写成如下:
ADO R1,R2
在这个例子中,ADD关键字表示指令的操作码,R1和R2定义操作中涉及的寄存器。即使只看这个简单的实例,也可以看出汇编语言显然使程序变得更容易让人阅读,从而能够创建更复杂的应用程序。
尽管第二代语言更加面向人类了,但它们无论如何都没有扩展处理器的功能。
到了高级语言,它允许开发人员用更高级别的语义形式表达自己的想法,这些语言称作第三代编程语言。高级语言提供了各种功能强大的循环、数据结构、对象等等,使得利用它们创建许多应用程序变得更加容易。
本书的主题结合了脚本技术与Java平台。它描述了Java开发人员可以用来创建一个更加强大的开发环境的项目,以及使脚本变得有用的一些实践。
在开始讨论Java领域中的脚本应用程序之前,先整体概括一下脚本背后的一些理论,以及它在信息技术基础结构中的用途。这是本书开头两章的主题,这样,可以更好地了解脚本技术,以及这项技术在Java平台内部起着什么样的作用。
首先,我们必须定义什么是脚本语言,并描述它们的特征。它们的特征很大程度上决定了它们可以(应该)用在哪些场景中。在本章中,我解释了术语脚本语言的含义,并讲解了它们的基本特征。
本章最后讨论了脚本语言与系统编程语言之间的区别,以及这些区别如何使它们符合开发中的某些场景。
1.1 背景
脚本语言的定义很含糊,有时候与脚本语言在现实中的使用方式不太一致,因此,最好整体概括一些关于编程与计算的基础概念。这样可为定义脚本语言和讨论它们的特征提供必要的基础。
让我们从头开始。处理器执行机器指令,它操作处理器的寄存器或者外部存储器中的数据。简单来说,机器指令由一系列二进制数字(很多0和1)组成,是特定于它在其中运行的特殊处理器的。机器指令由告诉处理器它应该执行什么操作的操作码和表示操作应该在其中执行的数据的操作数组成。
例如,将一个寄存器中包含的值添加到另一个寄存器中这样一个简单的操作。现在让我们假设一个简单的处理器,包含8位指令集,其中前5位表示操作码(比如,00111为“加”的寄存器值),且寄存器都以3位的模式进行处理。我们可以将这个简单的实例写成如下:
00111 001 010
在这个例子中,我用了001和010对处理器的寄存器数字1和2(相应为Rl和R2)进行操作。
这个基础的计算方法已经广为人知几十年,我相信你对它也很熟悉。各种处理器对于它们指令集的外观有着不同的策略(RISC或者CISC架构),但是从软件开发人员的角度来说,唯一重要的是,处理器只能执行二进制指令。无论使用什么编程语言,最终的应用程序都是通过处理器执行的
一系列机器指令。
随着时间而改变的是人们如何创建执行机器指令的顺序。这个有序的机器指令称为计算机程序。由于硬件的成本变得越来越低,且功能越来越强,因此用户的期望在增长。软件开发作为一门学科,其目标就是提供一些机制,使开发人员用与以前同样的(或者更少的)工作,就能编写出更加复杂的应用程序。
一个特定处理器的指令集称为它的机器语言。机器语言属于第一代编程语言。以这种方式编写的程序通常非常快,因为它们针对特殊处理器的架构进行了优化。但是除了这点好处之外,人类却很难(即便不是不可能的话)用机器语言编写大型且安全的应用程序,因为人类不善于处理大量的0和1。
为了解决这个问题,开发人员们开始为二进制数创建符号,这样就引人了汇编语言。汇编语言是第二代编程语言。汇编语言中的指令就是机器指令的上一级,它们在该级别中用容易记的关键字(如ADD、SUB等等)替代了二进制数。如此一来,你就可以用汇编语言将前面那个简单的指令实例重写成如下:
ADO R1,R2
在这个例子中,ADD关键字表示指令的操作码,R1和R2定义操作中涉及的寄存器。即使只看这个简单的实例,也可以看出汇编语言显然使程序变得更容易让人阅读,从而能够创建更复杂的应用程序。
尽管第二代语言更加面向人类了,但它们无论如何都没有扩展处理器的功能。
到了高级语言,它允许开发人员用更高级别的语义形式表达自己的想法,这些语言称作第三代编程语言。高级语言提供了各种功能强大的循环、数据结构、对象等等,使得利用它们创建许多应用程序变得更加容易。

点击看大图
加载中...
