前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >不可变类特征

不可变类特征

作者头像
关忆北.
发布2021-12-20 20:18:59
4050
发布2021-12-20 20:18:59
举报
文章被收录于专栏:关忆北.

不可变类:实例不能被修改的类。

每个实例中包含的所有信息都必须在创建该实例时提供,且在对象的整个生命周期内固定不变。

不可变类,如:String、基本类型的爆装备、BigInteger和BigDecimal。

为了使类成为不可变,要遵循以下五条原则:

  1. 不要提供任何会修改对象状态的方法(set方法)。
  2. 保证不会被扩展。(防止子类化,可使用fianl修饰类)
  3. 声明所有的域都是final的。
  4. 声明所有的域都为私有的。
  5. 确保对任何可变组件的互斥访问。

不可变类的优点:

  1. 不可变对象简单,只有在创建时的一种状态。
  2. 不可变对象创建后无需考虑额外的维护工作。
  3. 不可变对象本质上是线程安全的,他们不要求同步。
  4. 不可变对象可以被自由的共享其本身和内部信息。

因不可变对象的这些特性,对于频繁用到的值,尽可能的重复使用现有实例。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档