thinking in java 读书笔记(一)

前言:准备再次看看这本经典书籍,以前看过两遍,现在想想,觉得效果不是特别好,所以准备好好看第三遍

写在前面的话:

  作者在里面提出了几个观点--java本身的目的是提高开发的效率,尽管有性能问题,还说了一个自己没弄懂得观点

引用

程序设计与对复杂性的操控有很大的关系:对一个准备解决的问题,它的复杂程度取决用于解决它的机器的
复杂程度。正是由于这一复杂性的存在,我们的程序设计项目屡屡失败。对于我以前接触过的所有编程语
言,它们都没能跳过这一框框,由此决定了它们的主要设计目标就是克服程序开发与维护中的复杂性。当
然,许多语言在设计时就已考虑到了复杂性的问题。但从另一角度看,实际设计时肯定会有另一些问题浮现
出来,需把它们考虑到这个复杂性的问题里。不可避免地,其他那些问题最后会变成最让程序员头痛的。例
如,C++必须同C 保持向后兼容(使C 程序员能尽快地适应新环境),同时又要保证编程的效率。C++在这两
个方面都设计得很好,为其赢得了不少的声誉。但它们同时也暴露出了额外的复杂性,阻碍了某些项目的成
功实现(当然,你可以责备程序员和管理层,但假如一种语言能通过捕获你的错误而提供帮助,它为什么不
那样做呢?)。作为另一个例子,Visual Basic(VB)同当初的BASIC 有关的紧密的联系。而BASIC 并没有
打算设计成一种能全面解决问题的语言,所以堆加到VB 身上的所有扩展都造成了令人头痛和难于管理和维护
的语法。另一方面,C++、VB 和其他如Smalltalk 之类的语言均在复杂性的问题上下了一番功夫。由此得到
的结果便是,它们在解决特定类型的问题时是非常成功的。

   我直接看晕了作者提出了通信,java的本身的易用性,然后就没了,通信不是bit是人与人之间的交流关系,这不是现在的手机开发吗?又让我想学android,有时间自己捣鼓捣鼓

   还有关于java很强大的观点
  
引用
只有在考虑“设计”、而非考虑简单的编码时,才可真正体会到Java 的强大。为了按这种方式理解Java,首先必须掌握它
与编程的一些基本概念。本书讨论了编程问题、它们为何会成为问题以及Java 用以解决它们的方法。所以,
我对每一章的解释都建立在如何用语言解决一种特定类型的问题基础上。按这种方式,我希望引导您一步一
步地进入Java 的世界,使其最终成为您最自然的一种语言。



第一章:对象


  为什么要使用对象,你是怎么创建对象的,只是new,让我想到effective java 第一章就是扯这个,不同的创建方式
  对象--类  类有接口  抽象累 继承类 这么多概念
  对象创建和存在时间 --jvm虚拟机知识可以好好在这方面深入,如果事先不知道需要多少个对象,或者它们的持续时间有多长,那么也不知道如何保存那些对象。既然如此,怎样才能知道那些对象要求多少空间呢?事先上根本无法提前知道,除非进入运行期
  说明集合的问题,各种集合设计不同,性能肯定也不同,导致不同的应用场景分别使用特别是现在jdk5加入的新东东
    单根结构方式--Object,c++为什么不用,就说了个什么灵活性就带过了,前面还说java这样是为了灵活性,c++是为了更大的灵活性,自己对c++只停留在语法方面,没怎么用过,所以具体也只能听作者胡片了,java的好处统一控制,设计垃圾收集机制之类的方便很明显可以看出来

1.73
   再次谈到集合库,jdk里面最重要的两个库之一啊,io,util 集合的设计与使用无出不在,java坚实的基础,话说我还没自己做过性能方面的测试,只是看别人分析过

  参数化集合--编译器基本的控制,编译器为此做了很多工作
运行期的代码就绝对是转换过的,c++人家是运行期来搞,这个语法糖什么的

1.7.4
    提到c++可以在栈上面创建对象,又是c++无限的灵活性与复杂性,java没这个功能与java怎么解决这个问题,通用性的解决势必会有很多不好,但是却减少了复杂性


1.8异常
   java异常控制是一开始就封住好的,语言基本的,编写是编译器必须要求你写,effective java 异常那讲得很好,怎么处理异常本身也是好的软件必须的东西,我们现在的项目在这方面考虑就不是很好。

1.9多线程
    多线程的好处很多,cpu均与的处理每个要处理的问题就像有多个cpu,灯泡不是一直发光,我们认为他一直发光是一样的。java提供的锁定机制,并提到其他编程语言要程序员自己锁定,那么不用java的锁定机制,自己能编程锁定吗?这个貌似要精确实现不好弄啊,要写个队列,排个对,然后队列前面那个每次去看看这个资源的标志量改变了没有,改变了自己就用,然后就设置标志量,以前学操作系统的时候用c模拟过。
java现在还提供了lock机制,还有train关键字吧

1.10永久性
   这个不是实现那个序列话Serializable接口吗?
1.11
1.12
   没什么可说,web开发这么久,分析设计不是那么容易想得明白的事情,能力有限


猜你喜欢

转载自blognojava.iteye.com/blog/1154119