java基础-Number

2020-02-28  本文已影响0人  16325

Byte

1 在计算机中,8位带符号二进制数的取值范围是[-128, 127],所以在Java中,byte类型的取值范围也是[-128, 127]。
2 正数的最高位都是 0 ,正数的值就是二进制表示的值。
3 负数的最高位都是 1 ,负数的值是 取反后加一 然后加个负号得到得值。
4 我们用8位的二进制来说明一下此规则:
比如:00000001。最高位是0 为正数 ,那么表示的就是 十进制的 1。
再比如:10000001.最高位是1 为负数,值是多少?取反得到 01111110 加1 得到 01111111 ,那么值为 -127

Short

Integer

Long

+长度:8byte/64bit
+最大值: 2^63 约9*10^18

Float

Double

float 和double 主要区别

如果不声明,默认小数为double类型,所以如果要用float的话,必须进行强转。

new Integer(1) 与 Integer.valueOf(1) 区别

对象池机制

为了提高性能,Java 在 1.5 以后针对八种基本类型的包装类,提供了和 String 类一样的对象池机制;
让我们看一下 Integer.valueOf(int i) 的源码,就很容易理解了:

public final class Integer extends Number implements Comparable<Integer> {  
public static Integer valueOf(int i) {        
  if (i >= IntegerCache.low && i <= IntegerCache.high)         
     return IntegerCache.cache[i + (IntegerCache.low)];        
  return new Integer(i);    
}}

基本类型对应的缓冲池
Boolean:true , false
Short, Int, Long:-128 ~ 127
Byte, Character : \u0000 到 \u007F,也就是 0 ~ 127

上一篇 下一篇

猜你喜欢

热点阅读