JAVA数据类型

JAVA数据类型

java的标识符的命名规则

做到"见名知意"
只有由
       1)26个字母(区分大小写)
       2)0~9的数字
       3)$(美元符号)
       4)_(下划线)
组成
 注意事项
       1)不能数字打头
       2)不能使用关键字
       3)严格区分大小写
       

java的数据类型

java是一种强类型语言,必须先定义后使用

  数据类型
         基本数据类型
                      整数型                          字节数               取值范围
                            字节型 byte                 1               2^7-1 ~ -2^7
                            短整型 short                2               2^15-1 ~ -2^15
                            整型   int                  4               2^31-1 ~ -2^31
                            长整型 long                 8               2^63-1  ~ -2^63
                      浮点型
                            单精度浮点型 float           4
                            双精度浮点型 double          8        
                      字符型 char                       2                0 ~65536
                      布尔型 boolean                    1               只有true和false
                       
         引用数据类型
                      类
                      数组
                      接口
                      
        定义long类型变量,变量值必须有L(大小写都可以)
        定义float类型变量,变量值必须有F(大小写都可以)
          byte  a = 100;
          short b = 200;
          int   c = 300;
          long  d = 400L;
          
          float w1 = 10.12132L;
          double w2 = 231.128131;
          
      比较时最好避免使用浮点数,使用java提供BigDecimal
       浮点数 有限  舍入 离散   接近但不等于
       
       

进制转换

  进制
      二进制    "逢二进一"        用0b表示
      八进制    "逢八进一"        用0表示
      十进制    "逢十进一"        
      十六进制  "逢十六进一"       用0x表示
  
  8421码
  除基取余法
  
  计算机内,有符号数有3种表示法:原码、反码和补码。所有数据的运算都是采用补码进行的。
    二进制表示法,最高位为符号位;"0"表示正数,"1"表示负数。
    正数的原反补一样
    负数的原码  最高位为1
         反码  除符号位外全部取反
         补码  在反码的基础末尾+1
         
   例如:已知某数X的原码为10110100B,试求X的补码和反码。
       0B代表二进制
       反码  1100101
       补码  1100110
       
      

类型转换

 范围小                                            范围大
 byte,short,char --->int ---> long --->float --->double
 
 byte,short,char参与运算,先转换成int类型

强制类型转换(隐式类型转换):将范围大的类型转换范围小的类型
自动类型转换(显示类型转换):将范围小的类型转换范围大的类型

 注意事项:
    1)不能对布尔类型进行转换
    2)不能将对象类型转换成不相干类型
    3)强制转换,可能存在内存溢出和精度问题
  
 数据类型常见的面试题
    byte b1=3,b2=4,b;
    b=b1+b2;
    b=3+4;
   哪句是编译失败的呢?为什么呢?
     b=3+4 ,3和4都是常量,所以java在编译时期会检查该常量的和是否超出byte类型的范围。如果
     没有可以赋值。
     b=b1+b2不可以,是因为b1和b2是变量,因为变量的值会变化,不确定具体的值,所以默认使用
      int类型进行存储。                                                                         
   面试题
      byte b = 130;有没有问题?如果我想让赋值正确,可以怎么做?结果是多少呢?
       有问题,byte取值范围为 127 ~ -128 会溢出,需要强转
       byte b = (byte)130;
      "计算底层运算通过补码来进行的"
      最高位符号位
      补码: 1  0000010
      反码: 1  0000001
      原码: 1  1111110
      结果为 -(2^6+2^5+2^4+2^3+2^2+2^1+0)= -126; 
                                                                                                                                                                                                                                                                             
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值