`

《Java语言精粹》读书笔记(1)

    博客分类:
  • Java
阅读更多
   这是一本只讲Java优点的书。
    Jim Waldo先生是原Sun微系统公司实验室的杰出工程师,他亲历并参与了Java从技术萌芽、发展到崛起的整个过程。


   类型系统
    类、抽象类和接口。
    用接口定义一种类型,再用一个类实现此接口,这样,要调用执行调用的性能损失是程序的设计者们不愿付出的。在早期的Java解释器中,可接受的性能是人们真正关心的,但即使在那时不通过接口的直接调用也只是一个微乎其微的优化,没有实际意义。考虑到如今的即时编译(just-in-time)编译器的性能,这种反对意见已经完全没有意义了。
    关于效率,另一种反对意见在于接口导致系统中的信息重复,需要程序要录入更多的代码。集成开发环境(Integrated Development Environment,IDE)大大缓解。
   方法参数和返回值的声明中,接口的概念第一次显得重要起来。编辑器要求传入方法或从方法中返回的对象必须符合声明的类型。这些对象的精确类型不必与声明的类型完全一致;编译器只要求它们“至少是”那种类型。多态。
    接口的定义可以使实现任务交给可以信任的其他团队。
    对象的接口实际上就是用户接口,只不过用户是程序员。它理清了整个系统设计的方法。
   Java的接口不能区别同类方法;还有一个关于类加载器(classloader)的问题。但这两种情况都很少遇到。


   异常
   The Why
    The reasoning behind the exception mechanism in Java is pretty simple. Bad things can happen, even to good programs. When such a bad thing happens, there is a need to react to it, either by figuring out some other way to accomplish what was trying to be done when the bad thing happened, by cleaning up and gracefully exiting, or by abort-ing the operation in which the bad thing happened and trying something else. But the code that deals with the problem shouldn't be mixed in with the code that is used when bad things don't happen, or the program can rapidly become unreadable. In addition, programmers are probably better off if they have to deal with problems as close as possible to the time and place that they occur.
    The design also ties into the Java type system. Since an exception is an alternative return value, it forms part of the signature of the method. Not declaring an exception would be like not having to declare the type of the return value. It would be very difficult to write predictable code in such a situation, and it would be difficult for the compiler to help you find mistakes.
    Finally, the exception mechanism allows a program to separate the mainline code and the error-handling code.
   Use and Abuse
 
   
      try{ 
        ... 
          method1(); 
        ... 
          method2(); 
      ... 
      } catch (Type2Exception e){ 
          //do something to recover 
      } catch (Type1Exception e) { 
          //do something else to recover 
      } 

    Take care
    Exception next type
    We can use the RuntimeException,but you should do everything in your power to warn users of your code that this ex-ception might be thrown, the circumstances under which it will be thrown, and what the caller might to do avoid the exception or deal with it if it is thrown. It isn’t the perfect solution, but it is the best that is open to you.
    Example
 
    try {
        ...
    } finally {
        if (resultSet != null) try { resultSet.close(); } catch (SQLException logOrIgnore) {}
        // will go on to do after catch
        // tack care the difference with the former example
        if (statement != null) try { statement.close(); } catch (SQLException logOrIgnore) {}
        if (connection != null) try { connection.close(); } catch (SQLException logOrIgnore) {}
    }
分享到:
评论

相关推荐

    java语言精粹

    ### Java语言精粹之异常处理 #### 引言 在《Java语言精粹》这本书中,作者Jim深入探讨了Java语言及其环境中的诸多亮点。其中一个关键主题是异常处理。异常处理是Java编程的一个核心概念,它对于确保程序的健壮性...

    JavaScript语言精粹完整版

    《JavaScript语言精粹》作为一本深入浅出讲解JavaScript编程语言的经典之作,对于想要提升自己JavaScript技能的开发者来说,无疑是一份宝贵的资源。本书由Douglas Crockford所著,他不仅是JSON格式的创始人,也是...

    疯狂Java面试题(疯狂Java讲义精粹附赠).pdf

    "疯狂Java面试题(疯狂Java讲义精粹附赠).pdf" 本资源是关于Java面试题的集合,涵盖了Java核心技术部分的面试题,包括Java基本语法、面向对象、Java常用API、Java集合框架、注解、泛型、输入/输出、多线程、网络...

    JAVA案例精粹150例

    JAVA案例精粹150例.pdf JAVA案例精粹150例.pdf

    javascript语言精粹 pdf

    《JavaScript语言精粹》是JavaScript开发者必读的经典之作,它深入浅出地讲解了JavaScript语言的核心概念和实用技巧。这本书不仅适合初学者作为入门指南,也适合经验丰富的开发者用来巩固和提升自己的技能。 首先,...

    疯狂java讲义精粹(第2版)

    《疯狂Java讲义精粹(第2版)》是一本深度剖析Java编程语言的专业书籍,其源代码包含在提供的压缩包文件中。这本书的核心目标是帮助读者深入理解Java语言的本质,提升编程技能,并掌握实际开发中的关键技术。以下是该...

    疯狂Java讲义精粹(第二版)

    本资源主要聚焦于Java语言的实践应用,特别是通过代码示例来阐述关键的设计模式和项目实践。 在压缩包中,"Java设计模式(疯狂Java联盟版).chm"是一个帮助文件,它详细介绍了Java设计模式。设计模式是软件开发中的...

    JavaScript 精粹读书笔记(1,2)

    在《JavaScript 精粹》一书中,作者深入探讨了JavaScript的特性和最佳实践,旨在帮助开发者区分和利用其精华部分,同时避免那些可能会引起问题的鸡肋特性。 首先,JavaScript的某些特性带来了麻烦,因为其规范的不...

    JavaScript语言精粹_修订版.pdf

    JavaScript语言精粹_修订版.pdf

    疯狂Java讲义精粹随书光盘

    光盘中的"疯狂Java讲义精粹.iso"文件很可能是该书的完整电子版,以ISO镜像格式提供,方便用户在计算机上阅读或刻录到光盘上。 在Java编程领域,以下几个核心知识点是《疯狂Java讲义》可能涉及的: 1. **Java基础**...

    uml精粹笔记

    **UML精粹笔记概述** UML(统一建模语言)是软件开发中的一种标准化建模工具,用于可视化、理解和构建复杂系统。本笔记主要涵盖了UML的核心概念和图形表示,包括类图、时序图、对象图、包图、部署图、用例、状态机...

    JavaScript语言精粹 pdf

    《JavaScript语言精粹》作为一本经典的编程书籍,...总之,《JavaScript语言精粹》是一本值得每位JavaScript开发者反复阅读和深入研究的宝贵资源,它不仅能够帮助你建立起坚实的理论基础,更能激发你对编程的无限热情。

    JavaScript 语言精粹

    《JavaScript语言精粹》这本书深入浅出地探讨了这一语言的核心概念和技术,旨在帮助开发者更好地理解和掌握JavaScript的精髓。 首先,JavaScript的核心特性包括弱类型、动态类型、基于原型的对象模型以及函数作为...

    Java案例精粹150例 高清完整版

    该压缩包包含了一份PDF文档,名为“Java案例精粹150例.pdf”,很可能包含了150个精心挑选的Java编程实例,涵盖了Java语言的核心特性、标准库的使用、面向对象编程原则以及常见的设计模式等众多知识点。以下是可能...

    《JavaScript语言精粹》.txt

    JavaScript语言精粹

    《JavaScript语言精粹》.pdf

    1. **基础语法**:JavaScript的基础语法类似于C++和Java,包括变量声明(var、let、const)、数据类型(字符串、数字、布尔值、null、undefined、对象、数组、Symbol等)、运算符(算术、比较、逻辑、赋值、三元)、...

    Java案例精粹150例(源代码)_java_

    本资源“Java案例精粹150例(源代码)”提供了丰富的实践示例,帮助开发者深入理解和掌握Java的核心概念及技术。下面将详细阐述这些案例可能涉及的知识点,并给出相关扩展内容。 1. **基础语法**:Java的基础语法是...

Global site tag (gtag.js) - Google Analytics