`
街角处
  • 浏览: 23863 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

jdk源码分析之Number抽象类

 
阅读更多
1)关于Number类
  位置:java.lang包 
  类型:抽象类
  实现接口:java.io.Serializable
  构造方法:系统生成的默认的构造函数。
  Number类是 BigDecimal、BigInteger、Byte、Double、Float、Integer、Long 和 Short 类的超类
  Number 的子类必须提供将表示的数值转换为 byte、double、float、int、long 和 short 的方法。
2)方法
  1)intValue()
    抽象方法
    以int形式返回指定的数值。
    注意:这可能会涉及到舍入或取整
  2)longValue()
    抽象方法
    以long形式返回指定的数值。
    注意:这可能会涉及到舍入或取整
  3)floatValue()
    抽象方法
    以float形式返回指定的数值。
    注意:这可能会涉及到舍入
  4)doubleValue()
    抽象方法
    以double形式返回指定的数值。
    注意:这可能会涉及到舍入
  5)byteValue()
    普通方法
    以byte形式返回指定的数值。
    注意:直接将intValue()的返回值强制转换成byte类型,这可能会涉及到舍入或取整
    int类型的变量转换成byte的转换方式是:int类型变量的值模byte的取值范围的余数
    例如:int num = 258;
      byte b = (byte)num
             = 258%128=0余2
                 = 2
   
         int num = 258;
	 byte b = (byte)num;
	 System.out.println(b);
     

    
2

     
  6)shortValue()
    普通方法
    以short形式返回指定的数值。
    注意:直接将intValue()的返回值强制转换成short类型,直接截取。
   
  int num1 = 32770;
	 System.out.println(Integer.toBinaryString(num1));
	 short s = (short)num1;
	 /**
	  * 32770转换成二进制为:00000000_00000000_10000000_00000010
	  * 强制转换为short类型 将00000000_00000000直接截取剩下10000000_00000010 为负数的补码
	  * 转换成负数 10000000_00000010减1为 10000000_00000001 取反为11111111_11111110 转换成二进制为-32766
	  * */
	 System.out.println(s);
     

    
     -32766
     


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics