Java是使用面很广的面向对象的开发语言。本书站在零基础学习的角度,通过通俗易懂的语言和丰富多彩的实例,帮助初学者尽快掌握Java语言程序设计的核心知识点而少走弯路。
本书一共分为四篇,共24章,循序渐进地讲述了Java语言的语法规则,以及Eclipse和MyEclipse开发环境的使用,从基本概念到具体实践、从入门知识到高阶主题、从语法语义到数据结构和算法都进行了详细的阐述,内容主要包括运算符、表达式、分支语句、循环语句、函数、数组、字符串、类、对象、包、继承、多态、封装、枚举、反射、标注、泛型、类加载器、动态代理、多线程、文件的操作和访问、数据的操作、数据的存储、Java数据结构、XML文件的创建和解析、数据库的连接、网络编程和界面的设计等知识点。书中的所有知识都结合具体实例进行介绍,涉及的程序代码都给出了详细的注释,有助于读者轻松领会程序开发的精髓,快速提高开发技能。
封面图
目录
- 前言
- 第一篇Java语言语法基础——面向过程知识
- 第1章 Java技术概览1
- 1.1 Java技术1
- 1.1.1 认识Java语言1
- 1.1.2 认识Java平台2
- 1.1.3 Java语言的功能3
- 1.1.4 Java语言的优点3
- 1.1.5 Java分布式应用和多线程的特点4
- 1.1.6 Java程序的可靠性、安全性4
- 1.2 Windows下的“HelloWorld”应用程序5
- 1.2.1 创建应用程序的软件环境5
- 1.2.2 创建“HelloWorld”应用程序的步骤5
- 1.3 深入探讨“HelloWorld”应用程序7
- 1.3.1 注释源代码8
- 1.3.2 实现类定义8
- 1.3.3 详解main()方法9
- 1.4 常见疑难解答9
- 1.4.1 环境变量设置错误9
- 1.4.2 语法错误9
- 1.4.3 语义错误10
- 1.4.4 运行时错误10
- 1.4.5 初学者如何选择Java参考书11
- 1.5 小结11
- 1.6 习题12
- 第2章 Java开发工具及环境设置13
- 2.1 Java开发工具简介13
- 2.1.1 下载并安装JDK13
- 2.1.2 设定环境变量16
- 2.1.3 验证JDK环境是否配置成功18
- 2.2 JDK内置工具18
- 2.2.1 JDK常用工具18
- 2.2.2 JDK常用工具的使用实例18
- 2.2.3 Java应用程序的发布工具20
- 2.3 一个简单的Java应用程序20
- 2.4 Java程序员的编码规则21
- 2.5 常见疑难解答23
- 2.5.1 Java文件扩展名是否区分大小写23
- 2.5.2 Javac xxx.java顺利通过,但Java xxx显示“NoClassDefFoundError”23
- 2.5.3 导致错误“Exception in thread main java.lang.NoSuchMethodError:main”的原因23
- 2.6 小结24
- 2.7 习题24
- 第3章 Java语言中的数据类型与运算符25
- 3.1 数制25
- 3.1.1 基本概念25
- 3.1.2 Java语言中的数制表现形式25
- 3.2 数据类型26
- 3.2.1 整型26
- 3.2.2 字符型29
- 3.2.3 浮点型29
- 3.2.4 布尔型31
- 3.3 变量31
- 3.3.1 变量的声明32
- 3.3.2 变量的含义32
- 3.3.3 变量的分类32
- 3.4 变量如何初始化34
- 3.5 常量36
- 3.6 运算符37
- 3.6.1 算术运算符37
- 3.6.2 关系运算符41
- 3.6.3 逻辑运算符42
- 3.6.4 位运算符44
- 3.6.5 移位运算符46
- 3.6.6 赋值运算符48
- 3.6.7 三元运算符49
- 3.6.8 逗号运算符49
- 3.6.9 转型运算符49
- 3.6.10 运算符的优先级别50
- 3.7 常见疑难解答50
- 3.7.1 如何将十进制转换成二进制50
- 3.7.2 转型运算符会引起精度问题,为什么还要使用它51
- 3.8 小结51
- 3.9 习题51
- 第4章 程序设计中的流程控制52
- 4.1 编程风格52
- 4.2 条件语句53
- 4.2.1 简单条件语句53
- 4.2.2 最简单的条件语句54
- 4.2.3 适应多条件的条件语句55
- 4.2.4 嵌套条件语句58
- 4.2.5 如何使用条件语句59
- 4.3 循环语句59
- 4.3.1 for循环语句59
- 4.3.2 while循环62
- 4.3.3 do…while语句65
- 4.4 中断与继续语句66
- 4.4.1 中断控制语句66
- 4.4.2 继续语句68
- 4.5 分支语句69
- 4.6 返回语句72
- 4.7 常见疑难解答72
- 4.7.1 普通循环是使用for语句还是while语句72
- 4.7.2 一般的程序可否用分支语句来代替条件语句73
- 4.8 小结73
- 4.9 习题73
- 第二篇Java语言语法进阶——面向对象知识
- 第5章 数组75
- 5.1 数组概念的引入75
- 5.1.1 实例的引入75
- 5.1.2 数组的概念75
- 5.1.3 用实例说明数组的用处76
- 5.2 基本数据类型的数组76
- 5.2.1 基本类型数组的声明77
- 5.2.2 基本类型数组的初始化77
- 5.3 由实例引出不同数组种类及其使用78
- 5.3.1 认识一维数组78
- 5.3.2 由实例引出一维数组及其使用78
- 5.3.3 由实例引出二维数组及其使用81
- 5.4 多维数组82
- 5.4.1 多维数组的声明82
- 5.4.2 初始化多维数组83
- 5.4.3 使用多维数组83
- 5.5 数组的综合实例84
- 5.6 常见疑难解答88
- 5.6.1 声明数组需要注意什么88
- 5.6.2 数组在平时的程序代码中使用是否频繁88
- 5.7 小结88
- 5.8 习题88
- 第6章 字符串的处理90
- 6.1 认识字符串90
- 6.1.1 代码中的字符串90
- 6.1.2 String类和StringBuffer类的比较91
- 6.2 字符串处理的类库种类92
- 6.2.1 字符串的赋值92
- 6.2.2 字符串处理类——String92
- 6.2.3 字符串处理的方法95
- 6.2.4 缓冲字符串处理类——StringBuffer102
- 6.2.5 缓冲字符串StringBuffer类的构造器102
- 6.2.6 缓冲字符串的处理103
- 6.2.7 缓冲字符串类的特点107
- 6.3 用实例演示如何处理字符串107
- 6.4 如何格式化输出字符串108
- 6.5 常见疑难解答109
- 6.5.1 equals和“==”的区别109
- 6.5.2 String类为何被定义成final约束109
- 6.5.3 char类型如何转换成int类型,int类型如何转换成字符串109
- 6.6 小结109
- 6.7 习题110
- 第7章 类和对象111
- 7.1 面向对象开发中的类111
- 7.1.1 在Java中类的定义111
- 7.1.2 Java中的类与现实世界的类112
- 7.2 万事万物皆对象112
- 7.2.1 什么是对象112
- 7.2.2 操作对象113
- 7.2.3 初始化对象113
- 7.2.4 对象的成员方法114
- 7.2.5 对象的成员变量119
- 7.3 对象中访问控制符的重要性119
- 7.3.1 什么是访问控制符119
- 7.3.2 如何使用访问控制符及其重要性121
- 7.4 Java中的基础类123
- 7.4.1 Java的数学运算处理类Math123
- 7.4.2 测试时间和日期的类Date125
- 7.4.3 测试日历的类GregorianCalendar126
- 7.4.4 日历处理的实例解析127
- 7.5 用实例分析设计一个类的流程129
- 7.5.1 如何在现实程序设计中提取一个类129
- 7.5.2 设置器和访问器135
- 7.5.3 总结137
- 7.6 常见疑难解答137
- 7.6.1 类在程序语言中起到了什么作用137
- 7.6.2 设置器和访问器的作用137
- 7.7 小结137
- 7.8 习题137
- 第8章 重载和包138
- 8.1 重载138
- 8.1.1 什么是重载138
- 8.1.2 用实例来说明重载的意义139
- 8.2 包140
- 8.2.1 什么是Java中的包140
- 8.2.2 如何实现包140
- 8.2.3 什么是类路径和默认包142
- 8.2.4 包的作用域142
- 8.2.5 静态导入142
- 8.3 包的注释及嵌入文档144
- 8.3.1 如何添加注释144
- 8.3.2 类、方法、字段等注释的方法144
- 8.4 常见疑难解答145
- 8.4.1 包在实际编程中究竟有什么作用145
- 8.4.2 一个文件中定义了两个class类是否生成一个.class文件145
- 8.5 小结145
- 8.6 习题145
- 第9章 继承和多态147
- 9.1 什么是继承147
- 9.1.1 继承的引出147
- 9.1.2 继承的概念148
- 9.1.3 如何实现继承149
- 9.1.4 如何设计继承151
- 9.2 构造函数的使用151
- 9.2.1 什么是构造函数151
- 9.2.2 继承中构造函数的初始化152
- 9.2.3 替代父类和本身的方式153
- 9.2.4 Java中的单继承性154
- 9.3 继承中的覆盖现象154
- 9.4 类之间的关系154
- 9.4.1 依赖155
- 9.4.2 聚合155
- 9.4.3 继承155
- 9.5 继承层次图156
- 9.6 多态156
- 9.6.1 多态的产生156
- 9.6.2 多态的概念157
- 9.6.3 使用多态编写程序158
- 9.6.4 覆盖的应用159
- 9.6.5 重载与覆盖的实例对比160
- 9.6.6 覆盖的多态性160
- 9.6.7 传值引用和传址引用162
- 9.7 通过实例熟悉多态用法163
- 9.8 绑定165
- 9.8.1 静态绑定165
- 9.8.2 动态绑定165
- 9.9 超类165
- 9.9.1 什么是超类165
- 9.9.2 equals方法的使用166
- 9.9.3 通用编程166
- 9.10 常见疑难解答166
- 9.10.1 Java不支持多继承,如何处理一个类继承多个父类的情况166
- 9.10.2 如果出现了带参数的构造函数,可否不在代码中写出来167
- 9.10.3 动态和静态编译是什么167
- 9.10.4 绑定与多态的联系是什么167
- 9.10.5 多态与重载的区别是什么167
- 9.11 小结167
- 9.12 习题167
- 第10章 接口与内部类171
- 10.1 接口171
- 10.1.1 接口概念的引入171
- 10.1.2 接口的声明172
- 10.1.3 接口的实现172
- 10.1.4 接口的多重实现177
- 10.1.5 接口的属性182
- 10.1.6 接口的继承182
- 10.2 内部类188
- 10.2.1 使用内部类来访问对象188
- 10.2.2 局部内部类191
- 10.2.3 静态内部类194
- 10.2.4 匿名内部类194
- 10.3 常见疑难解答194
- 10.3.1 匿名类如何在程序中使用194
- 10.3.2 接口与继承有什么区别194
- 10.4 小结194
- 10.5 习题194
- 第11章 抽象和封装196
- 11.1 抽象的概念196
- 11.1.1 什么是抽象196
- 11.1.2 抽象的综合实例197
- 11.2 抽象类200
- 11.2.1 什么是抽象类200
- 11.2.2 抽象类的实例200
- 11.3 抽象与接口的区别205
- 11.4 枚举205
- 11.4.1 关于枚举的实现原理205
- 11.4.2 枚举的简单应用207
- 11.4.3 关于枚举的高级特性208
- 11.5 反射210
- 11.5.1 关于反射的基石——Class类210
- 11.5.2 关于反射的基本应用212
- 11.5.3 关于反射的高级应用216
- 11.6 标注219
- 11.6.1 标注的简单使用219
- 11.6.2 关于JDK的内置标注221
- 11.7 泛型223
- 11.7.1 为什么要使用泛型223
- 11.7.2 关于泛型的一些特性226
- 11.7.3 关于泛型的通配符228
- 11.8 类加载器229
- 11.8.1 什么是类加载器230
- 11.8.2 什么是类加载器的委派模型231
- 11.9 动态代理232
- 11.9.1 什么是代理232
- 11.9.2 关于动态代理基础类233
- 11.9.3 关于InvocationHandler接口237
- 11.9.4 动态代理类的设计模式240
- 11.10 封装的概念242
- 11.10.1 一个封装的例子242
- 11.10.2 在程序设计中为什么要使用封装244
- 11.10.3 在程序设计中设计封装的注意点246
- 11.11 结合实例讲述如何设计封装246
- 11.12 常见疑难解答251
- 11.12.1 抽象类和接口在概念上有什么区别251
- 11.12.2 如何从设计理念上看待抽象类和接口251
- 11.12.3 封装在现实开发中给程序员带来什么启发253
- 11.12.4 封装在实际开发中的应用有哪些254
- 11.13 小结254
- 11.14 习题255
- 第三篇Java语言编程主题
- 第12章 线程257
- 12.1 线程的基本概念257
- 12.1.1 进程及其使用环境257
- 12.1.2 线程及其使用环境257
- 12.2 线程的创建258
- 12.2.1 如何创建线程258
- 12.2.2 通过实例熟悉如何创建线程261
- 12.2.3 线程的状态264
- 12.3 线程的使用266
- 12.3.1 线程的优先级266
- 12.3.2 线程的休眠与唤醒267
- 12.3.3 线程让步271
- 12.3.4 线程同步272
- 12.3.5 同步块274
- 12.3.6 同步化方法277
- 12.4 实例分析278
- 12.4.1 生产者与消费者的程序设计及分析278
- 12.4.2 多消费者的程序设计及分析280
- 12.4.3 多生产者的程序设计及分析283
- 12.5 常见疑难解答288
- 12.5.1 Java中线程与线程之间怎么通信288
- 12.5.2 什么是进程的死锁和饥饿288
- 12.5.3 什么时候会涉及线程程序289
- 12.5.4 多线程的死锁问题289
- 12.5.5 多线程的缺点290
- 12.6 小结290
- 12.7 习题290
- 第13章 异常的处理与内存的管理292
- 13.1 异常的概念292
- 13.1.1 异常的分类292
- 13.1.2 异常的声明293
- 13.1.3 异常的抛出throw294
- 13.2 异常的捕获295
- 13.2.1 捕获多个异常296
- 13.2.2 自定义异常298
- 13.2.3 运行期异常299
- 13.2.4 执行finally子句300
- 13.2.5 finally子句的必要性301
- 13.3 内存的管理和回收303
- 13.4 常见疑难解答304
- 13.4.1 为什么要声明方法抛出异常304
- 13.4.2 为什么抛出的异常一定是检查异常304
- 13.5 小结305
- 13.6 习题305
- 第14章 Java输入与输出306
- 14.1 输入与输出的重要性306
- 14.2 Java重要的输入输出类306
- 14.3 文件或目录信息的处理307
- 14.3.1 File类常用的操作方法307
- 14.3.2 文件处理方法的应用308
- 14.3.3 文件和目录的操作308
- 14.4 读取数据的媒介之一——流310
- 14.4.1 什么是流311
- 14.4.2 什么是输入流和输出流311
- 14.4.3 字节输入流及输出流311
- 14.4.4 使用文件字节输入流读取文件312
- 14.4.5 使用文件字节输出流输出文件313
- 14.5 多字节数据读取类——Filter类315
- 14.5.1 Filter流的概念315
- 14.5.2 处理字节类型以外的文件输入315
- 14.5.3 处理字节类型以外的文件输出316
- 14.5.4 增强的多字节输出流DataOutput316
- 14.5.5 增强的多字节输入流DataInput317
- 14.6 读取数据的媒介之二——字符流320
- 14.6.1 字符流的概念320
- 14.6.2 抽象字符输入流Reader类的使用320
- 14.6.3 抽象字符输出流Writer类的使用321
- 14.6.4 读取带缓存的BufferedReader字符流321
- 14.6.5 带缓存的字符输出流BufferedWriter类322
- 14.6.6 字符输入流FileReader类和FileWriter类的使用325
- 14.6.7 如何用标准输入流System.in来获取数据326
- 14.6.8 打印输入流PrintWriter类与PrintStream类的区别327
- 14.6.9 随机文件访问RandomAccessFile类329
- 14.7 利用对象序列化控制输入输出331
- 14.7.1 什么是对象序列化331
- 14.7.2 基本数据和对象数据读写ObjectInput接口与ObjectOutput接口332
- 14.7.3 对象序列化处理ObjectOutputStream类332
- 14.7.4 对象序列化处理ObjectInputStream类333
- 14.8 常见疑难解答333
- 14.8.1 字节流与字符流的主要区别333
- 14.8.2 输入流与输出流如何区分,各有什么作用334
- 14.8.3 什么是管道流334
- 14.9 小结335
- 14.10 习题335
- 第15章 Java中对数据的处理336
- 15.1 如何将基本数据类型转换为对象336
- 15.1.1 为什么要将基本数据转换为对象336
- 15.1.2 Wrapper类的构造函数337
- 15.1.3 包装类的常用函数338
- 15.1.4 基本数据的拆装箱操作339
- 15.2 如何处理随机性的数据341
- 15.2.1 Random类的基础知识341
- 15.2.2 通过实例熟悉Random类的常用方法342
- 15.3 如何对数据进行排列、整理345
- 15.3.1 Arrays类的常用方法345
- 15.3.2 实例分析347
- 15.4 常见疑难解答350
- 15.4.1 Random类函数在现实生活中有什么用处350
- 15.4.2 数组的排列和整理数据在实际应用中有什么用处350
- 15.5 小结351
- 15.6 习题351
- 第16章 数据结构接口352
- 16.1 数据结构接口及实现352
- 16.1.1 数据结构接口的实质352
- 16.1.2 用实例来熟悉数据结构接口的实现353
- 16.2 Collection集合接口与Iterator迭代器接口354
- 16.2.1 熟悉Collection集合接口354
- 16.2.2 List接口和Set接口355
- 16.2.3 Map映射接口356
- 16.2.4 Iterator迭代器接口357
- 16.2.5 通过实例来认识迭代器的实现358
- 16.3 常见疑难解答360
- 16.3.1 Collection集合接口和Collections集合类的区别360
- 16.3.2 ArrayList数组列表类和Vector存储类的区别360
- 16.3.3 HashMap散列映射和Hashtable散列表的区别360
- 16.3.4 数据结构的种类有哪些360
- 16.3.5 List接口和Set接口的区别360
- 16.4 小结361
- 16.5 习题361
- 第17章 Java中的数据结构362
- 17.1 链表362
- 17.1.1 什么是Java中的链表362
- 17.1.2 用程序代码段实现对链表的添加363
- 17.1.3 用程序代码段实现对链表的删除365
- 17.2 数组列表类369
- 17.2.1 什么是数组列表类369
- 17.2.2 通过实例熟悉数组列表如何存储数据370
- 17.3 散列表374
- 17.3.1 什么是散列表374
- 17.3.2 通过实例熟悉散列表如何存储数据374
- 17.4 散列集378
- 17.4.1 什么是散列集378
- 17.4.2 通过实例熟悉散列集如何存储数据378
- 17.5 树集383
- 17.5.1 什么是树集383
- 17.5.2 通过实例熟悉树集如何存储数据384
- 17.6 映像387
- 17.6.1 什么是映像387
- 17.6.2 通过实例熟悉映像如何存储数据387
- 17.7 常见疑难解答391
- 17.7.1 哪些是线程安全的数据结构391
- 17.7.2 Vector是什么样的数据结构391
- 17.8 小结392
- 17.9 习题392
- 第18章 XML基础393
- 18.1 XML和HTML393
- 18.1.1 XML的产生393
- 18.1.2 XML与HTML的比较394
- 18.2 XML的编辑工具395
- 18.3 创建XML文档395
- 18.3.1 XML的声明396
- 18.3.2 文档类型的声明396
- 18.3.3 元素397
- 18.3.4 注释398
- 18.3.5 处理指令398
- 18.3.6 空白处理398
- 18.3.7 行尾处理399
- 18.3.8 语言标识399
- 18.3.9 一个简单的有关XML的实例399
- 18.4 关于XML的高级知识400
- 18.4.1 什么才是格式良好的XML文档400
- 18.4.2 DTD文档的作用401
- 18.4.3 DTD的结构401
- 18.4.4 几个有关DTD的简单实例403
- 18.5 关于XML文档的操作405
- 18.5.1 下载Dom4J组件405
- 18.5.2 配置Dom4J组件406
- 18.5.3 Dom4J组件的简单使用——解析XML文件406
- 18.5.4 Dom4J组件的简单使用——创建XML文件409
- 18.6 关于XML文档的高级操作411
- 18.6.1 下载Sax类库411
- 18.6.2 配置Sax组件412
- 18.6.3 Sax组件的简单使用——解析XML文件412
- 18.7 常见疑难解答415
- 18.7.1 XML与HTML的区别415
- 18.7.2 XML有哪些显示数据的方式415
- 18.8 小结416
- 18.9 习题416
- 第19章 开发工具的使用417
- 19.1 Eclipse简介417
- 19.1.1 下载并安装Eclipse418
- 19.1.2 Eclipse界面介绍419
- 19.2 如何使用Eclipse进行开发422
- 19.2.1 如何新建一个Java工程422
- 19.2.2 如何新建一个Java类424
- 19.2.3 编写代码425
- 19.3 如何使用MyEclipse进行开发426
- 19.3.1 下载并安装MyEclipse427
- 19.3.2 关于MyEclipse的一些常用操作428
- 19.4 常见疑难解答431
- 19.4.1 Eclipse和UltraEdit两个开发工具的优缺点431
- 19.4.2 什么是IDE环境431
- 19.4.3 有关Eclipse的编译报错的原因431
- 19.5 小结431
- 19.6 习题432
- 第20章 Swing组件与布局管理器433
- 20.1 什么是Swing编程433
- 20.2 MVC设计模式基础433
- 20.3 简单框架设计及实例434
- 20.3.1 创建一个空白的框架434
- 20.3.2 创建框架的其他工作435
- 20.4 简单图形按钮控件的设计及实例436
- 20.4.1 Swing中的按钮控件436
- 20.4.2 按钮的模型437
- 20.4.3 添加普通按钮437
- 20.4.4 添加单选按钮438
- 20.4.5 添加复选框440
- 20.4.6 ToggleButton按钮441
- 20.5 简单文本输入组件的设计及实例442
- 20.5.1 文本域442
- 20.5.2 密码域443
- 20.5.3 文本区域444
- 20.6 展示类组件的设计及实例445
- 20.6.1 标签组件445
- 20.6.2 选择组件446
- 20.6.3 菜单组件447
- 20.6.4 对话框的种类及用法448
- 20.7 复杂布局管理器的种类及用法449
- 20.7.1 箱式布局的设计450
- 20.7.2 网格组布局的设计452
- 20.7.3 流布局的设计452
- 20.7.4 边界布局的设计454
- 20.8 通过实例熟悉Swing编程455
- 20.9 常见疑难解答457
- 20.9.1 如何处理菜单的启用和禁用功能457
- 20.9.2 如何编写快捷键的程序458
- 20.10 小结458
- 20.11 习题458
- 第21章 JDBC及其应用459
- 21.1 数据库基础知识459
- 21.1.1 什么是数据库459
- 21.1.2 数据库的分类及功能460
- 21.1.3 关系数据库的设计460
- 21.1.4 数据库设计技巧461
- 21.2 JDBC的基础概念462
- 21.2.1 JDBC驱动程序的分类462
- 21.2.2 利用Java到数据库协议方式连接Oracle数据库463
- 21.2.3 利用Java到本地API方式连接Oracle数据库464
- 21.3 关于SQL Server数据库基础操作466
- 21.3.1 什么是支持SQL语言的数据库466
- 21.3.2 通过SQL语言如何操作数据库467
- 21.3.3 安装SQL Server468
- 21.3.4 高级SQL类型469
- 21.3.5 使用SQL创建数据库470
- 21.4 关于JDBC的高级操作477
- 21.4.1 什么是事务处理477
- 21.4.2 事务处理的过程演练477
- 21.4.3 预查询480
- 21.4.4 使用JDBC的注意事项480
- 21.5 常见疑难解答481
- 21.5.1 操作数据库的具体步骤是什么481
- 21.5.2 数据库中的视图、图表、缺省值、规则、触发器、存储过程的意义482
- 21.6 小结482
- 21.7 习题482
- 第22章 网络编程基础484
- 22.1 网络基础知识484
- 22.2 TCP/IP协议和UDP协议484
- 22.2.1 IP协议和IP地址485
- 22.2.2 TCP协议和端口487
- 22.2.3 客户端/服务器通信模型487
- 22.2.4 UDP协议488
- 22.3 端口与套接字489
- 22.4 TCP程序设计基础489
- 22.4.1 如何设计TCP程序490
- 22.4.2 一个简单的例子492
- 22.5 UDP程序设计基础493
- 22.5.1 如何设计UDP程序493
- 22.5.2 一个简单的例子493
- 22.6 如何设计网络程序494
- 22.6.1 单向通信综合实例495
- 22.6.2 双向通信综合实例497
- 22.7 常见疑难解答500
- 22.7.1 TCP和UDP的区别500
- 22.7.2 什么是TCP/IP协议,分为几层,什么功能501
- 22.8 小结502
- 22.9 习题502
- 第四篇Java语言程序设计实例与面试题剖析
- 第23章 学校管理系统503
- 23.1 开发背景503
- 23.2 需求分析503
- 23.3 登录界面的设计504
- 23.3.1 登录界面的分析504
- 23.3.2 登录界面的代码实现504
- 23.3.3 登录界面的运行506
- 23.4 主菜单界面的设计507
- 23.4.1 主菜单界面的分析507
- 23.4.2 主菜单界面的代码实现507
- 23.4.3 主菜单界面的运行515
- 23.5 数据库系统的设计516
- 23.5.1 数据库中表的创建516
- 23.5.2 数据库中的代码段519
- 23.6 学生信息系统界面的设计520
- 23.6.1 学生类的设计520
- 23.6.2 存储类的设计521
- 23.6.3 学生信息系统界面的代码实现523
- 23.7 教师信息系统界面的设计531
- 23.7.1 教师类的设计531
- 23.7.2 存储类的设计533
- 23.7.3 教师信息系统界面的代码实现535
- 23.8 领导信息系统界面的设计543
- 23.8.1 领导类的设计543
- 23.8.2 存储类的设计544
- 23.8.3 领导信息系统界面的代码实现545
- 23.9 小结553
- 第24章 面试题554
- 面试题1 Java的引用和C++的指针有什么区别554
- 面试题2 类和对象有什么区别555
- 面试题3 说明private、protected、public和default的区别556
- 面试题4 Java可以用非0来代表true吗557
- 面试题5 StringBuffer和StringBuilder存在的作用是什么557
- 面试题6 二维数组的长度是否固定558
- 面试题7 符合什么条件的数据集合可以使用foreach循环559
- 面试题8 如何序列化和反序列化一个Java对象560
- 面试题9 如何使用Java的线程池561
- 面试题10 如何利用反射实例化一个类561
- 面试题11 TCP协议的通信特点是什么561
- 面试题12 请简述JDBC操作数据库的编程步骤561
- 面试题13 如何使用连接池技术561
- 面试题14 简述接口和抽象类的区别562
- 面试题15 如何理解Java中的装箱和拆箱562
- 面试题16 根据代码判断创建的对象个数563
- 面试题17 分析循环程序的运行结果563
- 面试题18 可以返回最大值的方法564
- 面试题19 关于垃圾回收的疑问564
- 面试题20 线程问题:找出代码中的错误565
- 面试题21 关于ArrayList、Vector、LinkedList的问答题565
- 面试题22 Java中的异常处理机制的简单原理和应用566
- 面试题23 列举一些常用的类、包、接口,请各列举5个566
- 面试题24 Java 中,DOM 和 SAX 解析器有什么不同566
- 面试题25 线程的sleep()方法和yield()方法有什么区别566