Java操作符
来源:互联网 发布:owncloud php组件 编辑:程序博客网 时间:2024/06/10 02:56
在最底层,Java中的数据时通过使用操作符来操作的。Java是建立在C++基础之上,Java在操作符上做了一些改进与简化。下面我们对操作符进行详解。
一. 操作符定义
操作符作用于操作数,生成一个新值,能够接受一个或多个参数,并产生一个新值。注意:几乎所有的操作符都只能操作基本类型的数据(Java基本类型数据)。例外的操作符是:"=","=="和"!=",这些操作符能操作所有的对象。
二. 赋值操作符
赋值使用操作符“=”。它的意思是将“=”号右边的值赋给左边。注意:右边可以是任意常数,变量或者表达式,左边必须是一个明确的变量,即为,左边必须有一个确定的物理空间去存储等号右边的值。
这里面有一些地方对初学者来说非常容易出错:
第一种情况:a = b;b = b+1;(a,b均为基本类型数据)此时a的值是否会变?
答案是:不会变;原因如下(引用Thinking IN Java):基本类型存储了实际的数值,而非指向一个对象的引用,在对其进行赋值的时候,直接将一个地方的内容复制到另外一个地方。其原来地方的改变不会影响后面的变量值。
第二种情况:a = b;(a,b均表示变量),b或者a改变时,其他是否会改变?
答案是:会变。原因如下:在对一个对象进行操作时,我们真正操作的对象是对象的引用,所以“a = b”是将b的引用复制给a,a与b都指向原来b指向的对象。我的理解是a与b都是起到指针的效果,a = b是将b指针指向的对象地址复制给a,a也指向了该对象,因此无论a或者b对对象进行操作,对象都会改变!
第三种情况:下面代码中a是否会改变?
void f(A a){ a.x = 'c';}public void static void main(String[] args){ A a = new A(); a.x = 'a'; f(a);System.out.println(a.x)}
答案是:会改变;实际上传递的是一个引用,所以还是会改变
三. 算术操作符
Java基本算术操作符与其他大多数语言是一样的,包括:加(+),减(-),乘(*),除(/),取模(%)。注意:整数除法会直接去掉结果的小数位,而不是四舍五入。
其余一些常见的一元操作符(例如:+=,--.++,)就不详细说明了,相信大家平时敲代码时会用到。
四. 关系操作符
关系操作符产生的是一个布尔结果,计算的是操作数之间的关系,包括:>,<,>=,<=,==,!=。这里我们就要说下==与equals的区别了(笔试面试中经常被问):
Java逻辑操作符:&&(与),||(或),!(非)。&&的仅在两边都为true时,返回true,否则返回false;||仅在两边都是false时,返回false,否则返回true。
六.按位操作符
按位操作符来操作整数基本类型数据中的单个bit,即为二进制数。按位操作符会对两个参数中对应的位执行布尔操作。Java按位操作符:
按位与(&):两个位置上的数均为1,则输出1;否则输出0
按位或(|):两个位置上的数只要有一个是1,则输出1;否则输出0;
按位非(~):取反操作
异或(^):两个位置上的数相同为0,不同为1。比如:一个整型数组里除了一个数字之外,其他的数字都出现了两次。请找出这个数字。
七. 移位操作符
移位操作符的对象也是二进制数,位移操作符只能用来处理整数类型的数据!!Java移位操作符:左移位操作符(<< n):按照符号右侧指定的位数将操作数向左移动,低位补0;右移操作符(>> n):向右移动,若操作数为正数高位补0,若为负数高位补1。无符号右移操作数(>>>),高位均补0。
- Java:操作符
- java位操作符
- java操作符
- Java操作符
- java中的&|^操作符
- java 位操作符
- Java操作符
- java操作符说明
- 3 java操作符
- 使用 Java 操作符
- Java操作符复习
- java 操作符
- java操作符
- java-位操作符
- java 位操作符
- java instanceof操作符
- Java +=操作符
- Java instanceof操作符
- jsp页面的前进刷新后退
- 分布式事务底层原理剖析
- git推送tag到远端服务器
- 防火墙设置
- Linux:解决Permission denied: make_sock: could not bind to address
- Java操作符
- JVM常量池及字符串==比较分析
- 获取屏幕大小、获取底部虚拟按键高度
- 数值的整数次方
- ViewController的生命周期分析和使用
- 第一个Spring MVC框架的hello world项目
- 小米手机在Android Studio运行出错集及其解决方案
- HIVE自定义UDF进行数据清理——IDEA
- 系统监控工具----Inotify-Tools