Java中有哪些数据类型转换?
显示类型转换:在前面一个括号,里面写上要转换的类型
隐式类型转换:小范围的数据类型转大范围的,int到long,float到double
字符串转整形或浮点:整形:Integer.parseInt();浮点:Double.parseDouble()
类型互转会出现什么问题吗?
时间丢失:大范围转小范围,long-》int
精度丢失:高精度转低精度,double-》float
类型不匹配:会报错
为什么用bigDecimal 不用double ?
double会出现精度丢失的问题,因为double执行的是二进制浮点运算
bigDecimal是精确计算的
自动装箱和拆箱是什么?
自动装箱:基本数据类型转换成其包装类
自动拆箱:包装类转换从基本数据类型
java5引入主要是为了方便操作
实现是通过valueOf()和和xxxValue()实现的
频繁使用自动装箱和拆箱会影响性能
为什么会有包装类?
因为java中的很多方法和类是用来处理类类型的对象的,比如ArrayList这些只能存储类;
泛型也只能使用引用类型;
基本类型和引用类型的转换也必须借助包装类;比如int必须先转换成integer才能转换成String类型。
基本类型和包装类的区别?
性能方面:基本类型占用内存小。包装类型占有内存较大。
比较方式:基本类型用==比较。包装类型==比较的是地址,equals比较的才是值
默认值:基本的默认值为0或false。包装的默认为null
初始化方式:基本是直接赋值。引用需要new
存储方式:基本:局部变量保存在栈上,成员变量在堆中。包装类保存在堆上。
鉴于作者水平有限,文章可能存在错误
如有指正,十分感谢