前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 编程思想精华总结(一)- 对象导论(下)

Java 编程思想精华总结(一)- 对象导论(下)

作者头像
JavaEdge
发布2020-05-26 17:00:09
4640
发布2020-05-26 17:00:09
举报
文章被收录于专栏:JavaEdge

7 多态

把一个对象不当他所属的特定类型,而是当成父类的一个对象来对待。编写出不依赖于特定类型的代码,这样的代码不会受添加新类型影响。

但问题是编译器在编译时不知道该执行谁的代码!OOP 设计采用了后期绑定方式实现动态的运行时获取类型。不同于 C++的 virtual 关键字,Java 中这是默认机制实现多态。

8 单继承

所有类最终继承自 Object 类。

这样所有对象有公共API,具备基本的相同的功能。使得 GC 也很容易,因为总保存了类型信息,不会因不知道确切类型而陷入僵局。

9 容器(也叫集合,只不过 Java 中普遍叫集合)

不到运行时,你不可能知道你到底该创建多少对象,所以有了容器。

  1. 不同容器提供不同类型的接口和外部行为
  2. 不同容器对特定操作的效率也不同

9.1 参数化类型

由于单继承的设计,一旦将对象引用放进容器,就被向上转型为 Object,从而失去了自己真正的类型。

当取回引用时,又向下转型为具体类型,如果转型错误,还会产生运行时异常。

我们就想要这样的容器:知道自己保存的对象的类型,从而就不需要向下转型和运行时检查(都会产生额外的程序运行时间,所以我们想方设法避免之),这就是参数化类型机制。编译器可以自动定制作用于特定类型上的类。

这就是 JDK5 带来的泛型机制。与此,自 JDK5,大量库被重新适配以适应美妙的泛型。

10 对象的创建和生命周期

使用对象时要注意的一个关键问题就是对象的创建和销毁方式。

为了资源的重复利用,当对象不再被使用时,我们应该及时释放资源,清理内存。但问题是怎么知道何时该清理这些对象呢?

所以为了解决这个问题,我们得知道

10.1 对象的数据在哪?

  1. C++的选择是效率第一,所以都交给 SE 亲自处理,这牺牲了灵活性,造成 SE 必须知道对象的确切数量和生命周期,这么麻烦那我哪还有时间写业务?
  2. 而我们的Java选择使用堆这种动态内存分配方式,一切都只有运行时才能确定。这是基于对象趋向于复杂的假设。

10.2 对象的生命周期是怎么控制的?

Java 的GC帮助我们解脱于释放对象内存。

11 异常处理

Java 自诞生就内置了异常处理,而且必须使用。唯一可接受的错误报告方式。这并不是 OOP 的特征。

12 并发编程

也是内置于语言之中的。

同一时刻处理多任务。

最多用于用户界面,比如大家一起淘宝刷下单按钮。

线程只是一种为单一处理器分配执行时间的手段。如果 os 是多处理器的,每个人物都可以被分派给不同的处理器,达到真正的并行。只在 Java 语言层级说,并发编程使得程序员不必操心到底是否为多处理器。

隐患就是共享资源访问安全的问题。这就是JDK5 库开始发力的地方。

于此,Java 服务端编程正值壮年。一起来操作 Java 吧!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/04/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 7 多态
  • 8 单继承
  • 9 容器(也叫集合,只不过 Java 中普遍叫集合)
    • 9.1 参数化类型
    • 10 对象的创建和生命周期
      • 10.1 对象的数据在哪?
        • 10.2 对象的生命周期是怎么控制的?
        • 11 异常处理
        • 12 并发编程
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档