常量,变量,a++,++a,+=等

常量:数据在程序里面进行运算时不能发生改变的数据,成为常量。
变量:可变动的数据。
变量的定义:  数据类型   变量名   =  初始值。
基本数据类型:整数型:byte              1字节
                                       short              2字节
                                       int                  4字节
                                       long               8字节  整数后跟一个l(小写的L)    例如:99999999999999999999999l
                          浮点型:flot                4字节  数字结尾跟一个f   例如:9.6f
                                        double            8字节
                          布尔类型:boolean    1字节
                          字符型:char              2字节
变量运算时的坑:(int以下的数据类型运算时所出现的坑)
byte  a=3;
a=a+2;此时会出现精度缺失,因为整数2类型默认为int,进行运算时a会自动提升类型为int,当两个都是int类型是再进行运算,然后int类型赋值给byte类型会出现精度缺失的问题(二进制中byte只占1个直接int占4个字节,需要把4个字节强制赋值到1个字节中去则会只保留二进制右边的1个字节,自动把二进制左边的字节省略掉)
此时就需要强制转换:a=(byte)(a+2);

-----------------------------------------------------------------------------------------------------

byte a =3;
byte b=2;
byte c;
c=a+b;此时也会报精度溢出的错误,原因是因为进行运算的是变量,从而无法判断其变量值是否在byte这个范围中并且两组进行运算会提升为int类型进行运算,所以需要强制转换。
更改为:c=(byte)(a+b);
-----------------------------------------------------------------------------------------------------

int a=3;
int b;
b=a++;
其结果为:a=4   b=3
a++;在运行时会按照以下的方式进行计算,因为a++是先把初始值预存,然后再自增,然后自增后,a=4,再把预存的初始值3赋值给b
temp a=3;
a=3+1;
b=temp;

-----------------------------------------------------------------------------------------------------

int a=3;
int b;
b=++a;

其结果为:a=4   b=4      ++a为直接自增后赋值

-----------------------------------------------------------------------------------------------------

int i=3;
i=i++;
其结果为:i=3  因为在计算时会把i的初始值3预存,然后计算i++=4,但是此时只是右边的计算才刚刚完成,预存的的初始值再赋值给i所以i=3;其公式为
temp i=3;
i=3+1;
i=temp;

-----------------------------------------------------------------------------------------------------

short  a=3;
a+=5;这个可以执行成功因为其执行时内部有自动转换过程。
a=a+5;这个会提示精度溢出,因为5是int类型,a会自动提升为int类型,所以需要人为强制转换

转载于:https://www.cnblogs.com/liyunchuan/p/10545242.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值