DESKTOP-F6K5GEP_20200824-崔婧涓

不变模式
不可变类( immutable class )
被final修饰的类(没有子类)
内部所有的字段都是final修饰的(初始化后无法再次修改取值)
不提供实例变量的修改器(即实例变量对应的setter)
...
不可变对象( immutable object )
一个对象一经创建其状态再也无法改变
所谓状态不可变是该对象的实例变量的值再也无法修改
8种基本数据类型对应的包装类都是不可变类

不变模式
不可变类( immutable class )
被final修饰的类(没有子类)
内部所有的字段都是final修饰的(初始化后无法再次修改取值)
不提供实例变量的修改器(即实例变量对应的setter)
...
不可变对象( immutable object )
一个对象一经创建其状态再也无法改变
所谓状态不可变是该对象的实例变量的值再也无法修改
8种基本数据类型对应的包装类都是不可变类

包装类
为什么叫包装类?
字符串类型与基本数据类型之间转换的桥梁
基本类型
java.lang.Number
java.lang.Byte
java.lang.Short
java.lang.Integer
java.lang.Long
java.lang.Float
java.lang.Double
java.lang.Boolean
java.lang.Character
void
java.lang.Void

常用方法
public static Xxx valueOf( xxx value )
Byte
Short
Integer
Long
Float
Double
Character
Boolean
public static Xxx valueOf( String s , int radix )
Byte
Short
Integer
Long
public static Xxx valueOf( String s )
Byte
Short
Integer
Long
Float
Double
Boolean
public static xxx parseXxx( String s )
Byte.parseBye( String )
Short.parseShort( String )
Integer
Long
Float
Double
Boolean
public static xxx parseXxx( String s , int radix )
Byte.parseBye( String , int )
Short.parseShort( String , int )
Integer.parsetInt( String , int )
Long.parseLong( String , int )
public static String toBinaryString( xxx value )
public static String toOctalString( xxx value )
public static String toHexString( xxx value )
public static String toString( xxx value )
public String toString()
public boolean equals( Object o )
public int hashCode()

装箱/拆箱
auto-boxing (自动装箱)
将一个基本数据类型的数值自动包装到一个相应类型的包装类类型的对象中
在编译阶段,编译器将

Integer x = 100 ; 替换为 Integer x = Integer.valueOf( 100 );
Integer p = 1000 ;
自动将基本数据类型的数据转换成相应的包装类类型的对象
Integer q = Integer.valueOf( 1000 ) ;
手动装箱
auto-unboxing (自动拆箱)
从一个包装类类型的对象中取出其内部所包装的基本数据类型的数值
在编译阶段,编译器将 p = p + x ; 替换为 p = p + x.intValue() ;

标签

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1