数据类型和运算符

一、数据类型
             基本数据类型
              引用类型       
(1)基本数据类型                                                               类型取值                      大小

           byte = 8 bit
                                                                        0(符号位) 0 0 0 0 0 0 0
                                                                        2^7 ~~ 128
                                                                        0-127   -128
           char 存储2byte                                  2^16符号位也存储数据       
                                                                
          boolean 布尔占用一个字节                                   true,false
         short短整形两个字节            2^16-1 
         int          4个字节
        long         8个字节              2^64-1
        float      4个字节
       double      8个字节
(2)引用类型:
接口
数组
还有一个特殊的null   null引用可以被转换成任何一个引用类型,不能被转换成基本类型;
基本类型大小类型取值
boolean true,false
byte1字节8位有符号整数-128----+127
char2字节16位UNicode字符Unicode 0 ~~Unicode 2 ^16 -1
short2字节16位有符号整数-32768(-2^15)~~+32767(+2^15-1)
int4字节32位有符号整数(-2^31)~~+(2^31-1)
long8字节64位有符号整数2^63 ~~2^63-1
float4字节32位浮点数1.4E-45 ~~ 3.4E +38,-1.4E -45 ~~ 3.4 +38
double8字节64位浮点数4.9E-324 ~ 1.7E +308, -4.9E~ 1.7E+308
java中有默认的类型(default)  int类型
char  a =‘a’//Unicode编码/GBK gb2312.。。          ----》 95 ----》 二进制---》01010110
浮点型:
static  float  f1 = 34f;         //单精度32位
static double d = 34d;        //双精度64位
注意浮点类型只是近似的存储。浮点类型是不精确的。使用浮点数是应遵循的原则:避免数量级相差巨大的数之间的加减运算避免等量判断
整形:
byte a = -128; //byte: -128~127
static int i= 34;   //
static  long l = 23l;//long后面加上L或者l   //8字节
static short  s = 45;
char代表字符类型,字符类型也是一种整数类型,相当于无符号整数类型;




数值中可以任意地方使用下划线分隔符;
二、数据类型之间的转换
自动转换(宽向类型转换)
强制转换(窄向类型转换)

(1)将低类型赋值给高类型时,就会执行自动类型转换,这种转换由编译器自动完成(因为这种转换是安全的),无需显式的使用类型转换符。当然,也可以使用,只不过是画蛇添足的。
将高类型赋值给低类型时,则必须使用类型转换运算符,因为这种转换是不安全的,可能会造成数据的丢失。
类型提升:
自动转换无需额外操作,自动由编译器完成,而强制转换需要使用类型转换运算符“(类型)”
(2)相同类型的变量、常数运算,结果还是原类型。(byte,char,short之间的运算会提升为int类型)
(3)不同类型的变量、常数运算,结果的类型为参与运算的类型中精度最高者。
表达式的数据类型自动提升规则byte,short,char型的值被提升int型
操作数最高类型为long类型,结果为long类型
操作数最高类型为float类型,结果为float型
操作数最高类型为double类型,结果为double
三、运算符:
(1) 算术运算符             +- * /          %
        关系运算符    <  >  <=  >= !=      ==     instanceof返回值类型:boolean
       逻辑运算符    && 逻辑与 (短路与)  ||  (短路或)    |(按位或)  !         &按位与     &&计算完前面那个如果为家不计算后面那个    &计算完前面的如果为假也会计算后面的那个;(boolean)
      赋值运算符  =
      位运算符    <<   >>(左移右移)    正数左移*2       右移/2   负数 
   
取反~
         0--- -1
         1   ---- -2
         2     ---- -3
         4 --- -5
一元运算符:  ~  !  ++ --    ++a       a++
三元运算符 ?:    a>b?a:b
String s = "I AM an Object!";
boolean isObject = s instanceof Object;
我们声明了一个String对象引用,指向一个String对象,然后用instancof来测试它所指向的对象是否是Object类的一个实例,显然,这是真的,所以返回true,也就是isObject的值为True。
&& & 区别       &&是符号位不动,&符号位跟着一起动
表达式
b4 = b4 + i;
与b4+=i有区别;
运算符优先级
最高:一元运算符   ++   --    !
关系
逻辑
最低:赋值运算符


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值