一、运算符优先级
一般来说不需要刻意去记这些运算符的优先级,当你对这些运算的先后顺序存在疑惑的时候,不需要多想什么,直接使用()将之括起来就好
但大体上的优先级顺序还是需要了解一下的
排在首位的就是括号运算符,无论什么时候,你都可以相信括号
接下来的运算符就是①、[{一元运算符中的 !、+、-}、②、{位逻辑运算符 ~}、{自增、自减运算符 ++、--}]
③优先级排行第三的是算术运算符中的 、/、%这三种
④紧随其后的就是算术运算符中剩下的两种 +、-
⑤之后是位左移和右移运算符 >> <<
⑥下来是关系运算中的 >、>=、<、<=这四种运算符
⑦而== 与 != 运算符和算数运算符中的+-一样排在后边一级
⑧位运算符、逻辑运算符 &
⑨位运算符、逻辑运算符 ^
⑩位运算符、逻辑运算符 |
⑪逻辑运算符 &&
⑫逻辑运算符 ||
⑬?: 三目运算符
⑭=、+=、-=、=、/=、%= 赋值运算符、扩展运算符
二、类型转换
类型转换通常分为两种一个是自动类型转换。
另一个就是强制类型转换
①、自动类型转换
自动类型转换,通常是由小精度转变为大精度
byte转换为short,short转换为int
char转换为int,
int转换为long,int转换为double
float转换为double
但是自动类型转换的时候有些数值转换是存在精度损失的:
像int转换为float的过程中,long转换为double的过程中
②、强制类型转换
可能会造成精度损失
如果你是想把byte a = (byte) 128,这就超出了byte所能表达的范围,
byte通常所表示的范围是-128~127之间,如果是无符号byte那么这样
写是可以的,但是在Java中并不像c语言那样存在无符号的byte。
标签:类型转换,优先级,int,运算符,转换,JavaSE,byte
From: https://www.cnblogs.com/startFromScratch/p/18022146