因为2是2.明天不会是3.

永久性首选是永久性的,特别是在多线程情况下,它使得更容易阅读和更易于维护的代码.例证:Java Date API,它充满了设计缺陷.如果Date是不可变的,API将非常简化.我知道Date操作会创建新的日期,并且永远不必查找修改它们的API.

阅读实践中的并发以了解不可变类型的真正重要性.

但是请注意,如果由于某种原因你需要可变类型,请使用AtomicInteger AtomicBoolean等.为什么Atomic?因为通过引入可变性,您引入了对线程安全性的需求.如果您的类型保持不变,那么您将不需要这些,因此在使用可变类型时,您还必须考虑使用并发包中的类型来考虑线程安全性.欢迎来到并发编程的精彩世界.

此外,对于布尔值 – 我要求您命名一个您可能想要执行的操作,该操作关注布尔值是否可变.设为真吗?使用myBool = true.这是重新分配,而不是变异.否定? myBool =!myBool.同样的规则.请注意,不变性是一个特征,而不是约束,所以如果你能提供它,你应该 – 在这些情况下,你当然可以.

请注意,这也适用于其他类型.整数最微妙的是count,但这只是count = count 1,除非你关心以原子方式获取值…在这种情况下使用可变的AtomicInteger.

java的包装类不可变_为什么像java中的布尔类包装类是不可变的?相关推荐

  1. java 包装类可以被继承_小白学Java:包装类

    小白学Java:包装类 学习了许久的Java,我们知道Java是一种面向对象的语言,万物皆对象.但是我们之前在说到Java基本数据类型的时候,由于处理对象需要额外的系统开销,于是出于对性能的考虑,基本 ...

  2. java 知乎面试题_面试题|Java基础17道常见面试题

    1. JDK 和 JRE 有什么区别? 面向人群不同: JDK是面向开发人员使用的SDK. JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者. ...

  3. java并发编程面试题_阿里常用Java并发编程面试试题总结

    一.概念 什么是线程 一个线程要执行任务,必须得有线程一个进程(程序)的所有任务都在线程中执行的一个线程执行任务是串行的,也就是说一个线程,同一时间内,只能执行一个任务 多线程原理 同一时间,CPU只 ...

  4. 学通java的24堂课_学通Java的24堂课

    1.JAVA_HOME只是为了保存安装路径,完全可以换成其他的,再使用%JAVA_HOME%引用,只不过第三方软件默认使用了JAVA_HOME 2.palette:调色板,又叫组件管理器 3.Jlab ...

  5. 有谁转行学java成功了的吗_转行学习java靠谱吗?

    转行学Java靠谱吗?靠不靠谱主要还是看你自己是否想要学好Java技术,是否想要从事这方面的岗位工作,如果你已经有了这个决心,那么自然而然什么都不会问题.无论我们学Java是兴趣还是想要通过学好Jav ...

  6. java 参数类型不确定_详细解析Java虚拟机的栈帧结构

    什么是栈帧? 正如大家所了解的,Java虚拟机的内存区域被划分为程序计数器.虚拟机栈.本地方法栈.堆和方法区.(什么?你还不知道,赶紧去看看<Java虚拟机内存结构及编码实战>)这次要介绍 ...

  7. java正则截取xml节点_实例讲述Java使用正则表达式截取重复出现的XML字符串功能...

    Java使用正则表达式截取重复出现的XML字符串功能示例 本文实例讲述了Java使用正则表达式截取重复出现的XML字符串功能.分享给大家供大家参考,具体如下: public static void m ...

  8. java 获取 反射 方法 名_乐字节Java反射之一:反射概念与获取反射源头Class

    一.Java反射机制概念 "程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言",如Python, Ruby是动态语言:显然C++,Java,C#不是动态语言,但是JAV ...

  9. 深入java虚拟机 第四版_深入理解Java虚拟机-常用vm参数分析

    Java虚拟机深入理解系列全部文章更新中... https://blog.ouyangsihai.cn/shen-ru-li-jie-java-xu-ni-ji-java-nei-cun-qu-yu- ...

最新文章

  1. qt中label双击_qt关于QLabel控件的实现双击调用文件对话框
  2. Swift 泛型參数
  3. P4849 寻找宝藏(模板:四维偏序)
  4. js整体缩小网页_SEO网页优化的原则是什么?
  5. 信息学奥赛一本通 1034:计算三角形面积 | OpenJudge NOI 1.3 17
  6. c语言链表递增,[C语言][PTA][2019Fall] 6-28 递增的整数序列链表的插入 (15 point(s))
  7. 蓝桥杯 ALGO-30算法训练 入学考试(01背包,动态规划)
  8. Lc.exe已退出 代码为-1
  9. OGRE 1.7.2 [Cthugha] 编译方法
  10. 市场经济中,大家都象防贼一样保留证据,以用于欠薪仲裁
  11. 高德地图轨迹方向_阿里巴巴高德地图首席科学家任小枫:高精算法推动高精地图落地...
  12. 软件测试面试题整理(六)之app测试篇
  13. win10系统 专业版 安装教程
  14. 《Mostly Harmless Econometrics 》第二章:选择性偏误与随机实验
  15. 定义方法-求矩形的面积
  16. 2513: 小勇学分数(公约数问题)
  17. C++(35)——判断一个数能否同时被3和5整除
  18. 数据结构与算法之排序算法
  19. 详解_阿里云FPGA服务器f3实例RTL开发最佳实践脚本代码
  20. 终于可以舒服的看电子书了

热门文章

  1. vivaldi浏览器_Vivaldi,您的下一个浏览器?
  2. kail linux纯文本浏览器,在Linux Mint/Kali Linux上安装Vivaldi Web浏览器的方法
  3. 各浏览器模拟手机浏览器的方法
  4. TrueType字体
  5. 攻略丨一文速览2018世界机器人大会最全参会指南
  6. 神雕侠侣2显示不了服务器,神雕侠侣2游戏进不去怎么办_游戏进不去解决方法推荐...
  7. php安装amqp扩展
  8. Matlab车牌识别停车场车辆进出管理系统
  9. 在学习PyQt5打开网址时遇到PyQtWebEngine不存在问题: No module named #180PyQt5. QtwebEnginewidgets#180
  10. 【问题分析】打开的文件过多