java运算符的优先级别
一、运算符的优先级
运算符按照优先级别的高低排序分别是:自加/减运算符、 算术运算符、比较运算符、逻辑运算符、赋值运算符。具体请参考下表:
|
顺序 |
运算符 |
|
1. |
括号,如 ( ) 和 [ ] |
|
2. |
一元运算符,如 -、++、- -和 ! |
|
3. |
算术运算符,如 *、/、%、+ 和 - |
|
4. |
关系运算符,如 >、>=、<、<=、== 和 != |
|
5. |
逻辑运算符,如 &、^、|、&&、|| |
|
6. |
条件运算符和赋值运算符,如 ? :、=、*=、/=、+= 和 -= |
下面这个例子:
int i=1,j=2;
int a=i+++j+++i++;
System.out.println(a);
看着就让人头晕了,我们可以修改以下这样。
int a=(i++)+(j++)+(i++);
二、类型转换
java有两种类型的转换,分别是自动类型转换和强制类型转换。
1、自动类型转换
一般而言,java编译器还是比较智能的,对不同数据类型的参数,会自动转换类型,为了不至于数据的丢失,一般是较窄的数据类型转换为较宽的数据类型。也就是说如果一个short类型和一个int类型相加,那么结果就会自动转换为int类型,因为int比short数位要宽,再有如果int类型和float类型相加,那么结果是float类型,因为浮点型比整型所能表示的数据要宽。另外我们也可以把一个较窄的数据类型直接赋值给一个较宽的数据类型。总结一下,在赋值或者计算时,只要满足以下条件,就会发生自动类型转换:
(1)两种类型兼容;
(2)目标类型大于源类型;
例如:
(1)byte、char和 short 型值可提升为 int 型。如果一个操作数为 long 型,则整个表达式结果为 long 型
(2)如果一个操作数为 float 型,则整个表达式结果为 float 型。而如果一个操作数为 double 型,则整个表达式结果为 double 型
2、 强制类型转换
强制转换用于显式类型转换。但是强制类型转换需要小心使用,因为如果被转换的值的数据类型大于其目标类型,就会丢失部分信息。类型强制转换使程序将变量视为某种类型,尽管此变量中包含的是另一类型的数据,其具体格式如下:
(类型名)表达式
float a = 346.756565f;
int b = (int) a + 10; // 将 c 转换为整型
System.out.println(b);
最后的结果是356,浮点型a后面的所有的小数都会丢失。
java运算符的优先级别的更多相关文章
- java运算符优先级记忆口诀
尊重原创:(口诀)转自http://lasombra.iteye.com/blog/991662 今天看到<java编程思想>中的运算符优先级助记口诀,不过"Ulcer Addi ...
- Java笔记2-数据类型,变量,Java运算符
我们编写软件,目的是为了高效的操作(增,删,改,查)数据. 数据类型 1.基本类型(8种)byte 字节型 -128~127short 短整型 -32768~32767int 整型 -21474836 ...
- Java运算符优先级(转)
转自:http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 说明 ...
- 【转】Java运算符优先级
原文网址:http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 ...
- java运算符优先级与流程控制
1. Java 的方法Method (函数 Function), 功能, 动作 1) 方法就是函数: y=f(x)=3x+6; 2) 方法的语法 (修饰词)(返回值类型)(方法名)(参数列表){ ...
- Java基本语法-----java运算符的优先级与结合性
这是本人以前的上学期间java 运算符这块知识的总结的,截图存到了word里,大家将就看下吧(不会用Markdown的表格 不然就在写一遍了 T T). [正在看本人博客的这位童鞋,我看你气度不凡,谈 ...
- Java 基本语法---Java运算符
Java 基本语法---Java运算符 0. 概述 Java中的运算符主要分为以下几种: 算术运算符 赋值运算符 关系运算符 逻辑运算符 条件运算符 位运算符 其他运算符 1. 算术运算符 操作符 描 ...
- [转]Java 运算符的优先级
Java 运算符的优先级(从高到低) 优先级 描述 运算符 1 括号 ().[] 2 正负号 +.- 3 自增自减,非 ++.--.! 4 乘除,取余 *./.% 5 加减 +.- 6 移位运算 &l ...
- Java运算符使用总结(重点:自增自减、位运算和逻辑运算)
Java运算符共包括这几种:算术运算符.比较运算符.位运算符.逻辑运算符.赋值运算符和其他运算符.(该图来自网络) 简单的运算符,就不过多介绍使用了,可自行测试.关于赋值运算,可以结合算术运算和位运算 ...
随机推荐
- Fluter基础巩固之Dart语言详解<二>
继续学习枯燥的Dart语言语法,目前的耐得住寂寞是为了将来学得“爽”做准备的!!! 异常: Dart 提供了 Exception 和 Error 类型, 以及一些子类型.还可以定义自己的异常类型.但是 ...
- 201871020225-牟星源《面向对象程序设计(JAVA)》第二周学习总结
正文: 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-dai ...
- split分割字符串返回字符串数组
<script type="text/javascript"> var str='liu jin yu'; var str1=str.split(' '); docum ...
- FFT和NTT学习笔记_基础
FFT和NTT学习笔记 算法导论 参考(贺) http://picks.logdown.com/posts/177631-fast-fourier-transform https://blog.csd ...
- contest3 CF994 div2 ooxxx? oooox? ooooo?
题意 div2 C (x)(o) 在一个平面上, 给一个水平的正方形和一个\(45^.斜\)的正方形 求是否相交(共点也算), 坐标正负\(100\)以内 div2 D (x)(o) \(A,B\)两 ...
- nuxtjs如何部署cdn及区分发布环境
1.部署cdn nuxt build 后的前端资源都会存放在.nuxt/dist/ 文件夹下面 img 目录存放的是使用到的图片资源,无论是开发中存放在 assets 文件夹里的,还是static里 ...
- mysql实现行转列功能
实现从图一转行成图二的功能: 图一: 图二: 建表语句: CREATE TABLE `t_user_score` ( `id` ) NOT NULL AUTO_INCREMENT COMMENT '主 ...
- python总结六
1.python中主要存在四种命名方式: object #公用方法 _object #半保护 #被看作是“protect”,意思是只有类对象和子类对象自己能访问到这些 ...
- 全球 IPv4 地址正式耗尽
重要消息: 就在 2019/11/25 UTC+1 15:35 时,一封来自欧洲 RIPE NCC 的邮件中得到确认:全球的IPv4地址已经彻底耗尽. IPv4 大家应该很熟悉了,就是我们平常所知道的 ...
- 解决github打不开
今天重庆电信的“临时工”把github废了. 主要是github.githubassets.com和customer-stories-feed.github.com访问不到 通过修改host的方式上g ...