目录 第1章Java语言概述1 1.1程序设计语言的发展史1 1.2Java语言的发展史5 1.3Java开发环境的配置7 1.4Java程序开发过程及常用工具介绍11 1.4.1Java程序的工作原理11 1.4.2用记事本开发11 1.4.3用Eclipse开发13 1.4.4用JCreator开发17 第2章Java基础语法19 2.1标识符和关键字19 2.2基本数据类型21 2.2.1布尔型21 2.2.2字符型22 2.2.3整数型23 2.2.4浮点型25 2.2.5类型转换26 2.3常量与变量30 2.4运算符33 2.4.1算术运算符33 2.4.2关系运算符35 2.4.3逻辑运算符37 2.4.4位运算符38 2.4.5赋值运算符40 2.4.6条件运算符40 2.4.7对象运算符41 2.5语句41 2.5.1分支语句42 2.5.2循环语句45 2.5.3跳转语句48 2.5.4注释语句53 2.6输入参数方式54 第3章类和对象60 3.1面向对象技术基础60 3.1.1面向对象基本概念60 3.1.2面向对象基本特征62 3.2类64 3.2.1类的定义64 3.2.2成员变量与成员方法66 3.2.3构造方法67 3.2.4main方法70 3.3对象70 3.3.1对象的生成与使用70 3.3.2变量的作用域72 3.3.3对象的内存分配机制73 3.3.4方法参数的传递76 3.3.5对象的清除80 3.4this关键字80 3.5static关键字82 3.6final关键字88 3.7import和包90 第4章类的封装、继承、多态性及接口94 4.1封装94 4.1.1类的访问控制方式94 4.1.2类成员的访问控制方式94 4.1.3封装的设计原则96 4.2继承96 4.2.1extends关键字96 4.2.2super关键字100 4.2.3构造方法的继承102 4.3多态性106 4.3.1方法重载106 4.3.2方法覆盖108 4.4抽象类112 4.5接口116 4.5.1接口的定义116 4.5.2接口的实现117 4.5.3接口的作用120 4.5.4接口与抽象类的区别124 4.6特殊的类125 4.6.1实名内部类125 4.6.2匿名内部类129 4.6.3泛型类132 4.6.4Class类136 第5章数组、字符串和枚举138 5.1数组138 5.1.1一维数组138 5.1.2二维数组141 5.1.3数组的注意事项143 5.1.4数组的应用143 5.2字符串146 5.2.1不可变字符串String146 5.2.2可变字符串StringBuffer153 5.2.3String与StringBuffer的异同155 5.3字符串与其他数据类型的转换158 5.3.1将其他数据转换成字符串158 5.3.2将字符串转换成其他数据160 5.4枚举162 5.4.1枚举定义162 5.4.2枚举变量和常量163 5.4.3枚举的常见用法164 第6章Java常用类及接口167 6.1Java API类库167 6.2java.lang包168 6.2.1Object类170 6.2.2Math类171 6.2.3System类172 6.2.4Runtime类176 6.3java.util包178 6.3.1Date类180 6.3.2Calendar类181 6.3.3Random类184 6.3.4无序集合: Collection接口和Collections类187 6.3.5有序集合: List接口和ArrayList、LinkedList和Vector类188 6.3.6非重复集合: Set接口和HashSet、TreeSet及LinkedHashSet类195 6.3.7映射集合: Map接口和TreeMap类196 6.3.8for循环简化写法在集合、数组中的应用198 第7章异常处理202 7.1为什么要进行异常处理202 7.2Java中的异常类203 7.3异常处理模式205 7.3.1trycatchfinally语句205 7.3.2异常类成员方法207 7.3.3异常捕获与处理207 7.4重新抛出异常209 7.4.1throws语句209 7.4.2throw语句210 7.5异常处理原则211 第8章流和文件212 8.1流的基本概念212 8.2字节流213 8.2.1输入字节流213 8.2.2输出字节流214 8.3字符流216 8.3.1输入字符流216 8.3.2输出字符流217 8.3.3字符缓冲流220 8.3.4字节流和字符流的异同222 8.4文件222 8.4.1文件属性类222 8.4.2随机访问文件类226 8.4.3文件过滤接口228 8.5对象序列化230 8.5.1序列化是什么231 8.5.2什么情况下需要序列化231 8.5.3对象序列化时发生了什么231 8.5.4实现序列化的步骤231 8.5.5序列化对象的条件232 8.5.6反序列化232 8.5.7序列化注意事项236 8.6Java中的乱码问题237 8.6.1Java中字符的表达237 8.6.2Unicode简介238 8.6.3Unicode编码方式239 8.6.4Unicode实现方式240 8.6.5字节序245 8.6.6其他编码方式246 8.6.7Java中的Unicode248 8.6.8如何处理中文乱码问题255 第9章图形用户界面编程259 9.1AWT与Swing259 9.1.1AWT259 9.1.2Swing260 9.2容器组件263 9.2.1JFrame263 9.2.2JPanel268 9.2.3JScrollPane269 9.2.4JSplitPane270 9.3菜单和工具条272 9.3.1菜单组件272 9.3.2工具栏组件274 9.4基本组件276 9.4.1标签276 9.4.2单行文本框278 9.4.3按钮280 9.4.4下拉框282 9.4.5列表框284 9.4.6多行文本框286 9.4.7表格组件287 9.4.8树形组件291 9.4.9进度条组件299 9.5组件常用方法302 9.5.1颜色302 9.5.2透明性303 9.5.3边框303 9.5.4字体303 9.5.5大小与位置307 9.5.6激活与可见性308 9.6布局管理器309 9.6.1流式布局309 9.6.2边界布局310 9.6.3盒式布局311 9.6.4网格布局313 9.6.5卡片布局315 9.6.6网格包布局317 9.6.7布局基本原则及复杂布局举例322 9.6.8界面风格的选择325 9.7事件处理模型327 9.7.1事件处理机制327 9.7.2事件对象328 9.7.3监听器接口329 9.7.4编写事件处理程序331 9.8鼠标事件处理335 9.9事件适配器类337 9.10键盘事件处理338 第10章多线程342 10.1线程简介342 10.1.1进程与线程342 10.1.2线程生命周期342 10.2编写线程程序344 10.2.1第一种方法: 继承Thread类344 10.2.2第二种方法: 实现Runable接口345 10.2.3两种方法比较347 10.2.4线程基本控制方法348 10.3线程互斥与同步353 10.3.1多线程同步的基本原理355 10.3.2多线程同步实例355 10.4后台线程358 第11章网络编程360 11.1网络编程基础360 11.1.1网络编程的两个基本问题360 11.1.2网络编程相关的基本概念360 11.2URL编程361 11.2.1URL简介361 11.2.2URL类362 11.2.3从URL读取万维网资源363 11.2.4网络编程的乱码问题365 11.2.5利用URLConnection实现双向通信366 11.3Socket编程368 11.3.1Socket编程的过程368 11.3.2利用Socket实现断点续传370 11.3.3利用Socket实现聊天程序380 11.4IntelAddress类384 11.4.1获取本机的计算机名与IP地址385 11.4.2获取Internet上主机的IP地址386 第12章数据库编程389 12.1JDBC概述389 12.1.1JDBC模型389 12.1.2JDBC驱动方式390 12.2JDBC API392 12.3JDBC编程实例394 12.3.1JDBC 驱动程序设置394 12.3.2建立数据库连接395 12.3.3添加记录404 12.3.4查询记录408 12.3.5删除记录412 12.3.6修改记录415 12.3.7数据库操作综合实例419 12.3.8SQL数据库常用命令430 第13章XML及程序打包433 13.1XML简介433 13.2XML在Java程序中的应用437 13.2.1DOM编程438 13.2.2加载XML文件441 13.2.3访问XML元素和属性443 13.2.4利用XML文件存储信息445 13.3Java程序的发布451 13.3.1利用cmd工具打包452 13.3.2利用Eclipse打包457 参考文献461