程序开发:专注有克服开发和维护程序的复杂性。
Java: 为程序员减少开发健壮代码的复杂性。
Java同时解决了很多问题:多线程,网络编程,跨平台,动态代码修改,安全
学习就是从失败中吸取教训。
抽象:汇编是对底层机器的轻微抽象。命令式语言是对汇编的抽象。
只针对待解决问题建立模型。面向过程编程
标识问题空间中的元素的工具,问题空间中的元素和解空间中的表示称为对象。
思想的本质是:程序通过添加新类型的对象使自身适用于某个特定的问题。
面向对象语言的五大基本特征:
每个对象都只能满足某些请求,这些请求有对象的接口(interface)定义
UML建模:
每个对象都是服务提供者。
编程就是创建(别人有直接拿来用)理想的服务来解决问题的一系列对象。
高内聚,低耦合
隐藏,封装。
复用,有的关系
继承,是的关系
多态:编译器不可能产生传统意义上的函数调用。
后期绑定问题。
容器:任何需要时都可以扩充自己以容纳其他所有的不确定数量的东西,然后处理所有细节
不同容器提供了不同类型的接口和外部行为。
不同容器对某些操作具有不同的效率。
java5:泛型(向上转型是安全的,向下就不安全了)
动态内存分配方式
gc:内存释放。
异常提供了一种从错误状态进行可靠恢复的途径。
并发编程,多处理器提高效率。问题是共享资源
服务器的开发。