java学习-基础(2)
来源:互联网 发布:mysql 韩顺平 百度云 编辑:程序博客网 时间:2024/05/17 03:28
一、基本运算符
1、“++”
int a=2 ,b,c;
b=a++;
System.out.println(a);
System.out.println(b);
c=++a;
System.out.println(a);
System.out.println(c);
结果为:3,2,4,4
怎么记住到底是先加还是后加,网上也有很多“偏方”,其实意思都差不多,我自己喜欢念:”a加加”或者”加加a”,先念到哪个,就先用哪个,念“a加加”,先念到“a”,所以先用a的值,在加加,“加加a”就先加加了,在用a的值。
一个特殊的例子:
int i=2;
i=i++;
System.out.println(i);
int j=2;
j=++j;
System.out.println(j);
结果为: 2 , 3。
下面这个还好理解,先加加,再赋值,确实是3,但是前面这个,不太好理解。
上图表示进行i++运算时,会先把i的值临时存储起来(图中temp),两个运算最终都会把值赋给i,但是,根据优先级,“++”优先级比“=”高,那么先进行“++”运算,并且把值赋给i,然后进行“=”运算,而等号运算使用的是临时值,再次把值赋给i,那最终i的值就是2了。
2、“+=”
int a=a+b;
int a+=b;
就单纯的执行这两条语句,不考虑编译器的优化的话,a=a+b的执行效率是低于a+=b的,因为它多进行了一步中间变量的操作,而且会多占用一个变量的空间。而Java编译器默认对其进行了优化,优化之后两条语句都当做 a+=b来执行了,所以实际上是没有任何却别的。
其实,“+=”还有一个好处是它底层包括了强制类型转换,
a+=b等价于a=(int)(a+b),所以,直接int a=a+b可能会遇到类型转换异常的问题,而a+=b不会。
3、“&”,“&&”,“|”和“||”
“&”和“&&”两个逻辑运算符功能相同,但是运算方式有点区别,“&”不管左边运算结果是true or false,都继续运算右边,而“&&”一旦左边运算结果为false,右边就不再运算,直接输出false。“|”和“||”同理。
- java基础学习(2)
- java基础学习(2)
- Java学习基础(2)
- java基础学习(2)
- java学习-基础(2)
- Java基础学习2
- java基础学习2
- Java 基础学习2
- java基础学习2
- 黑马程序员 -- Java基础学习(2)
- java基础学习笔记(2)
- 学习总结2(java基础)
- java基础学习(12)容器-2
- java基础2学习日志
- java基础学习笔记2
- java基础学习笔记2
- java多线程基础学习2
- java基础学习笔记2
- BitmapFactory.Options详解
- CentOS yum源默认安装路径
- pycharm使用总结
- 性能测试应该怎么做?
- 将源主机动态迁移到目的主机
- java学习-基础(2)
- nodejs代理
- 学习网络爬虫是遇到的问题之系统找不到指定的路径
- Retrofit学习教程(2)-Android基础验证
- android-嵌套滚动和自定义behavior。
- React-Native开发环境搭建
- 底部弹出popUpWindow
- OpenGL 实现模拟太阳系运动
- 制作字体图标