侃侃Thinking In Java

版权声明:本文为博主原创文章。未经博主同意不得转载。 https://blog.csdn.net/yqj2065/article/details/37074503

对于大学生,yqj2065不推荐Thinking In Java 。

我在课上说过它。因此我的学生应该不会去看这本书。


我是从Bruce Eckel的站点開始,读Thinking In Java(TIJ) 1st edition的,那是2000年左右。实话实说,对于TIJ,我又喜欢又讨厌它。

又喜欢又讨厌

正如大多数同学所感觉的。TIJ偏重于介绍面向对象的“思想”,而不是像绝大多数(国内的)《Xxx程序设计》之类的书籍,前者是思想流派,后者是语法流。

这点非常吸引我,并且,这也是我写《编程导论(Java)》时学习的地方。

但。我并没有完整地读完TIJ,由于

  • 我不喜欢他的讲述方式。Bruce Eckel依照上课的方式安排内容,“在我思考书中的一章时,实际上是在想怎样教好一堂课。

    我的目标是得到一系列规模适中的教学模块,能够在合理的时间内教完。”。而我个人的阅读习惯是,以内容的适当集中来看待一个章节。

    当然。这仅仅是不关紧要的对TIJ的第一印象。我会以内容为主线,跳着阅读一些章节——因而我也就没有完整地读完它。

  • 我发现他所宣扬的面向对象“思想”,并不能够让我信服。

    注意。并不是Bruce Eckel讲的东西有多大的错误。而是他的“思想”并不完整和系统。

    所以,在非常早(2005)的一篇博客中。我说:“事实上,你把Timothy A.Budd..面向对象程序设计(第3版)再加上垃圾堆中顺便一本Java书。捣鼓捣鼓,就能够达到《Thinking in Java》的程度。

    ”那时。我不看TIJ已经非常久了。

  • TIJ中有很多我觉得不对或严谨的地方。
  • 太厚了。书,我没有买的欲望,也不想借一本回家看。

再读一遍?

TIJ受到非常多人的推崇,我实在不知道什么原因。也许国内的教材都是讲语法,使得人们遇到一本“思想流派”的书,就觉得好?

我打算比較一下《编程导论(Java)》。才决定再看看(并下载)Java编程思想《Thinking In Java》中文版 (第4版).pdf

我的笔记将列举在以下。(先将文件夹拷贝过来。非常多与《编程导论(Java)》无交集的章节——如API编程部分,可能不会细致读)

7月5号20:36发表本文,到如今7.7:0:30,写了6章的笔记,累了。

眼下评价:原文 ★★☆☆☆  翻译☆☆☆☆

  • 读TIJ -1 对象入门
  • 读TIJ -2 一切都是对象
  • 读TIJ -3 控制程序流程
  • 读TIJ -4 初始化和清除
  • 读TIJ -5 隐藏实施过程
  • 读TIJ -6 类再生
  • 读TIJ -7 多形性

  • 第 8 章对象的容纳 .................209
    8.1 数组...................209
    8.1.1 数组和第一类对象............ 209
    8.1.2 数组的返回............. 212
    8.2 集合...................213
    8.2.1 缺点:类型未知................. 213
    8.3 枚举器(重复器) ..................217
    8.4 集合的类型...................220
    8.4.1 Vector...................... 220
    8.4.2 BitSet....................... 221
    8.4.3 Stack ........................ 222
    8.4.4 Hashtable.................223
    8.4.5 再论枚举器............. 228
    21
    8.5 排序...................229
    8.6 通用集合库...................232
    8.7 新集合...............233
    8.7.1 使用Collections................. 235
    8.7.2 使用Lists................ 238
    8.7.3 使用Sets ................. 242
    8.7.4 使用Maps............... 244
    8.7.5 决定实施方案..................... 247
    8.7.6 未支持的操作..................... 253
    8.7.7 排序和搜索............. 255
    8.7.8 有用工具................. 259
    8.8 总结...................261
    8.9 练习...................262
    第 9 章违例差错控制 ............263
    9.1 基本违例.......................263
    9.1.1 违例自变量............. 264
    9.2 违例的捕获...................264
    9.2.1 try 块........................ 264
    9.2.2 违例控制器............. 265
    9.2.3 违例规范................. 265
    9.2.4 捕获全部违例..................... 266
    9.2.5 又一次“掷”出违例............ 267
    9.3 标准 Java 违例............. 270
    9.3.1 RuntimeException 的特殊情况................. 270
    9.4 创建自己的违例.......................271
    9.5 违例的限制...................274
    9.6 用finally 清除..............276
    9.6.1 用finally 做什么................ 277
    9.6.2 缺点:丢失的违例............ 279
    9.7 构建器...............280
    9.8 违例匹配.......................283
    9.8.1 违例准则................. 284
    9.9 总结...................284
    9.10 练习.................284
    第 10 章JAVA IO 系统.......................285
    10.1 输入和输出.................285
    10.1.1 InputStream的类型...................... 285
    10.1.2 OutputStream的类型................... 286
    10.2 增添属性和有用的接口....................286
    10.2.1 通过FilterInputStream 从InputStream里读入数据.................. 287
    10.2.2 通过FilterOutputStream 向OutputStream 里写入数据............ 287
    10.3 本身的缺陷:RandomAccessFile.................288
    10.4 File 类.............288
    10.4.1 文件夹列表器....................... 288
    10.4.2 检查与创建文件夹...............292
    10.5 IO 流的典型应用....................294
    10.5.1 输入流................... 296
    10.5.2 输出流................... 298
    10.5.3 快捷文件处理................... 298
    10.5.4 从标准输入中读取数据............... 300
    10.5.5 管道数据流....................... 300
    10.6 StreamTokenizer......................300
    22
    10.6.1 StringTokenizer ................ 303
    10.7 Java 1.1 的IO 流....................305
    10.7.1 数据的发起与接收.......... 305
    10.7.2 改动数据流的行为.......... 306
    10.7.3 未改变的类....................... 306
    10.7.4 一个样例............... 307
    10.7.5 重导向标准IO.................. 310
    10.8 压缩.................311
    10.8.1 用GZIP 进行简单压缩................ 311
    10.8.2 用Zip 进行多文件保存............... 312
    10.8.3 Java 归档(jar)有用程序.......... 314
    10.9 对象序列化.................315
    10.9.1 寻找类................... 318
    10.9.2 序列化的控制................... 319
    10.9.3 利用“持久性”...............326
    10.10 总结...............332
    10.11 练习...............332
    第 11 章执行期类型鉴定...................333
    11.1 对RTTI 的须要.......................333
    11.1.1 Class 对象............. 334
    11.1.2 造型前的检查................... 337
    11.2 RTTI 语法....................342
    11.3 反射:执行期类信息............343
    11.3.1 一个类方法提取器.......... 344
    11.4 总结.................347
    11.5 练习.................348
    第 12 章传递和返回对象...................349
    12.1 传递句柄.....................349
    12.1.1 别名问题............... 349
    12.2 制作本地副本............351
    12.2.1 按值传递............... 351
    12.2.2 克隆对象............... 352
    12.2.3 使类具有克隆能力.......... 353
    12.2.4 成功的克隆....................... 353
    12.2.5 Object.clone()的效果................... 355
    12.2.6 克隆合成对象................... 356
    12.2.7 用Vector 进行深层复制.............. 358
    12.2.8 通过序列化进行深层复制.......... 359
    12.2.9 使克隆具有更大的深度............... 361
    12.2.10 为什么有这个奇怪的设计..................... 362
    12.3 克隆的控制.................363
    12.3.1 副本构建器....................... 366
    12.4 仅仅读类............369
    12.4.1 创建仅仅读类....................... 370
    12.4.2 “一成不变”的弊端................... 371
    12.4.3 不变字串............... 373
    12.4.4 String 和StringBuffer 类............. 374
    12.4.5 字串的特殊性................... 376
    12.5 总结.................376
    12.6 练习.................376
    第十三 章创建窗体和程序片 ............378
    13.1 为何要用AWT ?....................378
    23
    13.2 基本程序片.................379
    13.2.1 程序片的測试................... 380
    13.2.2 一个更图形化的样例................... 381
    13.2.3 框架方法的演示...............381
    13.3 制作button.....................382
    13.4 捕获事件.....................382
    13.5 文本字段.....................384
    13.6 文本区域.....................385
    13.7 标签.................386
    13.8 复选框............387
    13.9 单选钮............388
    13.10 下拉列表...................389
    13.11 列表框.......................390
    13.11.1 handleEvent() .................. 391
    13.12 布局的控制..............393
    13.12.1 FlowLayout..................... 393
    13.12.2 BorderLayout .................. 393
    13.12.3 GridLayout...................... 394
    13.12.4 CardLayout...................... 394
    13.12.5 GridBagLayout...............396
    13.13 action 的替代品....................396
    13.14 程序片的局限.......................400
    13.14.1 程序片的长处................. 401
    13.15 视窗化应用..............401
    13.15.1 菜单..................... 401
    13.15.2 对话框................. 404
    13.16 新型AWT .................. 408
    13.16.1 新的事件模型................. 409
    13.16.2 事件和接收者类型..................... 410
    13.16.3 用Java 1.1 AWT制作窗体和程序片............... 414
    13.16.4 再研究一下曾经的样例............ 416
    13.16.5 动态绑定事件................. 431
    13.16.6 将事务逻辑与UI 逻辑区分开.............. 433
    13.16.7 推荐编码方法................. 435
    13.17 Java 1.1 用户接口API.....................448
    13.17.1 桌面颜色............ 448
    13.17.2 打印..................... 448
    13.17.3 剪贴板................. 454
    13.18 可视编程和Beans...............456
    13.18.1 什么是Bean.................... 457
    13.18.2 用Introspector 提取BeanInfo............... 458
    13.18.3 一个更复杂的Bean ................... 463
    13.18.4 Bean 的封装.................... 465
    13.18.5 更复杂的Bean 支持................... 466
    13.18.6 Bean 很多其它的知识........... 466
    13.19 Swing 入门(凝视⑦)....................467
    13.19.1 Swing 有哪些长处...................... 467
    13.19.2 方便的转换..................... 467
    13.19.3 显示框架............ 468
    13.19.4 工具提示............ 469
    13.19.5 边框..................... 469
    13.19.6 button..................... 470
    13.19.7 button组................. 471
    24
    13.19.8 图标..................... 472
    13.19.9 菜单..................... 474
    13.19.10 弹出式菜单................... 477
    13.19.11 列表框和组合框.......... 479
    13.19.12 滑杆和进度指示条................... 479
    13.19.13 树....................... 480
    13.19.14 表格................... 482
    13.19.15 卡片式对话框.............. 483
    13.19.16 Swing 消息框...............485
    13.19.17 Swing 很多其它的知识.................... 485
    13.20 总结...............485
    13.21 练习...............486
    第 14 章多线程 .......................487
    14.1 反应灵敏的用户界面............487
    14.1.1 从线程继承....................... 489
    14.1.2 针对用户界面的多线程............... 490
    14.1.3 用主类合并线程...............493
    14.1.4 制作多个线程................... 495
    14.1.5 Daemon 线程.................... 498
    14.2 共享有限的资源.....................499
    14.2.1 资源訪问的错误方法................... 499
    14.2.2 Java 怎样共享资源.......... 503
    14.2.3 回想Java Beans ...............506
    14.3 阻塞.................510
    14.3.1 为何会阻塞....................... 510
    14.3.2 死锁....................... 518
    14.4 优先级............521
    14.4.1 线程组................... 525
    14.5 回想runnable............. 530
    14.5.1 过多的线程....................... 532
    14.6 总结.................535
    14.7 练习.................535
    第 15 章网络编程...................537
    15.1 机器的标识.................537
    15.1.1 server和客户机...............538
    15.1.2 端口:机器内独一无二的场所.............. 539
    15.2 套接字............539
    15.2.1 一个简单的server和客户机程序.......... 539
    15.3 服务多个客户............543
    15.4 数据报............547
    15.5 一个Web 应用...........551
    15.5.1 server应用....................... 552
    15.5.2 NameSender程序片..................... 556
    15.5.3 要注意的问题................... 560
    15.6 Java 与CGI 的沟通...............560
    15.6.1 CGI 数据的编码...............561
    15.6.2 程序片................... 562
    15.6.3 用C++写的CGI 程序.................. 566
    15.6.4 POST 的概念.................... 573
    15.7 用JDBC 连接数据库............576
    15.7.1 让演示样例执行起来...............578
    15.7.2 查找程序的GUI 版本号.................. 580
    25
    15.7.3 JDBC API 为何怎样复杂............ 582
    15.8 远程方法.....................582
    15.8.1 远程接口概念................... 582
    15.8.2 远程接口的实施...............583
    15.8.3 创建根与干....................... 585
    15.8.4 使用远程对象................... 585
    15.8.5 RMI 的替选方案.............. 586
    15.9 总结.................586
    15.10 练习...............586
    第 16 章设计范式...................588
    16.1.1 单子....................... 588
    16.1.2 范式分类............... 589
    16.2 观察器范式.................590
    16.3 模拟垃圾回收站.....................592
    16.4 改进设计.....................595
    16.4.1 “制作很多其它的对象” ................... 595
    16.4.2 用于原型创建的一个范式.......... 597
    16.5 抽象的应用.................604
    16.6 多重派遣.....................607
    16.6.1 实现双重派遣................... 607
    16.7 訪问器范式.................612
    16.8 RTTI 真的有害吗....................618
    16.9 总结.................620
    16.10 练习...............621
    第 17 章项 目 ..............622
    17.1 文字处理.....................622
    17.1.1 提代替码列表................... 622
    17.1.2 检查大写和小写样式...............633
    17.2 方法查找工具............639
    17.3 复杂性理论.................643
    17.4 总结.................649
    17.5 练习.................649
    附 录 A 使用非JAVA 代码...............650
    A.1 Java 固有接口............. 650
    A.1.1 调用固有方法.................... 650
    A.1.2 訪问JNI 函数:JNIEnv 自变量............... 652
    A.1.3 传递和使用Java 对象................... 653
    A.1.4 JNI 和Java 异常................ 654
    A.1.5 JNI 和线程处理................. 655
    A.1.6 使用现成代码.................... 655
    A.2 微软的解决方式......................655
    A.3 J/Direct.............655
    A.3.1 @dll.import 引导命令................... 656
    A.3.2 com.ms.win32 包...............657
    A.3.3 汇集............ 658
    A.3.4 编写回调函数....................659
    A.3.5 其它J/Direct 特性............. 659
    A.4 本原接口(RNI)....................660
    A.4.1 RNI 总结................ 661
    A.5 Java/COM 集成...........661
    A.5.1 COM 基础.............. 662
    A.5.2 MS Java/COM 集成.......... 663
    26
    A.5.3 用Java 设计COM server........... 663
    A.5.4 用Java 设计COM 客户................ 665
    A.5.5 ActiveX/Beans 集成.......... 666
    A.5.6 固有方法与程序片的注意事项................ 666
    A.6 CORBA .............666
    A.6.1 CORBA 基础..................... 666
    A.6.2 一个样例................ 667
    A.6.3 Java 程序片和CORBA................. 671
    A.6.4 比較CORBA 与RMI ................... 671
    A.7 总结...................671
    附 录B 对照C++和JAVA..................672
    附 录 C JAVA编程规则.......................677
    附 录 D 性能................679
    D.1 基本方法......................679
    D.2 寻找瓶颈......................679
    D.2.1 安插自己的測试代码.................... 679
    D.2.2 JDK 性能评測[2]...............679
    D.2.3 特殊工具................ 680
    D.2.4 性能评測的技巧................ 680
    D.3 提速方法......................680
    D.3.1 常规手段................ 680
    D.3.2 依赖语言的方法................ 680
    D.3.3 特殊情况................ 681
    D.4 參考资源......................682
    D.4.1 性能工具................ 682
    D.4.2 Web 站点............... 682
    D.4.3 文章............ 682
    D.4.4 Java 专业书籍.................... 683
    D.4.5 一般书籍................ 683
    附 录 E 关于垃圾收集的一些话.....................684
    附 录 F 推荐读物.....................686



猜你喜欢

转载自www.cnblogs.com/xfgnongmin/p/10749569.html