Java中数据类型转换的内存溢出问题
类型转换底层逻辑遵循原则:
- 1.运算自上而下
- 2.未经强制类型转换之前遵循前面的运算结果
所以会衍生出两类类型转换的内存溢出问题:
高内存到低内存的强制转换:
在遵循强制转换规则规定时我们写出的代码已经完成优先进行类型转换之后再进行输出运算。所以高到低类型转换要注意的就是输出的内容与转换后类型的内存之间的大小关系,如果超过其字节范围就会发生内存溢出的情况,使得系统判定内存溢出更新输出结果。
低内存到高内存的自动转换:
要同时注意1.与2.的运算语言逻辑,自动转换后但还未经输出的结果产出逻辑是遵循前面的低字节范围的运算的,所以当自动转换时低字节范围数据类型运算超出其字节范围,那么在后续的高字节范围数据类型输出的结果就是低内存数据类型在内存溢出后重新运算出的新结果。