Java编程兵书(附DVD光盘1张),针对初学和自学读者的特点,以通俗易懂的语言介绍Java语言,讲解Java基础开发。内容包括Java语言的发展、环境配置、开发工具、基本语法、流程控制语句、数组、集合、面向对象、字符串处理、图形界面设计、输入/输出、处理异常、多线程、内存管理、图像处理、JDBC连接数据库及JSP和Servlet开发技术,让读者更好地体会Java语言编程开发。 Java编程兵书(附DVD光盘1张),运用大量示例,让读者在实战中体会编程的快乐。建议读者边学边练,有难以理解的概念或知识一定要弄清楚,培养自己单独开发项目的能力。
目录
第一篇 环境准备篇 第1章初出茅庐:走进Java 1.1Java是什么2 1.2Java历史背景2 1.3Java平台的3个版本2 1.4Java语言特点2 1.5Java类库概述3 1.6Java的工作方式4 1.7Java语言的前景4 1.8小结5 1.9习题5 第2章拨云见日:Java语言的环境配置 2.1操作系统要求7 2.2下载与安装JDK77 2.2.1JDK7的下载7 2.2.2JDK7的安装9 2.2.3设置环境变量10 2.2.4测试环境变量是否配置成功12 2.3第一个Java程序——HelloWorld12 2.3.1编写HelloWorld12 2.3.2编译运行13 2.3.3分析结构14 2.4小结14 2.5习题14 第3章见龙在田:开发工具介绍 3.1UltraEdit和EditPlus编辑器17 3.2集成开发工具介绍17 3.2.1JBuilder简介17 3.2.2NetBeans简介17 3.2.3Eclipse简介17 3.2.4下载Eclipse18 3.3使用Eclipse开发第一个程序——HelloWorld19 3.4小结22 3.5习题23 第二篇 Java语法篇 第4章稳扎马步:Java编程基础 4.1注释25 4.2标识符和关键字26 4.2.1命名标识符的规则26 4.2.2关键字26 4.3变量和常量27 4.3.1变量27 4.3.2常量27 4.4数据基本类型28 4.4.1整型28 4.4.2浮点型29 4.4.3字符型29 4.4.4逻辑型30 4.5数据类型之间的转换30 4.5.1自动类型转换31 4.5.2强制类型转换31 4.6JAVA中的运算符32 4.6.1算术运算符32 4.6.2关系运算符34 4.6.3逻辑运算符34 4.6.4赋值运算符35 4.6.5位运算符35 4.6.6移位运算符37 4.6.7三元运算符38 4.6.8对象运算符39 4.7运算符的优先级39 4.8Java语言的编码规范40 4.8.1语法规范40 4.8.2代码编写规范40 4.9本章知识点综合应用41 4.9.1转换基本数据类型41 4.9.2Java的运算符43 4.10小结50 4.11习题50 第5章白鹤亮翅:程序控制语句 5.1条件语句52 5.1.1if语句52 5.1.2switch语句55 5.1.3if与switch的区别56 5.2循环语句57 5.2.1for循环结构57 5.2.2while循环结构58 5.2.3do—while循环结构59 5.2.4while与do—while的区别60 5.3break和continue语句61 5.3.1break语句61 5.3.2continue语句62 5.3.3break与continue的区别63 5.4本章知识点综合应用63 5.4.1控制程序的流程63 5.4.2计算阶乘66 5.5小结67 5.6习题67 第6章知己知彼:面向对象程序设计 6.1面向对象的基本概念69 6.1.1面向过程与和面向对象的程序设计69 6.1.2对象和封装69 6.1.3类和实例70 6.2类71 6.2.1类的定义71 6.2.2成员变量72 6.2.3成员方法74 6.2.4构造方法76 6.2.5main()方法76 6.2.6参数的传递77 6.2.7类对象的创建、使用和清除78 6.3包80 6.3.1包的作用80 6.3.2包的定义80 6.3.3运行包中的类81 6.3.4引入包中的类81 6.4类中变量和方法的访问权限82 6.4.1公有类型变量和方法83 6.4.2受保护类型变量和方法83 6.4.3私有类型变量和方法84 6.5类的继承85 6.5.1继承的概念86 6.5.2继承的实现—创建子类86 6.5.3继承数据成员和方法87 6.5.4覆盖88 6.5.5继承中要注意的问题90 6.6类的多态性90 6.7抽象类92 6.7.1抽象类的定义92 6.7.2抽象类实例92 6.8接口93 6.8.1接口的定义93 6.8.2接口的使用94 6.8.3接口的继承95 6.9内部类96 6.9.1匿名类(anonymousclass)96 6.9.2静态类(staticclass)97 6.9.3成员类(memberclass)97 6.9.4局部类(localclass)98 6.10类相关关键字99 6.10.1this关键字99 6.10.2static修饰符99 6.10.3final修饰符101 6.10.4super关键字103 6.11本章知识点综合应用104 6.11.1Java的参数传递104 6.11.2自定义形状类105 6.11.3方法和变量在继承时的覆盖与隐藏110 6.12小结114 6.13习题114 第7章稳扎稳打:数组 7.1一维数组116 7.1.1一维数组的声明116 7.1.2一维数组的创建116 7.1.3一维数组的初始化116 7.1.4一维数组元素的使用117 7.1.5一维数组元素的默认值118 7.2二维数组119 7.2.1二维数组声明119 7.2.2二维数组的创建119 7.2.3二维数组的初始化120 7.2.4二维数组的遍历120 7.3数组的相关操作121 7.3.1数组长度121 7.3.2数组填充121 7.3.3数组复制122 7.3.4数组比较123 7.4数组排序123 7.4.1sort函数排序123 7.4.2冒泡排序124 7.5本章知识点综合应用125 7.5.1使用Arrays125 7.5.2求质数127 7.5.3动态调整数组长度129 7.6小结130 7.7习题131 第8章借花献佛:集合 8.1Java集合框架133 8.2Collection接口133 8.2.1转换构造方法133 8.2.2Collection接口的定义133 8.2.3Collection接口的基本操作134 8.2.4遍历Collection接口134 8.2.5Collection接口的批量操作135 8.2.6Collection接口的数组操作136 8.3Set接口136 8.3.1Set接口的定义136 8.3.2Set接口的基本操作137 8.3.3Set接口的批量操作138 8.3.4Set接口的数组操作139 8.4List接口139 8.4.1List接口的定义140 8.4.2从Collection继承的操作140 8.4.3按位置访问和查找操作141 8.4.4List迭代方法142 8.5Map接口143 8.5.1Map接口的定义143 8.5.2Map接口的基本操作144 8.5.3Map接口的批量操作145 8.6实现145 8.6.1实现的类型146 8.6.2Set接口的实现147 8.6.3List接口的实现148 8.6.4Map接口的实现148 8.7本章知识点综合应用149 8.7.1ArrayList、Vector和LinkedList149 8.7.2对List排序154 8.7.3对Map排序156 8.8小结158 8.9习题158 第9章点石成金:字符串处理 9.1字符类160 9.1.1Character字符包装器类160 9.1.2转义字符序列161 9.1.3常用构造函数161 9.1.4字符的比较162 9.1.5取字符对象的值162 9.2字符串String163 9.2.1字符串声明与赋值163 9.2.2常用构造函数163 9.2.3获取字符串长度165 9.3字符串常用操作166 9.3.1字符串连接166 9.3.2字符串比较167 9.3.3字符串截取168 9.3.4字符串查找169 9.3.5字符串大小写转换170 9.3.6字符串内容的替换171 9.3.7获取字符串某位置的字符172 9.4字符串其他操作172 9.5字符串数组173 9.5.1字符串数组的构造函数174 9.5.2字符串数组的属性及常用方法174 9.6字符串缓存类StringBuffer175 9.6.1常用构造函数175 9.6.2字符串缓存与字符串的转化176 9.6.3字符串缓存扩充177 9.6.4字符串缓存插入177 9.7字符串缓存的其他操作178 9.8字符串标记类179 9.8.1常用构造函数179 9.8.2常用方法179 9.9本章知识点综合应用180 9.9.1使用String180 9.9.2基本数据类型与字符串的转化184 9.9.3使用StringBuffer186 9.10小结190 9.11习题190
第三篇 Java编程提高篇 第10章云行雨施:JavaSwing编程 10.1Swing的特点192 10.2Swing容器192 10.2.1JFrame容器192 10.2.2JPanel容器195 10.3创建图形界面程序196 10.4Swing常用组件197 10.4.1按钮组件JButton197 10.4.2复选框组件JCheckBox198 10.4.3单选按钮组件JRadioButton198 10.4.4文本框组件JTextField198 10.4.5密码框组件JPasswordField199 10.4.6组合框组件JComboBox199 10.4.7滑块组件JSlider199 10.4.8微调组制组件JSpinner199 10.4.9菜单组件JMenu200 10.5不可编辑的信息显示组件200 10.5.1标签组件JLabel200 10.5.2进度条组件JProgressBar201 10.5.3工具提示组件JToolTip201 10.6Swing高级组件202 10.6.1颜色选择器JColorChooser202 10.6.2文件选择器JFileChooser202 10.6.3文本编辑组件JEditorPane和JTextPane203 10.6.4文本区组件JTextArea204 10.6.5表组件JTable204 10.6.6树组件JTree205 10.6.7面板组件JPanel206 10.6.8滚动面板JScrollPane207 10.6.9拆分面板JSplitPane207 10.6.10选项卡面板JTabbedPane208 10.6.11工具栏JToolBar208 10.7本章知识点综合应用209 10.7.1一个圆形的按钮209 10.7.2捕捉屏幕211 10.7.3缩放图片214 10.8小结219 10.9习题219 第11章十拿九稳:标准布局 11.1标准布局管理器简介222 11.1.1BorderLayout边框布局222 11.1.2BoxLayout盒状布局223 11.1.3CardLayout卡片布局224 11.1.4FlowLayout流动布局225 11.1.5GridLayout网格布局226 11.1.6GridBagLayout网格包布局227 11.2使用布局管理器技巧228 11.2.1设置布局管理器228 11.2.2向容器中添加组件229 11.2.3提供组件大小和排列策略229 11.2.4设置组件之间的间隙229 11.2.5设置容器的语言方向230 11.3本章知识点应用231 11.3.1设计用户登录界面231 11.3.2日历235 11.4小结241 11.5习题242 第12章料事如神:Java异常处理 12.1Java中的异常244 12.2异常处理245 12.2.1try语句246 12.2.2catch语句247 12.2.3异常类型247 12.2.4异常处理原则248 12.3Throwable类249 12.3.1Throwable类的定义和方法249 12.3.2异常类的继承关系250 12.3.3使用throws抛出异常251 12.3.4使用throw抛出异常252 12.3.5运行期异常252 12.4自定义异常253 12.4.1创建自定义异常类253 12.4.2处理自定义异常254 12.5finally子句255 12.6异常的几个问题256 12.6.1异常丢失256 12.6.2构造函数中的异常处理257 12.6.3异常匹配258 12.7异常的优点260 12.8本章知识点综合应用262 12.8.1throw、throws、try和catch262 12.8.2自定义异常类264 12.8.3使用finally266 12.9小结269 12.10习题270 第13章棒打双狗:Java的输入/输出处理 13.1什么是流272 13.2字节流272 13.2.1输入流类InputStream272 13.2.2输出流类OutputStream274 13.3字符流275 13.3.1Writer类275 13.3.2Reader类277 13.3.3读取Unicode字符278 13.3.4读取字符文件279 13.4File类281 13.4.1创建文件夹281 13.4.2创建文件282 13.4.3复制文件283 13.4.4删除文件284 13.4.5删除文件夹284 13.5流的运用286 13.5.1文件流286 13.5.2管道流287 13.5.3I/O重定向287 13.5.4过滤流288 13.5.5序列化对象289 13.6本章知识点综合应用290 13.6.1获取文件的属性信息290 13.6.2创建文件和目录292 13.6.3删除文件和目录296 13.7小结299 13.8习题299 第14章以柔克刚:多线程编程 14.1线程301 14.1.1线程的组成301 14.1.2多线程概念301 14.1.3Java中的多线程302 14.2创建线程302 14.2.1继承Thread类创建线程302 14.2.2实现Runnable接口创建线程303 14.3线程的状态305 14.4线程的优先级306 14.5线程的同步307 14.5.1同步方法307 14.5.2固定锁和同步308 14.6线程的控制310 14.6.1启动线程310 14.6.2挂起和恢复线程310 14.6.3线程的休眠方法310 14.6.4线程的加入方法312 14.6.5中断线程314 14.6.6结束线程314 14.7线程间通信315 14.7.1PipedWriter类详解315 14.7.2PipedReader类详解316 14.7.3管道通信实例317 14.8多线程的死锁问题318 14.9多线程的缺点319 14.10本章知识点综合应用319 14.10.1定义和启动线程319 14.10.2线程的协作321 14.10.3线程优先级324 14.11小结325 14.12习题325 第15章李代桃僵:网络编程 15.1网络编程基础327 15.1.1什么是TCP协议327 15.1.2什么是IP协议327 15.1.3什么是TCP/IP327 15.1.4什么是UDP协议328 15.1.5什么是端口328 15.1.6什么是套接字328 15.1.7java.net包328 15.2InetAddress类329 15.3URL网络编程330 15.3.1URL330 15.3.2符语法331 15.3.3URLConnection类332 15.4TCP的网络编程332 15.4.1Socket332 15.4.2重要的SocketAPI333 15.4.3服务器端程序设计334 15.4.4客户端程序设计336 15.5UDP网络编程336 15.5.1UDP通信概念337 15.5.2UDP的特性337 15.5.3UDP的应用338 15.5.4UDP与TCP的区别338 15.6本章知识点综合应用339 15.6.1获取URL的信息339 15.6.2HTTP客户端341 15.6.3基本的Socket编程343 15.7小结348 15.8习题349 第16章一箭双雕:内存管理技术 16.1程序中“垃圾”是什么351 16.2“垃圾”收集器354 16.3如何收集“垃圾”356 16.3.1finalize重写357 16.3.2finalize安全问题358 16.4非线程“垃圾”361 16.5线程“垃圾”362 16.6本章知识点综合应用365 16.6.1弱引用实例365 16.6.2软引用实例367 16.6.3最终守护者实例369 16.7小结371 16.8习题371 第17章成人之美:处理图像 17.1加载与绘制373 17.2图标376 17.2.1Icon接口376 17.2.2ImageIcon类379 17.3处理图像编码380 17.3.1JPEG编码器381 17.3.2GifEncoder编码器382 17.4图像抓取384 17.4.1createScreenCapture方法384 17.4.2抓屏功能使用实例384 17.5图像滤镜的开发388 17.6RGB色彩通道过滤390 17.7卷积滤镜391 17.8本章知识点综合应用393 17.9小结402 17.10习题402
第18章里应外合:反射与注解的应用 18.1反射概念404 18.2Class类的使用实例404 18.3数组与Class类408 18.4精确判断对象类型409 18.4.1Field类的知识与使用410 18.4.2Method类的知识与使用412 18.4.3Constructor类的知识与使用414 18.5反射与修饰符416 18.6取消访问限制420 18.7利用反射动态创建数组对象422 18.8本章知识点综合应用423 18.8.1instanceof操作符423 18.8.2获取类的信息424 18.9小结431 18.10习题431 第19章如虎添翼:使用JDBC连接数据库 19.1数据库433 19.1.1数据库简介433 19.1.2SQL语句433 19.2JDBC简介435 19.2.1什么是JDBC435 19.2.2JDBC与Java结合435 19.2.3JDBC如何实现数据库的平台无关性435 19.3JDBC中的常用类和接口436 19.3.1驱动程序管理类(DriverManager)436 19.3.2声明类(Statement)436 19.3.3数据库连接类(Connection)437 19.3.4结果集合类(ResultSet)437 19.4如何实现数据库的连接438 19.4.1加载合适的数据库驱动程序438 19.4.2数据库配置问题438 19.4.3建立数据库连接并获得Statement对象440 19.4.4执行数据库查询语句440 19.4.5获得查询结果441 19.4.6关闭数据库连接441 19.4.7完整的示例程序441 19.5元数据442 19.5.1数据库的DatabaseMetaData元数据443 19.5.2结果集的ResultSetMetaData元数据443 19.6批处理444 19.6.1批处理规范444 19.6.2批处理举例444 19.7本章知识点综合应用445 19.7.1访问数据库445 19.7.2对数据库进行查询446 19.7.3增加、修改、删除数据库中的数据447 19.8小结448 19.9习题448 第20章同甘共苦:使用Swing组件创建数据库应用程序 20.1JComboBox组件创建数据库应用程序450 20.1.1创建JComboBox450 20.1.2DefaultComboBoxModel创建JComboBox452 20.2JList组件创建数据库应用程序453 20.2.1DefaultListModel创建JList453 20.2.2ListModel创建JList454 20.3JTable组件创建数据库应用程序456 20.3.1JTable相关的类456 20.3.2DefaultTableModel创建JTable457 20.4本章知识点综合应用458 20.4.1使用ResultSet更新数据库458 20.4.2使用RowSet462 20.5小结472 20.6习题473 第21章明修栈道:JSP技术 21.1JSP简介475 21.1.1MVC模式475 21.1.2JSP技术的优点476 21.2基本语法476 21.2.1注释476 21.2.2JSP指令477 21.3JSP脚本元素480 21.3.1JSP声明480 21.3.2JSP表达式481 21.4JSP动作481 21.4.1include动作元素482 21.4.2forword动作元素482 21.4.3plugin动作元素483 21.4.4param动作元素483 21.4.5useBean、setProperty和getProperty动作元素484 21.5JSP内置对象486 21.5.1request对象486 21.5.2response对象488 21.5.3session对象488 21.5.4application对象489 21.5.5out对象491 21.5.6config对象491 21.5.7exception对象492 21.5.8pageContext对象492 21.6本章知识点综合应用493 21.6.1获取客户端的真实IP地址493 21.6.2设置和读取Cookie495 21.6.3JSP无刷新聊天室499 21.7小结505 21.8习题505 第22章暗度陈仓:Servlet技术 22.1Servlet简介507 22.1.1什么是Servlet507 22.1.2Servlet的生命周期507 22.1.3Servlet的基本结构508 22.2HTTPServlet应用编程接口508 22.2.1init()方法509 22.2.2service()方法509 22.2.3doGet()方法509 22.2.4doPost()方法509 22.2.5destroy()方法509 22.2.6GetServletConfig()方法510 22.2.7GetServletInfo()方法510 22.3创建HttpServlet510 22.4调用HttpServlet512 22.4.1由URL调用Servlet512 22.4.2在<FORM>标记中指定Servlet512 22.4.3在<SERVLET>标记中指定Servlet513 22.4.4在ASP文件中调用Servlet513 22.5Servlet之间的跳转514 22.5.1转向Forward514 22.5.2重定向Redirect515 22.6本章知识点综合应用515 22.6.1用Servlet生成图形验证码515 22.6.2用Servlet实现分页查看数据库520 22.7小结534 22.8习题534 第四篇 开发实战篇 第23章小试牛刀:界面游戏拼图 23.1游戏简介536 23.2素材准备537 23.3游戏设计537 23.3.1加载和拆分图片537 23.3.2实现图片的随机排列538 23.3.3实现图片的移动538 23.3.4参考图像的缩放539 23.4开发步骤539 23.4.1自定义按钮类设计:ImageButton类540 23.4.2游戏界面布局:构造窗体类PuzzleGame540 23.4.3加载和拆分图像541 23.4.4创建拼接图面板542 23.4.5创建显示参考图像的面板543 23.4.6创建菜单栏545 23.4.7实现按钮事件监听器类547 23.4.8设置窗体在屏幕中出现的位置547 23.4.9编写main()方法548 23.4.10运行测试548 23.5打包部署548 23.6小结549 第24章鹤啸九天:学生信息管理系统 24.1需求分析551 24.2系统设计551 24.3登录模块551 24.3.1设计构想551 24.3.2实现登录模块552 24.4学生信息模块相关流程554 24.4.1设计构想554 24.4.2实现学生信息主界面554 24.4.3增加学生信息557 24.4.4删除学生信息560 24.4.5修改学生信息563 24.4.6基本学生信息查询567 24.4.7成绩查询571 24.4.8退出系统575 24.5教师信息模块相关流程576 24.5.1主界面576 24.5.2增加老师信息579 24.5.3删除老师信息583 24.5.4修改老师信息586 24.5.5录入成绩590 24.5.6删除成绩593 24.5.7修改成绩596 24.5.8基本信息查询600 24.5.9退出系统604 24.6小结606 |