`

读《Java编程思想》(中文/英文)第四版 笔记

阅读更多
今天开个头,从一个学弟那里借到了Thinking in Java的中文第四版,先看着,要是他要呢,我在去看英文原版的,美啊~~~

有很多话是需要仔细并反复品味的,我想这本书中也存在大量的珍贵格言和不敢或望的知识点。记录一下,也总比原来东一点、西一点点记录要好很多。只要这个Blog不倒,相信将来都可以回顾这些学习心得。

好,下面就开始正题吧: [list=1]
  • TIJ4ed对JavaSE5/6做了相应更新,作者的宏愿是买过之前版本的读者还能买新版,第三版我也读二百多页,难懂的挺多,希望第四版能改进吧
  • 读完第九章接口了,本来在本书的第三版中接口和内部类是在一章中的,现在分开使得读者对阅读的对象更好的把握,这应当是作者的意图吧。 另,这章中涉及到了几种设计模式:适配器、工厂。尽管学过设计模式的课,不过还是一知半解,对适配器模式没有一个准确概念,只是有个感性认识,似乎是对某个类进行封装,创建新的接口。工厂模式还好一些,至少大体上明白了书中用工厂模式的目的是体现接口的优点---灵活、方便。
  • 第十章 内部类。 看到了迭代器模式的一个例子,不过不太明白哪里实现了迭代器模式。
  • 还让深奥的东西往后排吧,如果其他章和内部类关系不大就先不读了,现在暂时读到10.4。将来要看到话可以从10.5开始。
  • 第11章 持有对象 保存对象的容器,Java中分两类:Collection和Map
    • Collection:ArrayList,LinkedList,HashSet,TreeSet,LinkedHashSet
    • Map: HashMap,TreeMap,LinkedHashMap
  • 发现了练习题的答案,yeath!
  • 开始第12章了,异常处理  看到了印刷错误: 256页,12.5 异常说明中的第2段之后4行排版混乱。不过仔细读也能找到正确的顺序。(英文版456页)
  • P269 练习18的答案似乎有误啊:
  • class VeryImportantException extends Exception {
    	public String toString() {
    		return "A very important exception!";
    	}
    }
    
    class HoHumException extends Exception {
    	public String toString() {
    		return "A trivial exception";
    	}
    }
    
    class MeaninglessException extends Exception {
    	public String toString() {
    		return "A meaningless exception";
    	}
    }	
    
    public class LostMessage18 {
    	void f() throws VeryImportantException {
    		throw new VeryImportantException();
    	}
    	void dispose() throws HoHumException {
    		throw new HoHumException();
    	}
    	void eliminate() throws MeaninglessException {
    		throw new MeaninglessException();
    	}
    	public static void main(String[] args) {
    		try {
    			LostMessage18 lm = new LostMessage18();
    			try {
    				try {
    					lm.f();
    					lm.dispose();
    				} finally {
    					lm.eliminate();
    				}
    			} catch(Exception e) {
    				System.out.println(e);
    			}
    		} catch(Exception e) {
    			System.out.println(e);
    		}
    	}
    	//个人觉得上面的程序中lm.dispose()没有运行,也就没有产生HoHumException异常
    /*应当是这样做:
    try{  
       try {
         lm.f();
       } finally {
         lm.dispose();
       }
    } finally {
      lm.eliminate();
    }
    */
    }
    
  • 看完 Exception 这章了,感觉作者对Java的“被检查的异常”不乐观,小程序用起来尚可,大规模的就成为负担。 作者也提出来两种解决方法,算是完美 了一些。不过后一种方式还没太明白透。
  • 13章 String,13.6这一节讲正则表达式,值得注意到是反斜杠‘\‘在Java中的意思是不一样的,除了\n\t等都要用\\,如\\d表示一位整数,“-?\\d+”表示可能有一个负号后面跟着一位或多位数字。问号表示前面的字符可能有。

  • 使用正则表达式:String.matches(d)方法,例如("-123".matches("-?\\d+")),结果为boolean型。
  • 今天中文版的《Thinking in Java》还给学弟了,我看到302页,英文版的534页左右。
  • 今天是2008-4-24,正式启动读书计划,因为我昨天和老婆一起去买了一本。有书看了。
  • [/list]
    分享到:
    评论
    6 楼 tangjun1984 2009-06-22  
    kencool 写道
    【不懂】P340(598),“项目”的解释看了几遍,意思有些怪,又是建议,又是术语项目的。之后查了英文版:“Projects are suggestions to be used(for example) as term projects.Solutions to projects are not included in the solution guide.”似乎英文的好理解,告诉你Project的内容只是作者的建议,并且作者没有编程实现。但是还有一部分英文没理解:“to be used(for example) as term projects”有识之士教教我吧

    kencool 写道
    【不懂】P340(598),“项目”的解释看了几遍,意思有些怪,又是建议,又是术语项目的。之后查了英文版:“Projects are suggestions to be used(for example) as term projects.Solutions to projects are not included in the solution guide.”似乎英文的好理解,告诉你Project的内容只是作者的建议,并且作者没有编程实现。但是还有一部分英文没理解:“to be used(for example) as term projects”有识之士教教我吧



    个人理解是说教学用吧,不过没看过原文。
    5 楼 kencool 2008-06-10  
    Java中的动态代理机制,在14章看到了,不过没明白,感觉乱乱的
    4 楼 kencool 2008-05-19  
    【不懂】数组的协变性,具体意思还不太明白。练习26是证明数组的协变性:
    Number[] numbers = new Integer[3];
    // Number abstract, cannot instantiate:
    // numbers[0] = new Number();
    // compile OK; runtime ArrayStoreException:
    numbers[1] = new Double(3.4);
    // compile errors: incompatible types:
    // Integer[] ints = numbers;
    // for(Integer n : numbers)
    //	System.out.println(n);
    // even though runtime type is Integer:
    for(Number n : numbers)
        System.out.println(n.getClass().getSimpleName());

    练习27是展示协变性对List不起作用
    // compile error: incompatible types:
    // List<Number> lnum = new ArrayList<Integer>();
    List<? extends Number> nlist = new ArrayList<Integer>();
    // compile error: can't add Integer:
    // nlist.add(new Integer(0));
    nlist.add(null); // can add null
    Number x = nlist.get(0); // can get Number (null)
    System.out.println(nlist);
    3 楼 kencool 2008-05-08  
    【感受】泛型一章读到15.7.3,感觉泛型主要问题就在泛型的实现方式上:擦除。而且为了兼容老版本才使用擦除的(多方专家的结论)。擦除使得Java中的泛型没有C++、Ada和Eiffel等语言中的泛型好用(Java里用泛型事倍功半,不够灵活、强大)。
    2 楼 kencool 2008-05-06  
    【不懂】P340(598),“项目”的解释看了几遍,意思有些怪,又是建议,又是术语项目的。之后查了英文版:“Projects are suggestions to be used(for example) as term projects.Solutions to projects are not included in the solution guide.”似乎英文的好理解,告诉你Project的内容只是作者的建议,并且作者没有编程实现。但是还有一部分英文没理解:“to be used(for example) as term projects”有识之士教教我吧
    1 楼 kencool 2008-05-04  
    有个问题,正则表达式:(\\w+\\.)|\\s*final|\\s*native---它匹配了什么呢?其中第一部分是一个由字母开始的字符串,“或”之后的是零个或多个空格开始的“final”,匹配的结构将包含final的部分去掉了吗? 怀疑第14章练习17的答案中正则表达式不对

    相关推荐

      java编程思想(第四版)笔记

      java编程思想(第四版)笔记,自学时读的一本书。

      读书笔记:《Java编程思想第四版》练习题答案.zip

      读书笔记:《Java编程思想第四版》练习题答案

      Java编程思想第四版_读书笔记分享.pdf

      Java 编程思想第四版读书笔记分享 本文档总结了 Java 编程思想第四版的读书笔记,涵盖了面向对象程序设计、Java 存储结构、基本类型、BigInteger 和 BigDecimal 的使用、Javadoc 的使用、逻辑操作符、直接常量、...

      王者归来之Thinking in java读书笔记

      《王者归来之Thinking in Java读书笔记》是对Bruce Eckel的经典之作《Thinking in Java》第四版的深度学习与总结。这本书是Java程序员的必备参考书,它深入浅出地阐述了Java语言的核心概念和技术,旨在帮助读者理解...

      Java编程思修第4版本学习笔记(上).pdf

      从给定的文件信息来看,这是一份《Java编程思想》第四版的学习笔记,涉及到Java编程思想的多个核心概念和特性。以下是详细的知识点: 1. **Java编程的特点和优势**: - Java作为面向对象编程(OOP)的代表,其设计...

      Go 学习笔记 第四版

      《Go学习笔记第四版》是一本深度探讨Go语言的书籍,专为想要深入理解Go语言特性和实战应用的读者设计。Go语言,又称Golang,是Google在2009年发布的一种静态类型、编译型、并发型且具有垃圾回收功能的编程语言。其...

      JAVA经典教材笔记

      - Java作为一种广泛使用的编程语言,其学习路径包括掌握基本语法、理解面向对象编程思想、熟悉标准库使用等。 - **JAVA发展概述** - Java的发展历程:从1995年由Sun Microsystems公司发布以来,Java经历了多次重大...

      java私塾学习笔记整理

      ### Java私塾学习笔记整理 #### 第一章:Java入门 ...以上内容涵盖了Java基础知识的重要方面,从语言基础到高级特性,以及常见的开发技术和工具,帮助读者全面了解Java编程的基础知识和技术要点。

      java实战经典学习笔记

      ### Java实战经典学习笔记知识点概览 #### 一、Java概述及开发环境搭建 - **Java概述** - Java是一种广泛使用的高级编程语言,由Sun Microsystems于1995年发布。 - Java的设计目标是“一次编写,到处运行”,这...

      thinkinjava源码-ThinkingInJava:《Java编程思想4th》学习笔记Notesandsourcecodesaboutt

      本资源包含了这本书第四版的学习笔记和源代码,旨在帮助读者更好地理解和掌握Java编程思想。以下是对这些知识点的详细阐述: 1. **面向对象编程(OOP)**:Java是一种纯面向对象的语言,它强调类、对象、封装、继承...

      张龙 java se课程笔记

      【Java SE课程笔记详解】 Java SE(Standard Edition)是Java平台的核心版本,它为开发桌面应用、服务器端...通过深入学习和实践,你可以扎实掌握Java编程基础,为进一步深入学习Java EE或Android开发打下坚实的基础。

      李兴华j2se不分的所有笔记

      《李兴华J2SE全面解析笔记》 Java平台的标准版(Java Standard Edition,简称J2SE)是...通过系统学习这些笔记,读者不仅可以理解Java语法,还能掌握Java编程的核心思想,为进一步提升到Java企业级开发打下坚实基础。

      【藏宝图】(珍藏版)2012java开发工程师必备精品资料(115)

      #### 三十一、Java大学教程(JavaHowtoProgram)(第四版)中文版 这本书详细介绍了Java编程的基本概念和技术,适合大学阶段的Java课程教学。 #### 三十二、Java+Eclipse实战视频教程第一集 这份教程通过10集的视频...

      Java实验指导书 2009

      本实验指导书旨在帮助学生掌握Java编程的基础知识和高级特性,通过一系列的实验任务,加深对Java语言的理解,并能够独立完成简单的Java应用程序的开发。 **实验内容的设计与使用:** 实验内容被精心设计为九种类型...

      java学习资料总结2015新

      - **《Java编程思想》** 是一本经典的 Java 编程书籍,适合所有水平的开发者阅读。 - **《Java核心技术卷1原书第8版》** 提供了最新的 Java 技术介绍,对于想要了解 Java 最新特性的开发者来说是非常宝贵的资源。 ...

      Java 开发前奏

      这篇“Java开发前奏”的思维导图笔记,结合了作者的博客内容,旨在帮助初学者系统地掌握Java编程的入门要点。以下是对这些知识点的详细阐述: 一、Java语言基础 1. Java历史:Java是由Sun Microsystems公司于1995年...

      spring第一天课堂笔记

      5. **方便集成各种优秀框架**:Spring提供了对多个第三方框架(如Struts、Hibernate、Hessian、Quartz等)的直接支持,降低了这些框架的使用门槛。 6. **降低Java EE API的使用难度**:Spring对Java EE API进行了...

      记事本软件

      1. **Java编程思想第四版中文版完整版.pdf** - 这是一本关于Java编程的教材,适合初学者和有经验的开发者。Java是一种广泛使用的面向对象的编程语言,常用于开发桌面应用、移动应用、服务器端应用以及大型分布式系统...

    Global site tag (gtag.js) - Google Analytics