Java总结0

Java总结_0

  • 第一讲课程介绍及对象导论
    • 所有的编程语言都提供了抽象的机制
      • 汇编语言是底层机器的抽象,FORTRAN,BASIC和C是对汇编语言的抽象
      • 在解决问题的时候这些语言要求考量的是基于计算机的结构而不是基于要解决的问题结构
      • 另一种对机器建模的方式就是对待解决问题建模
      • 面向对象(OOP)(Smalltalk)
    • OOP的5个基本特征
      • 万物皆是对象
      • 程序就是对象的集合,它们彼此通过发送消息来调用对方
      • 每个对象都可拥有其他对象
      • 每个对象都拥有其他的类型
      • 某一特定的类型的所有对象都是可以接受同样的消息
      • 总结:对象拥有状态(State)行为(Behaviour),标识(Idengtity)
    • 每个对象都有一个接口
    • 每个对象都提供服务
      • 在开发设计程序是,最好的方法是把对象想象为 服务提供者
      • 程序本身将为用户提供服务,将通过调用其他对象提供的服务来来实现这一目的
      • 有助于提供对象的内聚性,高内聚是软件设计的基本质量要求之一
    • 隐藏实现
      • 2个角色:类创建者,客户端程序员(类消费者)
      • 隐藏的目的: 创建类,只向客户端程序员暴露必须的部分,而隐藏其他说有部分
      • 隐藏的好处: 类创建者可以任意修改被隐藏的部分而不担心对其他人造成影响
      • 访问控制: public,private,protected
    • 复用具体实现
      • 聚合/组合 使得程序员可以在不干扰客户端代码的情况下修改类的成员,也可以运行时修改这些成员对象以实现动态修改程序的行为
      • 书本 例子goose和
    • is-a 和is-like-a
      • 原有接口覆盖(overriding) 纯粹替代(is-a)
      • 优势必须在到处类中添加新的接口元素,这样也就扩展了原有几口并创建了新的类型,而基类无法访问添加新方法(is-like-a)
    • 伴随多态的可互换对象
      • 课本Shape,Circle,Square,Triangle
    • 抽象基类和接口
      • 可以使用关键子abstract来创建抽象类,该抽i相类不能被实例化
      • 可以使用关键字abstract来描述一个尚未被具体实现的方法,该方法不能包含方法体
      • 一个抽象方法只能在抽象类中创建,当该类被继承时,抽象方法必须具体实现,或者继承类必须被声明为抽象类
    • 对象创建,使用和生命周期
      • C++把对象置于堆栈(stack)或者静态存储区
      • Java中如果需要一个新对象,可以在需要的时候直接在堆(heap)中创建,编译器无法直到其生命周期。
      • 对象最重要的因素之一时他们生成和销毁
      • java提供了被称为垃圾回收器的机制,它可以自动发现对象何时不再被使用,并销毁它
    • 确保正确清楚
      • 每个对象为了生存都需要资源,尤其时内存,当不在需要一个对象时,他必须被清楚掉其占有的资源可以被释放和重用。
      • Java的垃圾回收器被设计用来处理内存释放问题。
      • 垃圾回收器“知道”对象何时不在被使用,并自动释放该对象的内存。
    • 垃圾回收:效率和灵活性
      • 在堆栈(stack)上创建对象时为了对象分配和释放存储空间最有效的途径
      • 在堆(heap)上创建对象可能代价就要高昂很多
      • 垃圾回收器不在由程序员经行管理,所以Java不太适合实时程序
    • 集合和迭代器
      • 程序需要容器取持有对象: List类库(用于存储序列)Map类库(被称为关联数组,用来建立对象之间的关联)Set类库(用来存储对象)
      • 所有的同期都有魔种方式来处理元素放入和取出
      • Java使用迭代器来控制或比较容器中的元素
    • 单根继承
      • Java中所有的类最终继承自单一的终极基类Object
        • 在单根继承结构中多有的对象都具有一个共用接口,所以它们归根到底都是相同的基本类型
        • 单根继承结构保证所有对象继承具备某些功能
        • 单根继承结构使垃圾回收器(内置于Java中)实现变得容易得多
    • 向下转型与模板/泛型
      • 向下转型:可以存储Object得同期可以存储任何东西,当需要把它取回时,获取了一个对Object得引用,而不是对置入时得那个烈性对象得引用。所以需要向下转型为更具体地类型
      • 参数化类型C++地重要组成部分,部分原因时C++没有单根继承结构。在C++中实现参数化类型地关键字“template”Java在JDK1.5中拥有了这个特性
    • 异常处理:处理错误
      • 异常是一种对象,它从出错地点被“抛出(thrown)”并被适当地专门被设计用来处理特定类型异常地异常处理器“捕获(caught)”
      • 错误处理时另一条完全分离地执行路径,所以他不会干扰正常地执行代码。
      • Java一开始就内置了异常处理,而且强制必须使用它
    • 并发
      • 在计算机编程有一个基本概念,就是在同一时刻处理多个任务(task)的思想
      • 在程序中,这些彼此独立运行的部分成为线程(thread)上述概念被称为并发或者多线程
      • 可以在线程期间共享资源,必须在被使用期间锁定
      • 通过对程序的方法或者代码块使用关键字sybchronized,可以保证同一时刻只有一个线程能使用锁定对象所占的内存
    • 持久性
      • 即使时程序没有运行,如果一个对象仍然存在并能保持其信息将是非常有用的。
      • Java提供对“轻量级持久性”的支持,这意味着可以很同意地将对象存储在磁盘上,并在以后取回它们。
      • 轻量级持久性可以通过对象序列化(object serialization)或者Java数据对象(JDO,Java Data Object)来实现
    • Java与internet
      • 客户端/服务器计算技术
        • 服务器: 信息寻相互下hi(集中存放)是用于分发信息地软件,信息与软件的宿主机器(机器的集群)被称为服务器
        • 客户端: 宿主于远程机器上的软件与服务器进行通信,以获取信息、处理信息,然后将他们显示在远程机器上,称为客户端
      • C/S计算技术的缺陷
        • 数据丢失、很难创建和使用/维护更新问题,胖客户端
      • web是一个巨大的服务器
        • web浏览器使一段信息可以不经修改就可以显示在任何型号的计算机上
        • 是一种简单的单项过程:发送请求给服务器,然后接受服务器发送的回应
        • web浏览器交互性还不够,这只能结合客户端运行程序的能力来解决
      • 客户端编程,即使在浏览器内运行程序可以加快网站速度并更易于交互
      • 客户端编程方式
        • 插件、脚本、Java、.NET、Security
      • 服务器端编程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值