本书内容由浅入深,紧密结合实际,利用大量典型实例,详细讲解Java面向对象的编程思想、编程语法和设计模式,介绍常见Java类库的用法,总结优化Java编程的各种宝贵经验,深入阐述Java虚拟机执行Java程序的原理。书中实例均基于最新的JDK 1.5版本。全书内容包括面向对象的编程思想、Java语言的基础知识、异常处理、类与对象的生命周期、多线程、Java集合、输入/输出和GUI编程等。其最大特色是以六条主线贯穿全书:面向对象编程思想、Java语言的语法、Java虚拟机执行Java程序的原理、在实际项目中的运用、设计模式和性能优化技巧。同时,本书还贯穿了Sun公司的SCJP(Sun Certified Java Programmer)认证的考试要点。\r\n 书中实例源文件请到http://www.fecit.com.cn的“下载专区”下载。\r\n 本书适用于所有Java编程人员,包括Java初学者及资深Java开发人员;亦可作为高校的Java教材,企业Java的培训教材,以及Sun公司的SCJP认证的辅导材料。
第1章 面向对象开发方法概述 \r\n 1.1 结构化的软件开发方法简介 \r\n 1.2 面向对象的软件开发方法简介 \r\n 1.2.1 对象模型 \r\n 1.2.2 UML:可视化建模语言 \r\n 1.2.3 Rational Rose:可视化建模工具 \r\n 1.3 面向对象开发中的核心思想和概念 \r\n 1.3.1 问题领域、对象、属性、状态、行为、方法、实现 \r\n 1.3.2 类、类型 \r\n 1.3.3 消息、服务 \r\n 1.3.4 接口 \r\n 1.3.5 封装、透明 \r\n 1.3.6 抽象 \r\n 1.3.7 继承、扩展、覆盖 \r\n 1.3.8 组合 \r\n 1.3.9 多态、动态绑定 \r\n 1.4 UML语言简介 \r\n 1.4.1 用例图 \r\n 1.4.2 类框图 \r\n 1.4.3 时序图 \r\n 1.4.4 协作图 \r\n 1.4.5 状态转换图 \r\n 1.4.6 组件图\r\n 1.4.7 部署图 \r\n 1.5 类之间的关系 \r\n 1.5.1 关联(Association)\r\n 1.5.2 依赖(Dependency) \r\n 1.5.3 聚集(Aggregation) \r\n 1.5.4 泛化(Generalization) \r\n 1.5.5 实现(Realization) \r\n 1.5.6 区分依赖、关联和聚集关系 \r\n 1.6 实现Panel系统 \r\n 1.6.1 扩展Panel系统 \r\n 1.6.2 用配置文件进一步提高Panel系统的可维护性 \r\n 1.6.3 运行Panel系统 \r\n 1.7 小结 \r\n 1.8 思考题 \r\n第2章 第一个Java应用 \r\n 2.1 创建Java源文件 \r\n 2.1.1 Java源文件结构 \r\n 2.1.2 包声明语句 \r\n 2.1.3 包引入语句 \r\n 2.1.4 方法的声明 \r\n 2.1.5 程序入口main()方法的声明 \r\n 2.1.6 给main()方法传递参数 \r\n 2.1.7 注释语句 \r\n 2.1.8 关键字 \r\n 2.1.9 标识符 \r\n 2.1.10 编程规范 \r\n 2.2 用JDK管理Java应用 \r\n 2.2.1 JDK简介 \r\n 2.2.2 编译Java源文件 \r\n 2.2.3 运行Java程序 \r\n 2.2.4 给Java应用打包 \r\n 2.3 JavaDoc文档 \r\n 2.3.1 JavaDoc标记 \r\n 2.3.2 javadoc命令的用法 \r\n 2.4 Java虚拟机的运行时数据区 \r\n 2.5 小结 \r\n 2.6 思考题 \r\n第3章 数据类型和变量 \r\n ……\r\n第4章 操作符 \r\n第5章 流程控制 \r\n第6章 继承 \r\n第7章 Java语言中的修饰符 \r\n第8章 接口 \r\n第9章 异常处理 \r\n第10章 类的生命周期 \r\n第11章 对象的生命周期 \r\n第12章 内部类 \r\n第13章 多线程 \r\n第14章 数组 \r\n第15章 Java集合 \r\n第16章 Java I/O系统 \r\n第17章 图形用户界面 \r\n第18章 Swing组件 \r\n第19章 Java常用类 \r\n参考文献
孙卫琴,1975年出生,籍贯江苏常州,1997年毕业于上海交通大学,随后主要从事基于Java的软件开发工作,在此期间还从事过Java方面的培训和咨询工作。2002年开始Java技术领域的图书创作。
代表著作有:《Java面向对象编程》、《精通Hibernate:Java对象持久化技术详解》、《精通Sturts:基于MVC的Java Web设计与开发》、《Tomcat与Java Web开发技术详解》。
Java自1996年正式发布以来,经历了出生、成长和壮大的阶段,现在已经成为IT领域里的主流编程语言。Java起源于Sun公司的一个叫“Green”的项目,目的是开发嵌入家用电器的分布式软件系统,使电器更加智能化。图P-1所示为参与Green项目的开发人员。Green项目一开始准备采用C++语言,但是考虑到C++语言太复杂,而且安全性差,于是决定基于C++语言开发一种新的Oak语言(即Java的前身)。
图P-1 参与Green项目的开发人员
Oak是一种适用于网络编程的精巧而安全的语言,它保留了许多C++语言的语法,但去除了明确的资源引用﹑指针算法与操作符重载等潜在的危险特性。并且Oak语言具有与硬件无关的特性,制造商只需要更改芯片,就可以将烤面包机上的程序代码移植到微波炉上或其他电器上,而不必改变软件,这就大大降低了开发成本。
当Oak语言成熟时,全球Internet也在迅速发展。Sun公司的开发小组认识到Oak非常适合于Internet编程。1994年,他们完成了一个用Oak语言编写的早期的Web浏览器,称为WebRunner,后改名为HotJava,展示了Oak作为Internet开发工具的能力。
1995年,Oak语言更名为Java语言(以下简称为Java)。Java的取名有一个趣闻。据说,有一天,几位Java成员组的会员正在讨论给这个新的语言取什么名字,当时他们正在咖啡馆喝着Java(爪哇)咖啡。有一个人灵机一动说,就叫Java怎样,这得到了其他人的赞赏。于是,Java这个名字就这样传开了。
1996年,Sun公司发布JDK 1.0,计算机产业的各大公司(包括IBM、Apple、DEC、Adobe、Silicon Graphics、HP、Oracle、Toshiba和Microsoft等)相继从Sun公司购买了Java技术许可证,开发相应的产品。
1998年,Sun公司发布了JDK 1.2(从这个版本开始的Java技术都称为Java 2)。Java 2不仅兼容于智能卡和小型消费类设备,还兼容于大型服务器系统,它使软件开发商、服务提供商和设备制造商更加容易抢占市场机遇。这一开发工具极大地简化了编程人员编制企业级Web应用的工作,把一次编程到处使用的诺言应用到服务器领域。
1999年,Sun公司把Java 2技术分成J2SE、J2EE和J2ME。其中J2SE就是指从1.2版本开始的JDK,它为创建和运行Java程序提供了最基本的环境。J2EE和J2ME建立在J2SE的基础上,J2EE为分布式的企业应用提供开发和运行环境,J2ME为嵌入式应用(比如运行在手机里的Java程序)提供开发和运行环境。
在进入21世纪以来,随着Web技术成为展示和操作数据的事实标准,企业利用J2EE平台对原来分散的子系统进行整合。尽管应用整合可以通过多种手段来实现,但J2EE在出现后,因其天生具备良好的开放性和可扩展性,使之在应用整合和开发的过程中发挥了愈来愈显著的优势。J2EE逐渐成为开发商创建电子商务应用的事实标准。
Java的公用规范(Publicly Available Specification,PAS)在1997年被国际标准化组织(ISO)认定,这是ISO第一次破例接受一个具有商业色彩的公司作为公用规范PAS的提交者。
总之,面向对象的Java语言具备一次编程、任何地方均可运行的能力,这使其成为服务提供商和系统集成商用以支持多种操作系统和硬件平台的首选解决方案。Java作为软件开发的一种革命性的技术,其地位已被确定。如今,Java技术已被列为当今世界信息技术的主流之一。表P-1对Java的发展历史做了总结。
表P-1 Java的发展历史
年 份 Java的发展历史
1995 Java语言诞生
1996 JDK 1.0发布,10个最主要的操作系统供应商申明将在其产品中支持Java技术
1997 JDK 1.1发布
1998 JDK 1.1下载量超过200万次,JDK 1.2(称Java 2)发布,JFC/Swing技术发布, JFC/Swing被下载了50多万次
1999 Java被分成J2SE、J2EE 和J2ME,JSP/Servlet技术诞生
2000 JDK 1.3发布,JDK 1.4发布
2001 Nokia公司宣布到2003年将出售1亿部支持Java的手机,J2EE 1.3发布
2002 J2SE 1.4发布,至此Java的计算能力有了大幅度提升。J2EE SDK的下载量达到200万次
2003 5.5亿台桌面机上运行Java程序,75%的开发人员将Java作为首要开发工具
2004 J2SE 1.5发布,这是Java语言在发展史上的又一里程碑事件。为了表示这个版本的重要性,J2SE 1.5更名为J2SE 5.0
2005 JavaOne大会召开,Sun公司公开Java SE6。此时,Java的各种版本被更名,取消其中的数字“2”:J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME。
Java语言的特点
Java应用如此广泛是因为Java具有多方面的优势。其特点如下:
(1)面向对象。Java自诞生之时就设计成面向对象的语言,而C++语言是一种强制面向对象的语言。面向对象可以说是Java最重要的特性,它不支持类似C语言那样的面向过程的程序设计技术。Java支持静态和动态风格的代码重用。
(2)跨平台。对于Java程序,不管是Windows平台还是UNIX平台,或者其他平台,它都适用。Java编辑器把Java源程序编译成与体系结构无关的字节码指令,只要安装了Java运行系统,Java程序就可在任意的处理器上运行。这些字节码指令由Java虚拟机来执行,Java虚拟机的解释器在得到字节码后,对它进行转换,使之能够在不同的平台运行。
(3)直接支持分布式的网络应用。除了支持基本的语言功能以外,Java核心类库还包括一个支持HTTP、SMTP和FTP等基于TCP/IP协议的类库。因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。在Java出现以前,为分布式环境尤其是Internet提供动态的内容无疑是一项非常宏伟、难以想像的任务,但Java的语言特性却使我们很容易地达到这个目标。
(4)安全性和健壮性。Java致力于检查程序在编译和运行时的错误,类型检查能够帮助检查出许多开发早期出现的错误。Java 支持自动内存管理,这不但让程序员减轻了许多负担,也让程序员减少了犯错的机会。Java自己操纵内存减小了内存出错的可能性。Java还能够检测数组边界,避免了覆盖数据的可能。在Java语言里,指针和释放内存等功能均被抛弃,从而避免了非法内存操作的危险。
以上特点,是C++语言及其他语言无可比拟的(C++语言尽管也是面向对象的,但并不是严格意义上的面向对象语言)。单从面向对象的特性来看,Java类似于SmallTalk, 但其他特性,尤其是适用于分布式计算环境的特性远远超越了SmallTalk。Java发展到现在,已经不仅仅是一种语言,可以说是一种技术,这个技术涉及到网络和编程等领域。另外,Java是非常简单、高效的,有调查数据发现:用C++和Java来做一个相同功能的项目,用 Java写的程序要比用C++写的程序节省60%的代码和66%的时间。可以说,用Java语言编程时间短、功能强,编程人员接手起来更容易、更简便。
本书的组织结构和主要内容
本书以六条主线贯穿全书:面向对象编程思想、Java语言的语法、Java虚拟机执行Java程序的原理、在实际项目中的运用、设计模式和性能优化技巧。书中的每一章都会围绕若干条主线来展开内容,并且根据全书的布局,合理安排每一章内容的深度。本书主要内容包括:面向对象的开发方法概述、数据类型和变量、操作符、流程控制、继承、Java语言中的修饰符、接口、异常处理、类的生命周期、对象的生命周期、内部类、多线程与并发、数组、Java集合、输入输出、图形用户界面、Swing组件和Java常用类。
这本书是否适合你
在如今的Java领域,各种新技术、新工具层出不穷,一方面,每一种技术都会不停地升级换代;另一方面,还会不断涌现出新的技术和工具。Java世界就像小时候玩的万花筒,尽管实质上只是由几个普通的玻璃碎片组成,但只要轻轻一摇,就会变换出千万种缤纷的图案。Java世界如此变化多端,很容易让初学Java的人有无从下手的感觉。常常会有读者问我这样的问题:
我学了Java已经一年多了,现在就只能用JSP写点东西,其他的东西实在太多了,我整天学都学不完,很迷惘,不知道该如何有针对性地去学,去找到一份Java工作,现在是困死在Java里了。
撰写本书,目的是为了帮助读者看清Java万花筒的本质,从复杂的表象中寻找普遍的的规律,深刻理解Java的核心思想。只有掌握了普遍的规律与核心思想,才能以不变应万
变,轻轻松松地把握Java技术发展的新趋势,迅速地领略并且能熟练运用一门新的技术,而不成为被动的追随者,知其然而不知其所以然。
阅读本书,读者对Java的领悟将逐步达到以下境界:
● 熟悉Java语法,熟练地编译和调试程序。
● 按照面向对象的思想来快速理解JDK类库及其他第三方提供的类库,通过阅读JavaDoc和相关文档,知道如何正确地使用这些类库。
● 按照面向对象的思想来分析问题领域,设计对象模型。
● 在开发过程中会运用现有的一些优秀设计
无封面