本书从初学者的角度系统介绍了Java程序开发中用到的重要基础知识。全书共13个项目,具体包括了开发环境、基本语法、面向对象思想及重要API的应用等。设计模式是前人对代码开发经验的总结,本书抛砖引玉,在Java学习中引入了单例模式、简单工厂模式、装饰模式、代理模式等常见的设计模式,鼓励读者模仿吸收,养成良好的编程习惯。本书强调理论和实践相结合,理论部分通俗易懂,实践环节案例丰富,步骤完整,以具体应用为出发点,帮助读者快速掌握核心知识,为后续学习打好基础。本书可作为高等院校计算机相关专业的教材,也可作为计算机编程爱好者的自学教材。
案例驱动,执行结果图解分析;涵盖Java SE核心,探讨背后思想;讲解部分设计模式。本书主要针对应用型人才的培养,目标读者为信息相关专业的本科生、大专生,也可以供其他初学者学习。拟选作者都是有丰富教学经验的一线老师。内容主要以Java SE的核心知识点讲解为主,讲解Java面向对象的思想,以及Java SE中核心的类。本书在强调案例驱动,提高动手能力的前提下,也引入了对Java编程思想的讲解,使学生或其他初学者理解相关技术背后的思想,做到知其然,也知其所以然。
Java语言是当前应用非常广泛的一种面向对象的程序设计语言,从大型复杂的企业级系统到小型移动设备系统开发,随处都可以看到Java活跃的身影。当前,大部分高校计算机相关专业都开设了Java程序设计相关课程。Java程序设计从基础到高级需要一个长期学习的过程,对于初学者来说,需要打好基础,树立信心、循序渐进,同时注重编程习惯的培养。本书针对应用型人才培养,强调实践动手能力,从需求出发,以案例驱动的形式进行组织。书中的案例都是精心设计的,只有读者实际动手敲过代码,调试过代码后才能熟能生巧,知其所用,才能真正掌握这些代码,感受到编写Java程序的乐趣。全书共分为13个项目。项目1主要介绍了Java语言的特点、JDK的安装及Eclipse开发环境,实现个Java程序的开发。项目2介绍Java语言的语法基础,如果读者有C语言基础,学习难度不大,但是对JVM内存划分需要仔细体会。项目3和项目4是Java语言面向对象思想的*重要部分,详细讲解了类和对象的关系、封装、继承和多态等相关内容,只有理解了面向对象的编程思想,才能真正掌握Java语言的精髓。同时讲解了单例模式、简单工厂模式的实现。项目5介绍了Java对异常的处理。项目6详细讲解了Java对多线程技术的支持。其中生产者和消费者模型是难点,通过它可以深刻理解线程间通信。项目7讲解了包装类、字符串相关类和System类。其中字符串相关类非常重要,读者要尽量掌握相关方法,并理解正则表达式。项目8讲解了时间处理、随机数和Math类的用法,难度不大。项目9讲解了集合类,要重点掌握各种集合的创建,增、删、改、查,以及遍历的方法。项目10讲解File类和输入输出流,编写程序免不了要和文件打交道,涉及的类较多,同时讲解了装饰模式的实现。项目11讲解JDBC编程,安装了MySQL,详细讲解了JDBC开发过程。项目12讲解反射的相关知识。反射是Java的高级特性,掌握反射的本质和应用,有助于将来的框架学习。项目13给出了一个简单的Java Web程序开发示例,帮助读者理解Java在服务器端的开发应用。本书由文华学院林爱武、南通理工学院宋伟、哈尔滨远东理工学院齐晶薇担任主编;由文华学院张采芳、张翼、仇亚萍、田笛担任副主编;南通理工学院孙溢洋、崔庆华参编。全书由文华学院林爱武审核并统稿。 由于编者水平有限,加之时间比较仓促,书中难免有疏漏和不妥之处,恳请广大读者朋友批评指正。
项目1Java语言简介及开发环境
1.1Java语言简介/1
1.1.1Java语言特点/1
1.1.2Java技术平台/3
1.2JDK的使用/3
1.2.1JDK的安装/3
1.2.2JDK目录说明/5
1.2.3JDK、JRE 和JVM的关系/7
1.2.4Windows命令行窗口操作/7
1.2.5系统环境变量设置/9
1.2.6个Java程序/11
1.3Java集成开发环境/13
1.3.1 Eclipse的安装与配置/13
1.3.2利用Eclipse进行程序开发/16
1.3.3项目的删除与导入/22
1.3.4Eclipse快捷键的使用/23
项目2Java语言基础
2.1Java注释/25
2.2关键字/26
2.3标识符/26
2.4数据类型/27
2.4.1数据类型概述/27
2.4.2基本数据类型/28
2.4.3数据的类型转换/33
2.4.4引用数据类型/35
2.4.5数组/35
2.5JVM内存划分/41
2.6运算符/43
2.6.1算术运算符/43
2.6.2赋值运算符/44
2.6.3比较运算符/44
2.6.4逻辑运算符/44
2.6.5条件运算符/45
2.6.6位运算符/45
2.6.7运算符的优先级和结合性/46
2.7流程控制语句/46
2.7.1选择结构语句/47
2.7.2循环结构语句/51
2.8方法/55
2.8.1方法的定义/55
2.8.2方法的调用/56
2.8.3方法的重载/57
2.8.4方法的递归调用/58
2.9变量的作用域/60
项目3对象和类
3.1类的抽象/62
3.1.1面向对象概述/62
3.1.2类的定义/63
3.2对象的创建和访问/65
3.2.1构造方法/65
3.2.2创建对象/66
3.2.3访问对象/68
3.2.4this引用的使用/69
3.2.5static关键字的使用/73
3.2.6方法中对象参数的传递/75
3.2.7匿名对象/76
3.3类的封装/77
3.4类的访问控制/79
3.5单例模式/80
3.6生成帮助文档/83
项目4类的继承
4.1继承的含义/87
4.2super关键字的使用/89
4.2.1子类调用父类构造方法/89
4.2.2子类访问父类成员/92
4.3final关键字的使用/93
4.4Object类/95
4.5多态性/98
4.5.1多态的含义/98
4.5.2参数传递中多态性的应用/100
4.6抽象类/101
4.7接口/102
4.7.1接口声明与实现/102
4.7.2接口的多态/104
4.7.3接口回调/106
4.7.4Comparable接口/107
4.8匿名内部类/109
4.9简单工厂模式/111
项目5异常机制
5.1异常的含义/114
5.2异常处理/116
5.2.1捕获异常/116
5.2.2抛出异常/118
5.3自定义异常/120
5.4运行时异常/121
项目6多线程技术
6.1基本概念/125
6.2创建线程/126
6.2.1继承Thread类创建多线程/126
6.2.2实现Runnable接口创建多线程/128
6.2.3用户线程和守护线程/129
6.3线程的状态及调度/130
6.3.1线程调度/130
6.3.2线程状态/131
6.4线程的同步/134
6.4.1同步问题的提出/134
6.4.2线程同步的实现/136
6.4.3死锁问题/140
6.5线程间合作/141
6.5.1线程间通信/141
6.5.2生产者和消费者模型/142
6.6线程池/145
6.6.1线程池的使用/146
6.6.2线程池的生命周期/147
6.7定时任务调度/148
6.8匿名内部类实现多线程/149
项目7包装类、字符串相关类和System类
7.1包装类/152
7.1.1包装类概述/152
7.1.2基本数据类型与包装类之间的转换/153
7.1.3基本数据类型与String类型之间的转换/154
7.2字符串相关类/154
7.2.1String类概述/155
7.2.2String类常用方法/155
7.2.3正则表达式/157
7.2.4StringBuffer类和StringBuilder类/160
7.3System类/162
项目8时间处理、随机数和Math类
8.1时间处理相关类/165
8.1.1Date类/165
8.1.2DateFormat类和SimpleDateFormat类/166
8.1.3Calendar类/168
8.2Random类/170
8.3Math类/173
项目9集合类
9.1集合概述/175
9.2单列集合/175
9.2.1Collection接口/175
9.2.2Iterator接口/176
9.2.3List接口/177
9.2.4ArrayList类/177
9.2.5LinkedList类/180
9.2.6Set接口/180
9.2.7HashSet类/180
9.3双列集合/182
9.3.1Map接口/182
9.3.2Map.Entry接口/182
9.3.3HashMap类/183
9.3.4Properties类/194
项目10File类和输入输出流
10.1File类概述/199
10.2遍历目录/202
10.2.1列出当前目录下的目录和文件/202
10.2.2递归遍历指定目录下所有文件/204
10.3删除目录/205
10.4IO流概述/206
10.5字节流/207
10.5.1字节流概述/207
10.5.2FileInputStream类和FileOutputStream类/209
10.5.3BufferedInputStream类和BufferedOutputStream类/213
10.5.4ObjectOutputStream类和ObjectInputStream类/213
10.6字符流/217
10.6.1字符流概述/217
10.6.2FileReader类和FileWriter类/218
10.6.3BufferedReader类和BufferedWriter类/221
10.6.4InputStreamReader类和OutputStreamWriter类/224
10.7装饰模式/225
项目11JDBC编程
11.1数据库概述/228
11.1.1MySQL简介/228
11.1.2安装MySQL/228
11.1.3卸载MySQL/232
11.1.4创建测试数据库和表/233
11.2什么是JDBC/234
11.3JDBC常用API/235
11.4编写JDBC程序/239
11.4.1导入驱动程序JAR包/239
11.4.2通过JDBC连接数据库/239
11.4.3通过JDBC向数据库增加数据/241
11.4.4通过JDBC向数据库查询数据/243
11.4.5通过JDBC向数据库修改数据/248
11.4.6通过JDBC向数据库删除数据/249
11.4.7JDBC事务处理/250
11.5数据库连接池C3P0/252
11.5.1javax.sql.DataSource接口/252
11.5.2C3P0数据源/252
项目12反射
12.1反射机制的含义/256
12.2获取Class对象的三种方式/256
12.3反射机制的常见操作/259
12.3.1利用反射构造对象(Constructor类)/259
12.3.2利用反射操作属性(Field类)/260
12.3.3利用反射操作方法(Method类)/262
12.4代理模式/263
12.4.1静态代理/264
12.4.2动态代理/266
项目13Java Web程序开发示例
13.1Web程序开发概述/269
13.1.1软件体系架构C/S和B/S/269
13.1.2静态Web页面和动态Web页面/269
13.2Eclipse环境下配置Tomcat服务器/270
13.2.1安装Tomcat服务器/270
13.2.2Eclipse中配置Tomcat/271
13.3利用Eclipse开发个Web项目/275
13.3.1新建Web项目/276
13.3.2实体层/277
13.3.3表现层/277
13.3.4控制层/280
13.3.5业务层/284
13.3.6持久层/284
13.3.7部署Web项目/285
13.3.8测试Web项目/286
参考文献