Java-L07: 原始数据类型和包装类

李文轩 2019-03-18
声明:这是本人学习极客时间的Java核心36讲的笔记,有侵权请联系我。


Java 8个基础类型(primitive types)他们各自有各自的包装类:

  • boolean
  • byte
  • short
  • char
  • int
  • float
  • double
  • long

Java 可根据上下文,实现int/Integer, double/Double, boolean/Boolean等基本类型与相应对象之间的自动转换


类似String的优化方法:

JDK1.5 中新增了静态工厂方法 valueOf,其背后实现是将int值为-128 到 127 之间的Integer对象进行缓存,在调用时候直接从缓存中获取,进而提升构建对象的性能,也就是说使用该方法后,如果两个对象的int值相同且落在缓存值范围内,那么这个两个对象就是同一个对象;当值较小且频繁使用时,推荐优先使用整型池方法(时间与空间性能俱佳)


  1. 优先使用基本类型。避免无意中的装箱和拆箱行为。
  2. 有线程安全需要的话,考虑使用 AtomicIntegerAtomicLong。比较宽的数据类型,比如floatdouble不能保证更行操作的原子行

你可能感兴趣的:(Java-L07: 原始数据类型和包装类)