黑马程序员 基础之运算符
来源:互联网 发布:矢量图软件coreldraw 编辑:程序博客网 时间:2024/05/22 01:34
------- android培训、java培训、java学习型技术博客、期待与您交流! ----------
运算符的优先级
此资料由itjob教程网共享,如有转载使用请注明出处
Java支持一元和二元运算符。一元运算符对单一的操作数起作用,二元运算符对两个操作数起作用。假如没有运算符优先级规则的限制,下面的表达式可能得出几种不同的结果。
x = 15 + 3 * 2 - 14
下表按优先顺序列出了各种运算符:
优先级
结合性
运算符
描述
1
不适用
()
括号:强制次序
2
从右到左
++ --
前/后增减1(一元)
从右到左
+ -
加法 减法(一元)
从右到左
~
一元按位逻辑非
逻辑求补(一元)
从右到左
!
逻辑非
从右到左
(类名)
类型转换
3
从左到右
* / %
乘法、除法、求余
4
从左到右
+ -
加法、减法
5
从左到右
<<
>>
>>>
左移
右移(符号扩展)
右移(零扩展)
6
从左到右
< <=
> >=
instanceof
小于、小于等于
大于、大于等于
该类的一个实例对象
7
从左到右
== !=
相等、不相等
8
从左到右
&
按位与
9
从左到右
^
按位异或
10
从左到右
|
按位或
11
从左到右
&&
与
12
从左到右
||
或
13
从右到左
?:
三元条件
14
从右到左
=
赋值
15
从右到左
*= /= %= += -= <<= >>= >>>= &= ^= |=
赋值并运算
关于++i和i++:
例如:
Int a = 1;
a = a + 1; //a = 2;
可以变化为:
a += 1; //此时a = 3;
还可以变化为:
++a; // a = 4;
另有:
int b;
b = ++a; //则: b = 5, a = 5; a先自加后然后将a的值赋给b;
如果:
int c;
c = a ++; //则: c = 5; a = 6; a先将自己的值赋给c,然后自加1
逻辑表达式
位运算
Java编程语言支持整数数据类型的位运算,它们的运算符~、&、^和|分别表示位运算的NOT(为求反)、位AND、位XOR和位OR。
10110000 = ~01001111
00001101 = 00101101 & 01001111
01100010 = 00101101 ^ 01001111
01101111 = 00101101 | 01001111
逻辑运算符
运算符&& (定义为AND)和||(定义为OR)执行布尔逻辑表达式。请看下面的例子:
MyDate d = null;
if ((d != null) && (d.day() > 31)) {
// dosomething with d
}
注意:int到boolean不能自动转换。
int i = 1;
if ( i ) //generates a compile error
if (i != 0) // Correct
字符串连接
运算符 + 能够进行String对象的链接并生成一个新的String:
String salutation = "Dr. ";
String name = "Jack " +"Arthur";
String title = salutation + name;
最后一行的结果是:
Dr. Jack Arthur
如果+运算符中有一个自变量为String对象,则其它自变量将被转换成String。所有对象都可被自动转换成String,尽管这样做的结果可能是意义含糊的。不是串的对象是通过使用toString() 成员函数而转换成串的等价物的。
移位运算符
右移位运算符>>和>>>
Java编程语言提供了两种右移位运算符。
运算符>>进行算术或符号右移位。移位的结果是第一个操作数被2的幂来除,而指数的值是由第二个数给出的。例如:
128 >> 1 gives 128/2 1 = 64
256 >> 4 gives 256/2 4 = 16
-256 >> 4 gives -256/2 4 = -16
逻辑或非符号右移位运算符>>>主要作用于位图,而不是一个值的算术意义;它总是将零置于最重要的位上。例如:
1010 ... >> 2 结果是 111010 ...
1010 ... >>> 2 结果是001010 ...
在移位的过程中, >>运算符使符号位被拷贝。
注意:
如果移位运算符左侧操作数是int类型,将它们右侧的操作数模32。
如果移位运算符左侧操作数是long类型,将它们右侧的操作数模64。
因而, 任何int x, x >>> 32都会导致不变的x值, 而不是你可能预计的零。
>>>运算符仅被允许用在整数类型, 并且仅对int和long值有效。如果用在short或byte值上, 则在应用>>>之前, 该值将通过带符号的向上类型转换被升级为一个int。有鉴于此,无符号移位通常已成为符号移位。
左移位运算符(<<)
运算符<<执行一个左移位。移位的结果是:第一个操作数乘以2的幂,指数的值是由第二个数给出的。例如:
128 << 1 gives 128*21 = 256
16 << 2gives 16*22 =64
- 黑马程序员 基础之运算符
- 黑马程序员 .net培训_c#基础之运算符
- 黑马程序员--JAVA基础之运算符与表达式
- 黑马程序员_C#基础之变量、数据类型、运算符
- 黑马程序员-----java基础之数据类型和运算符
- 黑马程序员-c语言基础总结之运算符
- 黑马程序员——Java基础语法 之运算符
- 黑马程序员-----java基础概述之关键字、运算符
- 黑马程序员——C基础之算术运算符
- 黑马程序员——C基础之sizeof运算符
- 黑马程序员——C基础之位运算符
- 黑马程序员_java基础篇之运算
- 黑马程序员 Java基础<二> 运算符
- 黑马程序员_JAVA基础-运算符
- 黑马程序员--C语言基础-运算符
- 黑马程序员-----------C语言基础-----------运算符
- 黑马程序员————java基础--------java语法基础之运算符、关键字等
- 黑马程序员_java基础之概述,开发工具,基础(常量,变量.运算符)
- windows下的QT开发(学习一)
- 对于Android DEX文件详细说明
- Android 控件之ProgressBar进度条
- asp.net之DataList的使用方法,及分页(存储过程创建),编辑,更新,删除 .
- 面试题
- 黑马程序员 基础之运算符
- Qt中文显示
- oracle 11g 单实例打11.2.0.3.4 P14275605 PSU
- jsp知识点
- hdu 1003 之不断进步
- Java中堆和栈的区别
- 1模拟网易邮箱实现全选,全不的功能(服务端和客户端) 2 使用DataList实现 加入购物车,编辑,删除,更新,取消功能。要求连一个产品表。
- Tomcat的配置的说明
- java.lang.UnsupportedOperationException android.view.GLES20Canvas.clipPath(GLES20Canvas.java:451