不可变的JDK类的完整列表?
问题内容:
jdk中是否有 事实上的 不可变类的列表?
从技术上讲,不可变类包括明显的Integer,Double等。
事实不可变将包含例如java.lang.String-从技术上讲它可能是可变的,但事实并非如此。
另外,是否存在不可变的接口/抽象类(如javadoc中所述)?
如果您不能提供完整的列表,那么如果您知道一堆在其javadoc中声明不变性的类,我将很高兴。
问题答案:
我尝试尽我所能来编译列表:
- java.lang.String基本类型的包装器类:
- java.lang.Integer
- java.lang.Byte
- java.lang.Character
- java.lang.Short
- java.lang.Boolean
- java.lang.Long
- java.lang.Double
- java.lang.Float
- java.lang.StackTraceElement(用于构建异常stacktraces)
- 大多数枚举类
- java.math.BigInteger
- java.math.BigDecimal
- java.io.File
- java.awt.Font
- java.awt.BasicStroke
- java.awt.Color
- java.awt.GradientPaint,
- java.awt.LinearGradientPaint
- java.awt.RadialGradientPaint,
- java.awt.Cursor
- java.util.Locale
- java.util.UUID
- java.util.Collections
- java.net.URL
- java.net.URI
- java.net.Inet4Address
- java.net.Inet6Address
- java.net.InetSocketAddress
- java.security.Permission的大多数子类