数据类型和运算符

一、数据类型
             基本数据类型
              引用类型
(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)引用类型:
接口
数组
基本类型大小类型取值
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;
二、数据类型之间的转换
自动转换(宽向类型转换)
强制转换(窄向类型转换)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值