×
超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

关闭
Java高手是怎样炼成的:原理.方法与实践

Java高手是怎样炼成的:原理.方法与实践

1星价 ¥64.9 (5.5折)
2星价¥64.9 定价¥118.0
暂无评论
图文详情
  • ISBN:9787302563846
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:其他
  • 页数:624
  • 出版时间:2021-01-01
  • 条形码:9787302563846 ; 978-7-302-56384-6

本书特色

资深软件工程师20多年教学与开发经验结晶,通过500多个简单易懂、可运行的完整实例,帮助读者理解Java编程的逻辑、概念及实操资深软件工程师20多年教学与开发经验结晶,通过500多个简单易懂的实例完全理解Java编程从入门到精通,从菜鸟炼成高手,手把手教你掌握Java编程。

内容简介

《Java高手是怎样炼成的:原理、方法与实践》是作者20多年工作经验的结晶。内容由浅入深,循序渐进,通过500多个简单易懂、可运行的完整实例,帮助读者理解Java编程的逻辑、概念及实操。本书内容丰富,讲解接地气,从理论到实践,从基础到不错,帮助读者建立学习信心,在实践中学会Java编程。 《Java高手是怎样炼成的:原理、方法与实践》分五部分,共23章。部分(~5章)主要介绍Java基本语法,包括Java语言概述和发展、编程和开发环境及设置等。第二部分(第6~9章)通过生动实例介绍类、对象、继承、多态、内部类以及接口等Java编程概念和技术。第三部分(0~15章)走进数组和字符串,深入讲解它们的应用、异常处理,并深入讨论更多面向对象技术。第四部分(6~20章)介绍20多种GUI组件、字体、颜色、图像以及音频编程。第五部分(第21~23章)详细讲解数据流、文件I/O、数据库编程以及网络编程等。 《Java高手是怎样炼成的:原理、方法与实践》专为不同层次的Java程序员精心编写,既适合编程初学者入门,又适合程序员进阶,还可以作为高等院校讲授面向对象程序设计语言以及Java语言的参考教材。

目录

目 录 **部分 新手上路 第1章 初识Java ·································2 1.1 什么是Java ················································2 1.2 Java能做什么 ············································3 1.3 Java软件包 ················································3 1.3.1 什么是Java SE ···································3 1.3.2 什么是JDK ·········································4 1.4 为什么Java可以在任何计算机上运行 ····4 1.5 Java和其他语言比较 ································4 1.5.1 Java和C++的比较 ····························5 1.5.2 Java和C#的比较 ······························5 1.6 为什么学Java ············································5 1.6.1 新手常遇到的困难 ·····························5 1.6.2 为什么选择这本书 ·····························6 1.7 免费下载、安装和测试学习Java需要的软件 ············6 1.7.1 免费下载JDK软件包 ························7 1.7.2 JDK的安装步骤 ·································7 1.7.3 安装成功我知道 ·································8 1.8 新手使用Java开发工具Eclipse ············10 1.8.1 什么是IDE········································10 1.8.2 为什么用Eclipse ······························10 1.8.3 免费下载、安装和测试Eclipse ······11 1.8.4 新手须知Eclipse常用功能 ·············14 1.9 编写和运行**个Java程序 ·················17 1.10 什么是Java API ······································19 巩固提高练习和编程实践 ·······························19 第2章 开始Java编程 ························20 2.1 一切从基础开始 ······································20 2.1.1 Java语句 ···········································20 2.1.2 注释,还是注释 ·······························21 2.1.3 什么是标识符和怎样使用 ···············22 2.2 Java基本数据 ··········································23 2.2.1 8种基本数据类型 ····························23 2.2.2 如何定义变量 ···································24 2.2.3 什么是变量初始化 ···························25 2.2.4 变量与存储器有什么关系 ···············26 2.2.5 常量必须初始化 ·······························27 2.3 赋值语句 ··················································27 2.3.1 算术表达式 ·······································27 2.3.2 快捷赋值操作符 ·······························29 2.4 初识字符串 ··············································30 2.4.1 菜鸟理解字符串 ·······························30 2.4.2 什么是字符串引用 ···························31 2.4.3 如何实现字符串连接 ·······················31 2.4.4 如何处理特殊字符——转义符 ·······33 2.5 初识数组 ··················································34 2.5.1 菜鸟理解数组 ···································34 2.5.2 一个例子教会你使用数组 ···············34 巩固提高练习和编程实践 ·······························35 第3章 新手须知类和对象 ····················37 3.1 初识类和对象 ··········································37 3.1.1 类到底是什么 ···································37 3.1.2 对象又是什么 ···································38 3.1.3 编写你的**个类 ···························38 3.1.4 创建你的**个对象 ·······················40 3.1.5 怎样调用方法 ···································41 3.1.6 怎样测试自己编写的类 ···················41 3.1.7 站在巨人的肩膀——使用API类 ············43 3.1.8 给程序带来五彩缤纷——细说JOptionPane ·········45 3.2 学习更多输入、输出API类 ·················48 3.2.1 回到黑白——System.out ·················49 3.2.2 扫描输入——Scanner ······················50 3.3 编写用户友好与人机互动程序 ··············52 实战项目:里程转换应用开发 ·······················53 巩固提高练习和实战项目大练兵 ···················55 第4章 走进控制语句 ··························57 4.1 条件表达式 ··············································57 4.1.1 关系表达式 ·······································57 4.1.2 比较基本型数据 ·······························58 4.1.3 比较字符串 ·······································59 4.2 逻辑表达式和应用 ··································61 4.2.1 逻辑表 ···············································61 4.2.2 复合表达式及运算次序 ···················61 4.2.3 你的程序逻辑清楚吗 ·······················62 4.3 简单if语句 ·············································63 4.4 简单if-else语句 ······································65 4.5 嵌套if-else语句 ······································67 4.5.1 用多种格式编写 ·······························67 4.5.2 应用实例 ···········································68 4.6 条件运算符?: ··········································69 4.7 多项选择——switch语句 ······················69 4.7.1 典型switch语句格式 ·······················69 4.7.2 应用实例 ···········································71 4.7.3 JDK14新增的switch-case语句及其应用 ········72 4.8 你的程序需要继续运行吗——循环语句 ················72 4.8.1 走进while循环 ································72 4.8.2 走进do-while循环 ···························75 4.8.3 走进for循环·····································77 4.8.4 走进嵌套循环 ···································79 4.9 更多控制语句 ··········································81 4.9.1 break语句 ·········································81 4.9.2 continue语句 ····································82 实战项目:投资回报应用开发(1) ···············83 巩固提高练习和实战项目大练兵 ···················86 第5章 数据控制和质量保证初探 ···········89 5.1 垃圾进、垃圾出——誓将错误消灭在开始 ··········89 5.2 Java的异常处理 ······································90 5.2.1 系统自动抛出的异常 ·······················90 5.2.2 初识try-catch ····································90 5.2.3 API标准异常类 ································92 5.2.4 怎样处理系统自动抛出的异常 ·······92 5.2.5 为什么需要抛出和处理异常 ···········93 5.2.6 异常处理应用实例 ···························95 5.3 格式化输出控制 ······································98 5.3.1 货币输出格式化 ·······························98 5.3.2 国际货币输出格式化 ·······················99 5.3.3 百分比输出格式化 ·························100 5.3.4 其他数值输出格式化 ·····················101 5.3.5 利用DecimalFormat控制数值输出格式化 ·······102 5.4 数据类型转换 ········································102 5.4.1 自动类型转换 ·································103 5.4.2 强制性类型转换cast ······················103 5.5 怎样利用Math类 ·································104 5.6 处理超值数字——BigDecimal类 ·······105 5.6.1 BigDecimal的数学运算 ·················106 5.6.2 BigDecimal的格式化输出 ·············107 实战项目:投资回报应用开发(2) ·············108 巩固提高练习和实战项目大练兵 ·················110 第二部分 告别菜鸟 第6章 走进类和对象 ·························114 6.1 面向对象编程——原来如此 ················114 6.1.1 类和对象剖析——源于生活,高于生活 ·········115 6.1.2 封装性 ·············································115 6.1.3 继承性 ·············································116 6.1.4 多态性 ·············································117 6.1.5 抽象性 ·············································117 6.2 类为什么是编程模块 ····························117 6.2.1 类就是软件工厂产品蓝图 ·············117 6.2.2 如何描述对象——确定其属性并赋值 ···········118 6.2.3 构造方法制造对象 ·························119 6.2.4 更灵活地制造对象——构造方法重载 ··············121 6.3 走进方法 ················································122 6.3.1 方法就是对象的具体操作 ·············122 6.3.2 什么是传递值的参数和传递引用的参数 ············123 6.3.3 方法重载 ·········································125 6.3.4 this是什么意思 ······························126 6.4 走进静态数据 ········································129 6.4.1 属于全体对象的数据就是静态数据 ··················129 6.4.2 静态数据是怎样工作的 ·················130 6.4.3 应用静态数据原则 ·························130 6.5 走进静态方法 ········································131 6.5.1 有静态数据就有静态方法——此话有理 ···········131 6.5.2 静态方法怎样工作——不同于一般方法 ················132 6.5.3 为什么要用静态初始化程序块 ·····133 6.6 我们喜欢再谈对象 ································134 6.6.1 对象创建与对象引用 ·····················134 6.6.2 为什么对象名重用 ·························135 6.6.3 方法链式调用就这么简单 ·············136 实战项目:投资回报应用开发(3) ·············136 巩固提高练习和实战项目大练兵 ·················138 第7章 继承 ·····································140 7.1 继承就是吃现成饭 ································140 7.1.1 怎样实现继承——归类分析 ·········141 7.1.2 怎样确定继承是否合理—— “是”和“有”关系 ············142 7.1.3 怎样体现代码重用 ·························142 7.1.4 继承就是站在巨人肩膀上 ·············143 7.1.5 继承好处多多,你都想到了吗 ······143 7.1.6 继承的局限性 ·································143 7.1.7 三种基本继承类型 ·························143 7.2 实现继承 ················································145 7.2.1 怎样写父类 ·····································145 7.2.2 怎样写子类 ·····································146 7.2.3 Like father like son——像爸爸就是儿子 ··············147 7.3 你想让子类怎样继承——访问修饰符再探 ··················148 7.4 更多继承应用 ········································149 7.4.1 继承中如何应用重载 ·····················149 7.4.2 一个实例教会你什么是覆盖 ·········150 7.4.3 一个实例教会你什么是屏蔽 ·········151 7.4.4 细谈万类鼻祖Object和类中类——Class ·············152 7.5 抽象类 ····················································156 7.5.1 抽象类不能创建对象 ·····················156 7.5.2 抽象方法造就了抽象类 ·················156 7.6 *终类 ····················································158 7.6.1 *终类不能被继承 ·························158 7.6.2 一个例子搞懂*终类 ·····················159 7.6.3 *终方法不能被覆盖 ·····················159 7.6.4 *终参数的值不能改变 ·················159 7.6.5 所有这一切皆为提高执行速度 ·····159 实战项目:几何体面积和体积计算应用开发(1) ···········160 巩固提高练习和实战项目大练兵 ·················163 第8章 多态 ·····································165 8.1 我们每天都在用多态 ····························165 8.1.1 多态问题你注意到了吗 ·················165 8.1.2 让我们一起走进多态 ·····················166 8.2 实现多态 ················································168 8.2.1 父类提供多态方法和接口 ·············168 8.2.2 子类覆盖多态方法或完善接口 ······169 8.2.3 一个例子让你明白应用多态 ·········170 8.3 为什么剖析方法绑定 ····························171 8.3.1 静态绑定 ·········································171 8.3.2 动态绑定 ·········································171 8.3.3 绑定时如何处理方法调用 ·············171 8.4 高手特餐——invokespecial和invokevirtual ············172 实战项目:几何体面积和体积计算应用开发(2) ··············173 巩固提高练习和实战项目大练兵 ·················175 第9章 接口 ·····································177 9.1 接口就是没有完成的类 ························177 9.1.1 接口只规定命名——如何完善由你 ················177 9.1.2 接口体现*高形式的抽象 ·············178 9.1.3 怎样编写接口 ·································179 9.1.4 用接口还是用抽象类 ·····················180 9.1.5 常用API接口 ·································181 9.2 实现接口 ················································181 9.2.1 实现接口就是完善接口中的方法 ···············181 9.2.2 利用接口可以实现多重继承 ·········183 9.2.3 接口本身也可以继承 ·····················186 9.2.4 接口也可以作为参数 ·····················187 9.3 应用接口的典型实例——Cloneable接口 ·············188 9.3.1 实现Cloneable接口 ·······················188 9.3.2 引用还是复制——看看这个例子就懂了 ··············189 9.3.3 复制还分深浅——怎么回事 ·········189 9.3.4 应用实例——利用*高超类实现Cloneable接口 ············192 巩固提高练习和实战项目大练兵 ·················193 第三部分 Java提高 第10章 细谈数组 ·····························196 10.1 为啥数组就是类 ··································196 10.1.1 理解数组是怎样工作的 ···············196 10.1.2 创建数组就是创建数组对象 ·······197 10.1.3 揭开数组的内幕 ···························198 10.2 数组的操作 ··········································201 10.2.1 访问数组成员 ·······························201 10.2.2 数组和循环总是闺蜜 ···················203 10.2.3 访问数组成员的特殊循环 ···········203 10.2.4 用更多实例掌握数组的应用 ·······204 10.3 高手要掌握的更多数组技术 ··············205 10.3.1 多维数组 ·······································206 10.3.2 非规则多维数组 ···························208 10.3.3 怎样把数组传到方法 ···················208 10.3.4 怎样在方法中返回数组 ···············210 10.4 API的Arrays类可以做些什么 ··········211 10.4.1 常用方法 ·······································211 10.4.2 排序和搜索 ···································212 10.4.3 数组复制——避免菜鸟常犯的错误 ·················213 10.4.4 高手必须掌握的另一个API接口——Comparable ············215 实战项目:在多级继承中应用数组进行排序 ·····················216 巩固提高练习和实战项目大练兵 ·················218 第11章 为何要再谈字符串 ·················220 11.1 为何字符串也是类 ······························220 11.1.1 什么是字符串引用 ·······················220 11.1.2 什么是字符串创建 ·······················221 11.1.3 字符串构造方法 ···························221 11.1.4 高手必须掌握的字符串方法 ·······222 11.2 API StringBuilder类 ····························225 11.2.1 字符串内容可变还是不可变 ·······225 11.2.2 StringBuilder的构造方法 ·············225 11.2.3 高手必须掌握的其他常用方法 ···············226 11.2.4 用实例学会StringBuilder应该很容易 ·················227 11.2.5 StringBuilder的大哥——StringBuffer类··················229 11.3 API StringTokenizer类——分解字符串·················229 11.3.1 token就是分解字符串的符号 ·····229 11.3.2 构造方法和其他常用方法 ···········230 11.3.3 用实例学会StringTokenizer ·········231 11.4 正则表达式 ··········································231 11.4.1 高手必须知道的正则表达式 ·······231 11.4.2 正则表达式规则 ···························232 11.4.3 不再是秘密——String中处理正则表达式的方法 ·············234 11.4.4 揭开Pattern和Matcher类的面纱 ·····················234 11.4.5 验证身份不是难事——实例说明一切 ·······························236 实战项目:计算器模拟应用开发(1) ·········237 巩固提高练习和实战项目大练兵 ·················239 第12章 揭秘异常处理 ·······················241 12.1 高手必须懂的API异常处理类 ·········241 12.2 非检查性异常 ······································242 12.2.1 出错**现场在哪里 ···················242 12.2.2 高手为什么要处理非检查性异常 ·····················242 12.3 检查性异常 ··········································243 12.3.1 同样要分析出错**现场 ···········243 12.3.2 处理常见检查性异常——必须 ························243 12.4 高手掌握异常处理机制 ······················243 12.4.1 传统机制 ·······································244 12.4.2 高手为何要知道异常是怎样在程序中传播的 ·················246 12.4.3 怎样获取更多异常信息 ···············247 12.4.4 用实例解释*直观易懂 ···············248 12.5 高手应用throw直接抛出异常 ··········250 12.5.1 JVM怎样自动抛出异常 ··············251 12.5.2 你也可以直接抛出异常 ···············251 12.5.3 你还可以重抛异常 ·······················252 12.6 嵌套异常处理 ······································253 12.6.1 什么是异常机制嵌套方式 ···········253 12.6.2 嵌套异常是怎样传播的 ···············254 12.6.3 为什么讨论嵌套异常重抛 ···········255 12.7 高手自己定义异常类 ··························256 12.7.1 编写自定义异常类原来如此简单 ··························256 12.7.2 高手掌握的自定义异常处理技巧 ···························257 12.7.3 用实例解释*直接易懂 ···············258 12.8 异常链是什么 ······································259 12.8.1 异常处理信息不见了——什么情况 ························259 12.8.2 应用异常链保证不会丢失处理信息 ·······················259 12.9 断言——高手可以断言可能发生的错误——assert ···················261 12.9.1 如何编写断言 ·······························261 12.9.2 开启和关闭断言 ···························262 实战项目:利用异常处理机制开发你的数据验证类 ··················263 巩固提高练习和实战项目大练兵 ·················265 第13章 高手掌握更多OOP技术 ·········266 13.1 创建自己的API包 ·····························266 13.1.1 包有哪些命名规范 ·······················267 13.1.2 创建包文件 ···································267 13.1.3 引入包文件 ···································268 13.2 用Eclipse的包管理项目中的文件 ······269 13.3 在Eclipse中创建文件库 ····················270 13.3.1 什么是JAR文件 ··························270 13.3.2 创建文件库 ···································270 13.4 揭秘访问权 ··········································271 13.5 类的更多应用——你知多少 ··············273 13.5.1 类之间的关系——父子、部下还是亲戚 ·····················273 13.5.2 什么是文件类 ·······························274 13.5.3 内部类怎样用 ·······························274 13.5.4 为什么用静态内部类 ···················276 13.5.5 本地类是什么 ·······························278 13.5.6 没有名字的类——匿名类 ···········279 13.5.7 这么多类——高手攻略 ···············279 13.6 枚举类是什么 ······································280 13.6.1 怎样定义和使用枚举 ···················280 13.6.2 静态引入——编写枚举类更方便 ························282 13.6.3 高手必须知道的枚举 ···················283 13.6.4 一个实例教会你应用枚举 ···········285 13.7 高手须知可变参数 ······························286 13.7.1 可变参数是重载的极致应用 ·······286 13.7.2 揭秘可变参数——它怎样工作 ···287 13.7.3 可变参数方法可以重载 ···············288 13.8 什么是javadoc和怎样用它 ···············288 实战项目:创建可被任何程序调用的文件库(JDK9和以后版本) ·················290 巩固提高练习和实战项目大练兵 ·················292 第14章 高手须知集合类 ····················293 14.1 用集合类做些什么 ······························293 14.1.1 集合类与数组的比较 ···················294 14.1.2 集合类都有哪些 ···························294 14.1.3 什么是Java的泛类型 ··················296 14.1.4 高手怎样应用泛类型 ···················301 14.1.5 值得注意的类型安全问题 ···········303 14.2 揭秘集合类 ··········································304 14.2.1 可改变大小的数组 ·······················304 14.2.2 链接表 ···········································306 14.2.3 哈希集合 ·······································307 14.2.4 元素迭代器 ···································308 14.2.5 用实例教会你集合类应用 ···········309 14.3 Map的集合类 ·····································311 14.3.1 怎样使用HashMap ·······················311 14.3.2 怎样使用TreeMap ························312 14.3.3 怎样对自定义类型TreeMap排序 ·····················314 14.4 集合类和数据结构 ······························315 14.4.1 堆栈 ···············································315 14.4.2 队列 ···············································315 14.4.3 细说集合中的排序 ·······················316 14.4.4 搜索——我要找到你 ···················318 14.4.5 洗牌——想玩斗地主 ···················319 14.4.6 集合类应用总结 ···························320 14.4.7 高手理解集合类的同步与不同步 ······················321 实战项目:利用HashMap开发产品管理应用 ························321 巩固提高练习和实战项目大练兵 ·················323 第15章 多线程 ································325 15.1 Java的本质是多线程 ··························325 15.1.1 揭秘多线程怎样工作 ···················325 15.1.2 多任务和多处理是一回事吗 ·······326 15.1.3 多线程应用范围太广泛了 ···········326 15.1.4 一张图搞懂线程的5种状态 ·······327 15.1.5 你的**个多线程程序 ···············327 15.2 如何创建多线程 ··································329 15.2.1 可以继承Thread创建线程 ··········329 15.2.2 可以完善Runnable接口来创建线程 ·························330 15.2.3 多线程典型案例:生产-消费线程初探·······················331 15.3 多线程控制 ··········································333 15.3.1 设置优先级——setPriority方法 ·························333 15.3.2 给其他线程让步——yield方法 ···············································334 15.3.3 让我的线程休息——sleep方法 ···············································334 15.3.4 让我的线程加入执行——join方法 ·········································336 15.3.5 打断我的线程运行——interrupt方法 ···································336 15.3.6 应用实例——线程和数组哪个运行的快 ······························337 15.4 高手必知多线程协调 ··························339 15.4.1 什么是多线程协调 ·······················339 15.4.2 高手怎样实现多线程协调 ···········340 15.4.3 什么是易变数据——volatile ·······340 15.4.4 你的多线程协调吗——synchronized ··································340 15.4.5 要协调必须等待——wait方法 ·······342 15.4.6 你的线程协调得到通知了吗——notify或notifyAll ·························343 15.5 高手须知更多多线程 ··························344 15.5.1 一张图看懂监视器和线程锁定 ·······344 15.5.2 更多多线程实战术语和编程技巧 ····························345 15.5.3 并行类包——java.util. concurrent ······················346 实战项目:利用多线程和并行处理开发生产-消费应用 ···············349 巩固提高练习和实战项目大练兵 ·················352 第四部分 GUI和多媒体编程 第16章 GUI——使你的窗口出彩 ········356 16.1 从一个典型例子看懂GUI组件 ·········356 16.1.1 Swing包中的组件从哪里来 ········357 16.1.2 一张图看懂组件的继承关系 ·······357 16.1.3 组件操作功能从Component继承而来 ····················358 16.2 创建框架就是实例窗口 ······················358 16.2.1 怎样显示创建的窗口 ···················358 16.2.2 怎样关闭显示的窗口 ···················359 16.2.3 窗口位置和大小控制 ···················360 16.2.4 在屏幕中央显示窗口实例 ···········361 16.3 用控制面板管理组件——JPanel ·······362 16.3.1 一个例子搞懂控制面板怎样管理组件 ························362 16.3.2 手把手教会你组件编程步骤 ·······362 16.3.3 揭秘控制面板结构内幕 ···············363 16.4 怎样创建按钮——JButton ·················364 16.4.1 创建按钮举例 ·······························364 16.4.2 把组件显示到默认位置——FlowLayout ····································366 16.4.3 按下按钮要做什么——按钮事件处理 ······································367 16.5 标签和文本字段是闺蜜 ······················368 16.5.1 怎样编写标签——JLabel·············368 16.5.2 怎样编写文本字段—— JTextField ······································369 16.5.3 怎样处理文本字段事件 ···············370 16.5.4 我想让用户输入密码——JPasswordField ··························372 16.5.5 应用实例——学会这些组件编程 ·········································372 16.6 文本窗口的创建和应用——JTextArea ····································374 16.6.1 文本窗口的创建和方法调用 ·······374 16.6.2 在文本窗口中设置滚动面板——JScrollPane ····················375 16.6.3 应用编程实例 ·······························375 16.7 选项框——JCheckBox ·······················376 16.7.1 选项框事件处理 ···························377 16.7.2 应用编程实例 ·······························378 16.8 单选按钮——JRadioButton ················380 16.8.1 单选按钮事件处理 ·······················381 16.8.2 应用编程实例 ·······························381 巩固提高练习和实战项目大练兵 ·················384 第17章 GUI组件布局——安排组件位置和显示风格 ··················385 17.1 Java的6种布局管理类 ······················385 17.2 系统预设的流程布局——FlowLayout ·········································386 17.2.1 3种显示位置 ································386 17.2.2 编程实例 ·······································386 17.3 围界布局管理类——BorderLayout ·······387 17.3.1 5种布局区域 ································388 17.3.2 高手常用布局嵌套 ·······················389 17.3.3 如何动态显示按钮的位置 ···········389 17.4 给组件加上5种不同风格的边框 ······390 17.4.1 边框BorderFactory设计编程步骤 ···············································391 17.4.2 编程实例 ·······································392 17.5 标记板——JTabbedPane ·····················393 17.5.1 如何应用标记板 ···························393 17.5.2 编程实例 ·······································394 17.6 箱式布局BoxLayout和网格布局GridLayout ·································396 17.6.1 如何应用箱式布局管理 ···············396 17.6.2 如何应用网格布局管理 ···············397 17.6.3 嵌套使用才更灵活 ·······················398 实战项目:计算器模拟应用开发(2) ·········399 17.7 高手要掌握的*强布局管理GridBagLayout ·····································400 17.7.1 必须使用设计图——方法和步骤 ···············································401 17.7.2 编程实例 ·······································402 17.8 用户接口管理——UIManager可以做啥 ·························404 17.8.1 常用用户接口管理UIManager ····································405 17.8.2 编程实例 ·······································405 实战项目:开发西方快餐销售调查应用(1) ·························406 巩固提高练习和实战项目大练兵 ·················407 第18章 更多组件和事件处理 ··············409 18.1 下拉列表——JComboBox ··················409 18.1.1 编程实例 ·······································410 18.1.2 事件处理 ·······································411 18.1.3 ItemListener事件处理接口 ··········411 18.1.4 我怎么用它——编程实例 ···········413 18.2 列表——JList ······································416 18.2.1 编程实例 ·······································417 18.2.2 ListSelectionListener事件处理接口 ································418 18.2.3 列表的更多编程技巧 ···················419 实战项目:利用列表开发名词学习记忆应用 ···································421 18.3 菜单——JMenu ···································422 18.3.1 菜单编写步骤 ·······························422 18.3.2 编程举例 ·······································423 18.3.3 如何加入子菜单 ···························423 18.3.4 菜单的事件处理 ···························424 18.3.5 设置键盘助记——高手才会这样做 ······················424 18.3.6 高手设置快捷键 ···························425 18.3.7 MenuListener处理菜单事件接口 ································426 实战项目:开发西方快餐销售调查应用(2) ······················428 18.4 高手须知弹出式菜单 ··························431 18.4.1 一步步教会你编写步骤 ···············431 18.4.2 编程实例 ·······································431 18.4.3 PopupMenuListener事件处理接口 ··························433 18.4.4 鼠标右键激活弹出式菜单 ···········433 实战项目:开发西方快餐销售调查应用(3) ··························434 18.5 高手应掌握更多GUI组件 ·················435 18.5.1 如何应用滑块——JSlider ············436 18.5.2 如何应用进度条——JProgressBar ··································438 18.5.3 如何应用文件选择器——JFileChooser ··································439 18.5.4 如何应用颜色选择器——JColorChooser ·······························441 18.5.5 如何应用制表——JTable ·············442 18.5.6 如何应用树——JTree ··················443 18.5.7 如何应用桌面板——JDesktopPane·································446 巩固提高练习和实战项目大练兵 ·················447 第19章 揭秘事件处理那些事儿 ···········449 19.1 高手须知事件处理内幕 ······················449 19.1.1 事件处理是怎样工作的 ···············449 19.1.2 常用事件处理接口 ·······················451 19.1.3 为何要用适配器 ···························452 19.1.4 适配器应用实例 ···························453 19.2 高手必知鼠标事件处理 ······················454 19.2.1 都有哪些鼠标事件 ·······················454 19.2.2 鼠标事件处理接口和适配器 ·······454 19.2.3 鼠标事件处理演示程序 ···············454 19.3 高手须知键盘事件处理 ······················455 19.3.1 键盘事件处理接口和适配器 ·······456 19.3.2 键盘事件处理常用方法 ···············456 19.4 高手掌握的GUI组件编程技巧 ·········457 19.4.1 组件编程的6种方式 ···················457 19.4.2 事件处理的6种方式 ···················461 实战项目:计算器模拟应用开发(3) ·········463 巩固提高练习和实战项目大练兵 ·················465 第20章 多媒体编程——高手须知的那些事儿 ·············467 20.1 字体编程 ··············································467 20.1.1 字体编程常用术语 ·······················467 20.1.2 字体编程常用方法和举例 ···········468 20.1.3 应用实例学会字体编程 ···············469 20.2 颜色编程 ··············································470 20.2.1 颜色编程常用术语 ·······················471 20.2.2 颜色编程常用方法和举例 ···········471 20.2.3 应用实例学会颜色编程 ···············472 20.3 JavaFX图形编程 ·································473 20.3.1 JavaFX编程步骤 ··························473 20.3.2 图形编程常用方法 ·······················474 20.3.3 图形编程步骤 ·······························474 20.3.4 应用实例学会图形编程 ···············475 20.4 JavaFX图像编程 ·································476 20.4.1 Java支持的4种图像格式 ···········476 20.4.2 图像编程常用方法 ·······················476 20.4.3 图像编程步骤 ·······························477 20.4.4 应用实例学会图像编程 ···············477 20.5 JavaFX音频编程 ·································478 20.5.1 Java支持的3种音频格式 ···········478 20.5.2 音频编程常用方法 ·······················478 20.5.3 音频编程步骤 ·······························479 20.5.4 播放音乐编程实例 ·······················479 实战项目:利用多媒体开发英文字母学习游戏应用 ·················480 巩固提高练习和实战项目大练兵 ·················483 第五部分 高手进阶——数据流处理和编程 第21章 文件I/O ······························486 21.1 数据流和文件 ······································486 21.1.1 文件I/O基本知识须知 ················487 21.1.2 揭秘文件路径 ·······························487 21.1.3 用实例看懂绝对路径和规范路径 ···················488 21.1.4 高手理解URI、URL和URN ······488 21.1.5 文件类常用方法 ···························488 21.1.6 文件I/O中为什么要缓冲 ············492 21.1.7 文件I/O必须处理异常 ················492 21.2 文本文件I/O ·······································492 21.2.1 文本文件输出 ·······························493 21.2.2 缓冲和无缓冲的文本输出 ···········493 21.2.3 文本文件输入 ·······························495 21.2.4 文本文件输入实例 ·······················496 实战项目:开发产品销售文本文件管理应用 ··················498 21.3 二进制文件I/O ···································502 21.3.1 二进制文件的输出 ·······················502 21.3.2 二进制文件输出举例 ···················503 21.3.3 二进制文件的输入 ·······················504 21.3.4 二进制文件输入实例 ···················505 实战项目:开发产品销售二进制文件管理应用 ··············507 21.4 高手须知对象序列化I/O ···················510 21.4.1 你的对象序列化了吗 ···················510 21.4.2 手把手教会你对象序列化 ···········511 21.4.3 对象序列化常用类和方法 ···········511 21.4.4 对象序列化编程步骤 ···················511 实战项目:利用对象序列化开发产品销售文件管理应用 ···················512 21.5 随机文件I/O ·······································517 21.5.1 随机文件I/O常用方法和访问模式 ····················517 21.5.2 文件记录和位置计算 ···················518 21.5.3 用实例学会随机文件I/O ·············518 21.6 高手须知更多文件I/O编程技术 ······520 21.6.1 细谈JFileChooser ·························520 21.6.2 Java支持的压缩文件I/O ·············521 21.6.3 一步步教会你压缩文件I/O ·········521 21.6.4 用Scanner读入文件 ····················527 实战项目:开发产品销售随机文件管理应用 ············528 巩固提高练习和实战项目大练兵 ·················534 第22章 数据库编程 ··························536 22.1 揭秘JDBC ···········································536 22.2 数据库基本知识 ··································537 22.3 数据库语言——SQL ··························538 22.3.1 SQL的6种基本指令 ···················538 22.3.2 SQL的基本数据类型 ···················538 22.3.3 创建指令——CREATE ················539 22.3.4 选择指令——SELECT ·················539 22.3.5 更新指令——UPDATE ················540 22.3.6 插入指令——INSERT ·················540 22.3.7 删除记录指令——DELETE ········540 22.3.8 删除数据表指令——DROP ·········541 22.4 数据库和JDBC驱动软件的安装及测试 ·············541 22.4.1 下载数据库软件 ···························541 22.4.2 数据库安装 ···································541 22.4.3 数据库运行测试 ···························542 22.4.4 下载JDBC驱动软件 ···················543 22.4.5 一步步教会你在Eclipse中连接数据库 ··········544 22.4.6 一个实例搞懂JDBC是否连接成功 ············545 22.4.7 编写**个数据库程序 ···············545 22.5 Java程序和数据库对话 ······················547 22.5.1 连接数据库——高手都会这样做 ················547 22.5.2 向数据库发送SQL指令 ··············548 22.5.3 接收从数据库传回的记录 ···········549 22.5.4 提取和更新传回的记录 ···············550 22.5.5 预备指令是怎么回事 ···················551 实战项目:利用数据库和GUI开发产品销售管理应用(1) ··············553 22.6 高手了解更多JDBC编程 ··················558 22.6.1 细谈元数据是啥和怎样用 ···········558 22.6.2 什么是事务处理和怎样实现 ·······559 22.6.3 三个步骤两个实例搞懂事务处理编程 ·····················559 实战项目:利用数据库和GUI开发产品销售管理应用(2) ················560 巩固提高练习和实战项目大练兵 ·················564 第23章 网络编程 ·····························565 23.1 为什么高手必知网络编程 ··················565 23.1.1 必须遵循通信协议 ·······················565 23.1.2 URL和IP地址是一回事吗 ·········566 23.1.3 URL和URI ··································566 23.1.4 端口和通信号 ·······························567 23.1.5 一张表看懂端口分配 ···················567 23.1.6 揭秘HTTP ····································568 23.1.7 URL和URLConnection编程实例 ························569 23.2 一步步教会你网络编程 ······················570 23.2.1 细谈Socket ···································570 23.2.2 Stream Sockets和Datagram Sockets ·····················571 23.2.3 用户-服务器编程步骤 ················571 23.2.4 一个代码实例教会你用户-服务器编程 ·························571 23.2.5 单用户-服务器程序测试运行步骤 ··························574 23.2.6 手把手教你DatagramSocket用户-服务器编程 ············574 23.3 炼成网络编程高手从这里起步 ··········578 23.3.1 手把手教你Socket多用户-服务器编程 ·············578 23.3.2 多用户-服务器程序测试运行步骤 ·······················580 23.3.3 手把手教你Datagram多用户-服务器编程 ·························581 23.3.4 多用户-服务器数据库编程 ········583 实战项目:开发多用户-服务器产品销售数据库管理应用 ··············584 23.4 高手必会的高级网络编程 ··················590 23.4.1 面向连接传输与面向传输连接 ···························590 23.4.2 怎样设置Socket超时控制 ··········591 23.4.3 揭秘Socket中断技术 ··················592 23.4.4 揭秘Socket半关闭技术 ··············593 23.4.5 揭秘java.nio ·································593 23.4.6 数据流和数据块——网络编程用哪个 ····················594 23.4.7 数据块编程需要通道技术——Channel ··························594 23.4.8 一步步教会你通道技术网络编程 ························594 23.4.9 应用缓冲的通道编程技术 ···········595 23.4.10 数据块中字符集的定义、编码和译码 ····················596 23.4.11 应用选择器Selector实现多用户-服务器编程 ··················597 23.4.12 一步步教会你选择器多用户-服务器编程 ··················597 23.4.13 通道和选择器编程实例 ·············598 实战项目:开发多用户-服务器聊天室应用 ························602 巩固提高练习和实战项目大练兵 ·················606
展开全部

作者简介

高永强,博士,现任美国加利福尼亚州奥龙尼学院计算机系终身教授,并受聘为国内外多所大学的客座教授。从事国内外计算机教学以及软件开发和咨询20多年,专长于计算机语言、计算机管理信息系统,以及计算机应用和培训。出版著作《微型计算机应用用户指南》《全C编程》和《Java编程艺术》。 卢晨,苏州大学计算机科学与技术学院研究生毕业,苏州工业园区服务外包职业学院副教授。拥有十余年一线软件开发教学经验,教授Java程序设计、Android开发等课程,主持和参与多个移动应用系统、网站系统开发项目,主编和参编《Java实践教程》《Android高级应用开发案例教程》等。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航