Java学习笔记--Thinking in Java(精华部分提取)

Chapter1 对象导论

(1)编程即抽象
(2)每个对象都有接口
(3)每个对象都提供服务
设计过程中,应遵循"高内聚,低耦合"原则
(4)被隐藏的具体实现
类设计过程,应通过封装的手段,将实现细节隐藏(private),而将接口暴露(public)
(5)复用具体实现
复用:同一个实现,应尽可能保证在不同的场景下可以直接使用
复用的手段包括:组合(composition)、继承(aggregation)..
所谓组合,即has-a;所谓继承,即is-a
(6)继承
基类(父类),通过继承的方式,得到导出类(子类)。子类成为父类的泛化。
子类可以复制父类所有行为,也可以重写父类的行为。
理想的继承应为is-a,但实际上通常是is-like-a
(7)伴随多态的可互换对象
面向接口编程,在需要改动时(更换接口对象),将修改开销降到最小。
实现相同接口的类(继承自相同父类的子类),由于多态的作用,对于相同的接口,表现出各自不同的行为。
多态的实现方法,即后期绑定。在编译期间,编译器无法确定接口方法调用的哪个具体实现。
将子类转化为父类对象(实现转化为接口)的行为,称为向上转型(upcast);反之,称为向下转型。
(8)单根继承结构
java中,所有对象(基本类型不算)具有相同的基类(Object),且所有子类都只能继承自唯一一个父类。
(9)容器
jdk中提供了很多不同类型的容器,应对不同场景的使用。
(10)对象的创建及生命期
不同于c++,Java中申请的对象不需要手动释放,而由GC释放。常见算法包括:引用计数、根节点可及。
由于GC,Coder可将精力放在更顶层的设计上。
(11)异常处理:处理错误
程序中意外情况,都以异常的形式抛出,供处理。
(12)并发编程
多线程/多进程可以提升CPU的利用率,也解决了多个任务需要同时运行的需求,但是也带来了难度和问题。
隐患主要在于共享资源的访问及修改,而锁,成为解决并发编程的一大利器。
(13)Java与Internet
网络即socket。万维网将遍布世界的不同主机连接起来,提供通信。常见的通信架构:C/S,B/S。

---持续更新---

猜你喜欢

转载自www.cnblogs.com/xinxinBlog/p/10023713.html