-
2021-04-23 09:34:01
Java 运算符优先级
优先级
运算符
名称
1
( )
括号
2
[ ] , 。
后缀运算符
3
- (一元运算符,取负数) , ! , ~ , ++ , --
一元运算符
4
* , / , %
乘,除,取模
5
+, -
加,减
6
>> , << , >>>
移位运算符
7
> , < , >= , <= , instanceof
关系运算符
8
==,!=
等于,不等于
9
&
按位与
10
^
按位异或
11
|
按位或
12
&&
逻辑与
13
||
逻辑或
14
?:
条件运算符
15
=(包括各与“=”结合的运算符,例如:+=)
赋值运算符
总偶然用到与操作符,竟忘了他的优先级。 Mark 一下。
相关文档:
在开发项目工程时,经常会遇到保存某些值放到系统的cache中,现用Cache.java和CacheManager.java来管理。具体代码分别如下:
public class Cache {
private String key;
private Object value;
&n ......
1. socket通信:有客户端和服务端的socket代码。
2.
多线程:客户端和服务端各用一线程发送信息;服务端另有一监听线程,用于把超时的信息删除。
这里应用到了同步,使两个线程可以操作同一个map。
代码:(类全在同一个包内)
server端:
import java.io.BufferedReader;
import java.i ......
java中字符串转换成时间格式总结
关键字: java 字符串 时间 格式
通过长时间的对时间不同格式的转换,自己觉得其实就是对毫秒数的操作
Java代码
System.currentTimeMillis()
System.currentTimeMillis()
得到从1970年1月1日到现在的毫秒数,就可以转换成各种的形式。
有这样一个字符串:“ ......
JAVA文件操作总结
File类
File f = new File(path);
path为实际路径,该路径可以是文件,或文件夹,也可以是不存在的。
f.exists() 可以判断该路是否存在。
f.isDirectory() 可以判断是否是文件夹。
f.mkdirs(); 递归创建文件夹
File和输入输出流之间纽带FileInutStream,FileOutputStream
URL url = new URL(strUr ......
php和java通用sql语句法
SELECT max(id) from table
该方法在多线程等情况下可能会造成不正确。
java三种方法
1、根据ps的getGeneratedKeys
PreparedStatement ps = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS); //红色是关键
ps.executeUpdate(); //执行后
ResultSet rs = ps.getGeneratedKeys ......
更多相关内容 -
Java运算符优先级
2021-08-12 17:15:51Java运算符优先级 每种同类型的运算符都有内部的运算符优先级,不同类型的运算符之间也有相应的优先级顺序。一个表达式中既可以包括相同类型的运算符,也可以包括不同类型的运算符或者函数。当多种运算符出现在同...Java运算符优先级
每种同类型的运算符都有内部的运算符优先级,不同类型的运算符之间也有相应的优先级顺序。一个表达式中既可以包括相同类型的运算符,也可以包括不同类型的运算符或者函数。当多种运算符出现在同一个表达式中时,应该先按照不同类型运算符间的优先级进行运算。各种运算符间的优先级如下:数值运算符、字符串运算符、关系运算符、逻辑运算符。可以用括号改变优先级顺序,使得括号内的运算优先于括号外的运算。对于多重括号,总是由内到外强制表达式的某些部分优先运行。括号内的运算总是最优先计算。
一、优先级
-
优先级与求值顺序无关。如a+b && b*c,虽然“乘”优先级最高,但这个表达式求值顺序是从左到右。
-
优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。
-
相同优先级中,按结合性进行结合。大多数运算符结合性是从左到右,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。
-
基本的优先级需要记住:
-
先算术运算,后移位运算,最后位运算。请特别注意:1
-
逻辑运算最后结合。
-
二、运算符
运算符是一种特殊的函数,它们具有一个或多个操作数并返回相应的值。操作数是被运算符用作输入的值,通常是字面值、变量或表达式。运算符可以是一元、二元或三元的,一元运算符有1个操作数,二元运算符有2个操作数,三元运算符有3个操作数。
Java运算符优先级
运算符 结合性 [ ] . ( ) (方法调用) 从左向右 ! ~ ++ – +(一元运算) -(一元运算) 从右向左 * / % 从左向右 + - 从左向右 > >>> 从左向右 < >= instanceof 从左向右 == != 从左向右 & 从左向右 ^ 从左向右 | 从左向右 && 从左向右 || 从左向右 ?: 从右向左 = 从右向左 一个特殊的例子:
public class stlye { public static void main(String[] args) { int a=10,b=6; System.out.println("改变之前的数:a="+a+",b="+b); a-=b++; System.out.println("改变之后的数:a="+a+",b="+b); } }
运算结果为:
改变之前的数:a=10,b=6
改变之后的数:a=4,b=7
因为b++运算中先执行++,再返回后置++运算表达式(b++)的返回值(6)给-=运算符。
在这个程序中a-=b++等于a=a-b++=10-6,所以a=4。
-
-
Java运算符优先级顺序
2019-10-01 21:56:28Java运算符优先级顺序 图集说明: 1.算数运算符 补充两个: 单目运算符 正号 +10 10 单目运算符 负号 n=10;-n; -10 (1)除法规则 / 若两个操作数都是整型,结果也是整型,除数不能为0 若两个操作数有一个是浮点...Java运算符优先级顺序
图集说明:
1.算数运算符
补充两个:
- 单目运算符 正号 +10 10
- 单目运算符 负号 n=10;-n; -10
(1)除法规则 /
若两个操作数都是整型,结果也是整型,除数不能为0
若两个操作数有一个是浮点型,结果是浮点型
System.out.println(10/3);
//System.out.println(10/0); //除数不能为0,错误
System.out.println(10/3.0); //
System.out.println(10.0/0); //Infinity,正无穷大
System.out.println(-10/0.0); //-Infinity ,负无穷大(2)取模规则 %
求余数运算
结果的符号与被取模数有关,与模数无关
System.out.println(5.5 % 3.2);
System.out.println(5 % 0.0); //NaN ,非数
System.out.println(-5 % 0.0); //NaN ,非数
System.out.println(0 % 5.0);
System.out.println(0 % 0.0); //NaN ,非数
//System.out.println(5 % 0);
System.out.println((-5) % 3);
System.out.println(5 % (-3));2.自增,自减规则
单目运算符
操作数只能是变量,不能是常量和表达式
分为前缀和后缀
前缀 先算后用
后缀 先用后算
//int n =1++;
int a =1;
System.out.println(a);
int b = ++a+2;
System.out.println(“a=”+a+",b="+b);
int c = a-- +2;
System.out.println(“a=”+a+",c="+c);3.赋值运算符
规则:
为变量指定值,不能为常量或表达式赋值= 符号两边的数据类型不一致时,使用自动类型转换或强制类型转换原则处理
int n = 10; //声明并赋值
int a1,b1,c1; // 连续声明
a1=b1=c1=10; // 多个已声明变量连续赋值
//int x=y=z=10; //错误
除了 = 运算符外,都是扩展赋值运算符,编译器先运算在赋值
int a2=1;
a2 +=1; // a= ? 表达式等价于?
a2 *=2; // a=? 表达式等价于?
如果两种类型不兼容,或者目标类型小于原型时,要进行强制类型转换
使用扩展运算符时,强制类型转换自动完成,不需要显示强制转换
byte b3=1;
//b3= b3+1; // 常量1 是int 型,b+1是int 型
b+=1; // 自动完成强制类型转换4.关系运算符
结果是布尔型 Boolean
除== 外 其他的运算符都只能是数值类型
只要是数值类型,不管数据类型是否相同,都能比较
基本类型的常量和变量不能和引用类型的常量和变量比较
Boolean 类型的常量和变量不能和其他任意类型的常量变量使用== 比较
引用类型之间没有继承关系也不能用== 比较
boolean b4 = 1<2.0; //结果为:
//boolean b5 =“0” <= “0”; // < 不支持引用类型比较
boolean b6 =“0” == “0”; // == 支持字符串比较
//boolean b7 = true!=0; //不支持布尔与其他类型比较
boolean b8 = true == false;5.逻辑运算符
规则:
& 与 && 运算符都是与 两个操作数都是true 结果才是true,其他为false
& 两个操作数都进行判断
&& 前面的为false,后面的不判断| 和 || 都表示或操作, 两个操作数只要有一个为true 结果就位true,否则为false
| 两个操作数都进行判断
|| 前面的为true,后面的不判断^ 为异或运算,异1同0
6.位运算符补充:
<< 左移 00000001<<2 0000 0100
1000 0001 <<2 0000 0100右移 0000 0100>>2 0000 0001
1000 0100 >>2 1110 0001无符号右移 0000 0100 >>>2 0000 0001
1000 0100 >>>2 0010 0001
规则:
只能操作整型变量或常量
& 参与按位与运算的两个操作数 对应的二进制位同为1 ,则结果为1,否则为0
| 参与按位或运算的两个操作数对应的二进制位有一个1 ,则结果为1,否则为0
~ 取反
^ 异1 同0
<< 左移 二进制位整体左移指定位数,后边补0,左边移出去的舍弃右移 二进制位整体右移指定位数,左边填充符号位(正0负1),右边移出去的舍弃
无符号右移 二进制位整体右移指定位数,左边填充0,右边的舍弃
对于低于int 型(byte short char)的操作数总是先转换为int型后再位移
对于int 型的位移,当位移数大于int 位数大于32 时,先用位移数对32求余,得到的余数才是真的位移数 a>>33 a>>1
Long 型位移,当位移数大于long 位数64时,先用位移数对64求余,余数为实际位移数
int n = -12>>>3;
System.out.println(n);
byte a =-12;
byte b = 3;
byte m =(byte)(a>>>b);
System.out.println(m); -
java运算符优先级记忆口诀
2021-12-23 04:34:52java运算符优先级记忆口诀单目乘除为关系,逻辑三目后赋值。
单目:单目运算符+ –(负数) ++ – 等
乘除:算数单目运算符* / % + -
为:位移单目运算符<< >>
关系:关系单目运算符> < >= <= == !=
逻辑:逻辑单目运算符&& || & | ^
三目:三目单目运算符A > B ? X : Y
后:无意义,仅仅为了凑字数
赋值:赋值= -
java运算符优先级
2018-06-07 10:21:09java中运算符的优先级 优先级记忆方法:单目乘除为关系,逻辑三目后赋值。...Java 中常用的运算符的优先级如下表所示: 级别为 1 的优先级最高,级别 11 的优先级最低。譬如,x = 7 + 3 * 2 得到的结... -
Java运算符优先级介绍!
2021-10-19 10:53:38运算符丰富是 Java 语言的主要...这套视频讲的都是Java基础,简单易懂,大家可以参考下(PS:运算符优先级在第48节) Java300集零基础适合初学者视频 下表中具有最高优先级的运算符在最上面,最低优先级的在最下... -
java运算符优先级排序正确的是哪些?
2021-02-28 19:05:03但在Java运算符中也有优先级分别,你知道都是谁先谁后吗?跟小编一起来看看吧。Java中的优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。相同优先级中,按结合顺序计算。大多数运算是... -
Java运算符优先级及结合性
2021-05-20 15:37:22优先级 运算符 结合性 1 ()[] 从左到右 2 ! +(正) -(负) ~ ++ – 从右到左 3 * / % 从左到右 4 +(加) -(减) 从左到右 5 << >> >>> 从左到右 6 < <= > >= ... -
Java语言运算符优先级表
2021-07-06 15:30:00运算符的优先级(从高到低) 优先级 描述 运算符 1 括号 ()、[] 2 正负号 +、- 3 自增自减,非 ++、–、! 4 乘除,取余 、/、% 5 加减 +、- 6 移位运算 <<、>>、>>> 7 大小关系 >、>=、&... -
Java:运算符优先级表
2020-09-26 09:13:27Java 运算符优先级表 1. Java 运算符优先级表 运算符 结合性 [ ] . ( ) (方法调用) 从左向右 ! ~ ++ -- +(一元运算符)- (一元运算符) ( )(强制类型转换)new 从右向左\color{red}{从右向左}从右... -
JAVA--算数运算符、位运算符、逻辑运算符、关系运算符、运算符优先级
2021-07-29 17:18:31五、运算符优先级 根据需要点击目录可直接跳转。 一、算数运算符 算术运算符用在数学表达式中,主要实现的是算术运算,如常见的加减乘除等。 表格中的例子中,变量a的值为 5,变量b的值为 3,变量i的值为 1: ... -
Java运算符及运算符的优先级
2021-03-06 21:20:37介绍Java语言中提供了很多运算符来操作变量,现总结以下七种:赋值运算符算术运算符关系运算符逻辑运算符位运算符三目运算符instanceof运算符一、赋值运算符赋值符号 " = "语法:变量名 = 表达式;可以和算术运算符... -
java运算符优先级排序
2017-09-22 15:10:34运算符的优先级(从高到低) 优先级 描述 运算符 1 括号 () [] 2 正负号 + - 3 自增自减,非 ++ -- ! 4 乘除,... -
Java运算符及运算符优先级
2021-02-26 16:51:49在数学中有加减乘除基本运算符,在计算机领域的java中也有运算符,运算符是一种功能的符号,在java中进行相关数据的运算,同样的,java运算符和数学中的一样也有运算的先后顺序,那么java运算符优先级是怎样的,是... -
关于java运算符以及优先级的整理
2022-05-21 00:45:34关于java运算符以及优先级的整理 -
Java运算符优先级以及相关计算
2020-12-30 19:59:35优先级 运算符 结合性 说明 1 ()、[]、{} 从左向右 表达式分组,数组索引和语句块 2 !、-、~、++、-- 从右向左 逻辑非,负号,非运算符,自加,自减 3 *、/、% 从左向右 相乘... -
java运算符优先级和结合性
2017-03-30 16:54:00运算符 结合性 [ ] . ( ) (方法调用) 从左向右 ! ~ ++ -- +(一元运算) -(一元运算) 从右向左 * / % 从左向右 + - 从左向右 << >&g... -
JAVA运算符优先级概念
2017-10-27 17:02:07运算符优先级 在一个表达式中可能包含多个有不同运算符连接起来的、具有不同数据类型的数据对象;由于表达式有多种运算,不同的运算顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,必须按...