Java自诞生以来,凭借其可移植性、安全性、简单性等诸多优良特性,赢得了数以百万计的追随者,成为最受欢迎的编程语言之一,并被广泛应用于企业级应用开发、移动云计算开发、嵌入式系统开发、电子商务应用、多媒体系统开发、Web应用系统开发等诸多领域。每天的生活当中也到处可见Java的身影: 中国移动的10086电话查询系统、淘宝购物网站、网上银行交易系统、智能手机上的游戏等。国内IT市场对于Java人才的需求已经达到上百万,并且每年都在以22%左右的速度增长。
本书循序渐进、通俗易懂地讲述了Java编程技术,让读者更好地理解Java语言。同时为使读者更好地将Java语言应用到实际开发中,本书还将软件开发环节中常用的技术如设计模式、统一建模语言、数据库等穿插在相关章节中。全书各章内容安排如下。
第1章Java语言的介绍。主要介绍Java语言如何产生及其发展、优势、应用领域,从做什么、市场需求和职业发展三个角度告诉读者为什么选择学习Java,通过基本语法结构和运行环境搭建及开发工具两节内容使读者入门Java语言,强调了时刻“贯彻”的工程化思想,并给出学习建议及相关经验。本章使读者对Java有一个整体认识,让后续的学习更有针对性、更加科学,也希望读者通过阅读本章后,能够热爱Java相关的软件开发,将来成为一名优秀的程序员,开发出造福人类的软件产品。
第2章定义和加工数据的基本方法。主要从两个方面讲解Java基础知识: ①定义数据(关键字、标识符、基本数据类型、常量、变量); ②加工数据(输入和输出、数据的运算)。在讲解中渗透良好的编程习惯,如“不能重名”的关键字,“见名知意”的标识符,“大写形式”的常量等。
第3章控制语句与数组。简单明了地介绍基本的流程控制语句(选择、循环)以及经常和循环配合使用的数组。本章的内容不是面向对象语言的重点知识,但确实是基础知识,熟练使用这些知识应该就像一种本能反应一样,否则它们会成为编程的障碍。
第4章及第5章封装、继承和多态。这两章主要介绍Java面向对象程序设计的核心知识,通过大量的、详细的、细微的代码示例程序对各种可能在实践中遇到的问题进行了周密的解释和分析。使用通俗易懂的语言介绍了类、成员变量及方法、访问控制、继承、重写、重载、多态等重点知识,尽可能地让读者觉得学习面向对象编程并没有那么枯燥,通过知识的类比快速了解它们之间的差异和使用注意事项。多态是面向对象理解的难点,但是通过本书的几个示例的介绍,读者非常易于理解什么是多态,如何设计和使用,为什么要这样设计。只有理解了为什么这样做,才能更好地这样做。另外在这两章中,结合相应知识点,引入在实际开发中常用的统一建模语言(UML)和设计模式的知识。
第6章常用类。主要介绍了程序员在项目开发中经常用到的类,如字符串、正则表达式、日期类、数学类、集合类等。本章针对这些类给出了非常详尽的介绍,深入分析了各种类在开发中的应用。代码翔实,结构清晰,便于读者在后续的实际开发中查阅引用。
第7章多线程。首先介绍了为什么需要多线程,然后介绍了线程的定义、守护、中断、同步、协作,提出死锁产生的原因,最后讲述管理线程的并发包。线程是所有编程语言中的难点,不是语法上线程有多难,而是理解线程和使用线程有难度,因为它是并发环境中的程序开发涉及资源的共享和争夺。本章通过现实生活中的场景解释了各种线程知识点,并通过给出相应的代码实现,便于读者理解线程知识。线程技术点很多,有些还很类似,所以本章通过各种有趣的场景示例比较了它们之间的相同和差异之处,使读者更容易和更深刻地理解线程知识。
第8章输入和输出。首先介绍了输入输出基础以及数据源和目的地对应的文件对象,然后讲述了字节流、字符流、数据流、随机读写流和缓冲流的使用,最后介绍了对象序列化和文件锁。在任何一种计算机程序设计语言里面,输入输出(I/O)都是一个非常重要的部分。本章将抽象的输入输出流通过形象的实例代码来讲解,便于读者理解和掌握。
第9章数据库连接。首先介绍了数据库查询语句SQL以及关系型数据库MySQL的基本使用,然后介绍JDBC基础知识以及连接数据库的基本方法,并介绍了使用JDBC的常用操作(增删改查、预处理、事务处理以及批处理),最后建立实际开发中需要用到的连接池。本章内容是构建管理信息系统(MIS)的重要基础,内容不难理解,关键是要对各种接口熟练操作。本章通过翔实的操作步骤和大量实践性很强的代码引导读者学习JDBC的相关使用,掌握MIS系统构建的重要部分。
第10章综合案例。首先介绍了UI设计基础,并给出一个桌面计算器的应用实例。然后以开发一个进销存管理系统为例,介绍如何使用Java进行软件项目的开发。本章将综合应用各章知识点,主要包括基本数据类型、类与对象、封装、继承、输入输出以及数据库连接等。同时从软件工程过程的各个环节来介绍系统的开发,包括: 系统分析、系统设计、代码实现、公共模块设计等。读者通过本章案例的学习,可以掌握解决工程实践项目的基本方法,提高分析问题、解决问题的能力。
回首最初撰写此书的目的,主要是想为莘莘Java学子撰写一本实践性强、注重软件工程性的、为读者求职添砖加瓦、让读者以后在工作中还能经常翻看的一本书,但由于作者水平有限,这可能是一种期盼,但确实秉承此诚心撰写此书。本书有以下一些特色:
(1) 将软件工程的思想和工程实践性融入其中,通过更贴近实践性的例子来切实提高读者的动手能力,真正意义上增加读者的求职砝码,培养出企业需要的Java工程师。增加了求职实战环节,在各章后面附带针对各大公司可能会出现的相关笔试面试。
(2) 案例代码的选取具有实用性、可读性、良好的编程风格和代码的鲁棒性。代码示例要比说明文字简单易懂得多,更直观,理解起来更深刻,所以本书使用了众多的示例程序讲解各个知识点,这样介绍知识的方式更适合编程人员理解和阅读本书。另外,每个案例代码都经过上机调试通过。
(3) 用案例式驱动的学习方式来介绍Java语言的基本语法知识,通过编程实例让读者更透彻地领悟相关理论知识,能够让读者循序渐进,举一反三,渐入佳境,乐此不疲。代码是程序员之间沟通的纽带,理解它们要比文字容易得多,所以本书中大量采用了这种示例代码先行的方式介绍各种知识点,即使是一个新的知识点也是通过一个使用的场景代码示例,先引入问题,找到解决方案,从而引入新的知识点,然后才是介绍知识点的基础知识和深入知识点,并给予读者思考的空间。阐明为什么需要这个技术,什么时候使用,达到学以致用的目的。
(4) 将Java软件项目开发中需要用到的系统分析建模技术(UML)引入到Java知识的讲述中。本书中对UML中与本书相关的类与类关系方面进行了详细的介绍,详细地说明了UML图例和代码的关系,分析之间的差异,便于读者理解UML的用法。通过给出UML的关系图分析各种Java类的特点,非常直观,也便于理解和记忆。UML(系统分析)和Java(程序设计)的珠联璧合才真正让读者进入Java软件工程师的殿堂。
(5) 本书在介绍Java知识点的同时,适时引入各种恰当的设计模式,使读者对于设计模式的使用不会感觉到那么突兀和困难,会发现原来设计模式就在身边,它是那么的简单和实用。通过设计模式的学习,拓展读者解决问题的能力,保证编写的代码的可复用性、可理解性和可靠性,确保代码编制工程化,为读者成为优秀软件工程师添砖加瓦。
本书撰写的几位作者都具备较丰富的工程实践实验,都参加过公司的实际项目开发。本书第1章和第3章由于波编写,第2章由姚登举编写,第7章由齐鑫、詹晓娟共同编写,第46章由齐鑫编写,第8章由于波、唐光义共同编写,第9章和第10章由唐光义编写。同时,刘胜辉、张宏国、郭红、张淑丽、苗世迪、王春英、赵首祎、王勇在书籍编写、整理材料上给予了很大帮助。
特别感谢齐鑫老师,本书的撰写和策划都投入了极多的时间和精力,钦佩他多年来一直用一颗朴素淡定的心孜孜不倦地学习日新月异的软件技术,真正体现了“学高为师,身高为范”,技术大师风范可见一斑!
这里还要特别感谢我的爱人,是她一直给予我鼓励和支持,让我有动力完成此书。
感谢读者选择使用本书,希望您能从中受益,为您编程之路助一臂之力。也希望初学者通过本书能够热爱上编程,努力用你手中的鼠标和键盘创造无限的软件世界,改变人们的生活状态,你会无比快乐。这是我们最大的欣慰。
由于作者水平有限,加之时间仓促,书中难免出现错误,也诚邀您对本书内容提出宝贵意见,我们将不胜感激。如有问题请发送至Email:hrbust_yubo1981@163.com,qixin8000@163.com。
作者
2013年9月
