JavaSE的第六步 —— 运算符优先级问题以及类型转换

一、运算符优先级
一般来说不需要刻意去记这些运算符的优先级,当你对这些运算的先后顺序存在疑惑的时候,不需要多想什么,直接使用()将之括起来就好
但大体上的优先级顺序还是需要了解一下的
排在首位的就是括号运算符,无论什么时候,你都可以相信括
接下来的运算符就是①、[{一元运算符中的 !、+、-}、②、{位逻辑运算符 ~}、{自增、自减运算符 ++、--}]
③优先级排行第三的是算术运算符中的 、/、%这三种
④紧随其后的就是算术运算符中剩下的两种 +、-
⑤之后是位左移和右移运算符 >> <<
⑥下来是关系运算中的 >、>=、<、<=这四种运算符
⑦而== 与 != 运算符和算数运算符中的+-一样排在后边一级
⑧位运算符、逻辑运算符 &
⑨位运算符、逻辑运算符 ^
⑩位运算符、逻辑运算符 |
⑪逻辑运算符 &&
⑫逻辑运算符 ||
⑬?: 三目运算符
⑭=、+=、-=、
=、/=、%= 赋值运算符、扩展运算符

二、类型转换
类型转换通常分为两种一个是自动类型转换。
另一个就是强制类型转换

	①、自动类型转换
	自动类型转换,通常是由小精度转变为大精度
	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。
posted @ 2024-02-19 23:00  从零开始的学习之路  阅读(53)  评论(0)    收藏  举报