java基本类型及包装类

整型

计算机存储的都是补码,正数的原码 补码 是相同的,负数不同,负数反码为除符号位的其它位数取反,补码为反码加一。源码0有两种表示,补码只有一种,约定多出来的一种表示最小的负数。

int 类型:4个字节,取值范围为[-2^31, 2^31-1]

long类型:8字节

short类型:2字节

byte类型:1字节

float类型:4字节,默认0.0f

double类型:8字节,默认0.0d

char类型:2字节,unicode字符

boolean类型:1bit


浮点型

不要用浮点型做精确的计算

不要用浮点型作为循环变量

浮点型判断相等不要用==,应当使用 Math.abs(foo - bar) < EPSILON, EPSILON = 1e-6f 或者 1e-6d

精确计算是不要使用double,float,推荐使用int、long、BigDecimal




包装类型

一般情况基本类型优于包装类型,如做累加操作时应当避免自动拆箱装箱带来的额外开销。

整数型的包装类型用equals做大小判断,但是浮点型的类型不能使用equals或者compareTo做相等判断,大小是可以的。

Integer类型,使用字面量和Integer.valueOf()创建的对象在[-128, 127] 是共享的。

自动装箱:把一个基本类型变量直接赋给对应的包装类变量,或者直接赋给Object对象。

自动拆箱:直接把包装类直接赋给一个对应的基本类型变量。

包装类可以实现基本类型变量和字符串之间的转换,如Integer.parseInt(str)。

基本数据类型与包装类实例的数值可以直接进行比较。

两个包装类的实例进行比较,需要看数值是否在-128~127之间。

所有的包装类都提供了静态的compare方法来比较两个基本类型的大小。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容