一、运算符的优先级

运算符按照优先级别的高低排序分别是:自加/减运算符、 算术运算符、比较运算符、逻辑运算符、赋值运算符。具体请参考下表:

顺序

运算符

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运算符的优先级别的更多相关文章

  1. java运算符优先级记忆口诀

    尊重原创:(口诀)转自http://lasombra.iteye.com/blog/991662 今天看到<java编程思想>中的运算符优先级助记口诀,不过"Ulcer Addi ...

  2. Java笔记2-数据类型,变量,Java运算符

    我们编写软件,目的是为了高效的操作(增,删,改,查)数据. 数据类型 1.基本类型(8种)byte 字节型 -128~127short 短整型 -32768~32767int 整型 -21474836 ...

  3. Java运算符优先级(转)

    转自:http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 说明 ...

  4. 【转】Java运算符优先级

    原文网址:http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 ...

  5. java运算符优先级与流程控制

    1. Java 的方法Method (函数 Function), 功能, 动作 1) 方法就是函数: y=f(x)=3x+6; 2) 方法的语法   (修饰词)(返回值类型)(方法名)(参数列表){  ...

  6. Java基本语法-----java运算符的优先级与结合性

    这是本人以前的上学期间java 运算符这块知识的总结的,截图存到了word里,大家将就看下吧(不会用Markdown的表格 不然就在写一遍了 T T). [正在看本人博客的这位童鞋,我看你气度不凡,谈 ...

  7. Java 基本语法---Java运算符

    Java 基本语法---Java运算符 0. 概述 Java中的运算符主要分为以下几种: 算术运算符 赋值运算符 关系运算符 逻辑运算符 条件运算符 位运算符 其他运算符 1. 算术运算符 操作符 描 ...

  8. [转]Java 运算符的优先级

    Java 运算符的优先级(从高到低) 优先级 描述 运算符 1 括号 ().[] 2 正负号 +.- 3 自增自减,非 ++.--.! 4 乘除,取余 *./.% 5 加减 +.- 6 移位运算 &l ...

  9. Java运算符使用总结(重点:自增自减、位运算和逻辑运算)

    Java运算符共包括这几种:算术运算符.比较运算符.位运算符.逻辑运算符.赋值运算符和其他运算符.(该图来自网络) 简单的运算符,就不过多介绍使用了,可自行测试.关于赋值运算,可以结合算术运算和位运算 ...

随机推荐

  1. SQL Server 修改表结构(转载)

    SQL Server 修改表结构 本文链接:https://blog.csdn.net/petezh/article/details/81744374 查看指定表结构 exec sp_help Rep ...

  2. 跟着9张思维导图学习Javascript js 关键字和保留字 css3中的BFC,IFC,GFC和FFC

    跟着9张思维导图学习Javascript   学习的道路就是要不断的总结归纳,好记性不如烂笔头,so,下面将 po 出我收集的 9 张 javascript 相关的思维导图(非原创). 思维导图小ti ...

  3. pandas 之 groupby 聚合函数

    import numpy as np import pandas as pd 聚合函数 Aggregations refer to any data transformation that produ ...

  4. 【HttpServlet】HttpServlet类

    创建时间:6.15 HttpServlet 但在实际开发中,我们不会直接去实现Servlet接口,因为那样需要覆盖的方法太多,    我们一般创建类继承HttpServlet 实现步骤: 1)创建类继 ...

  5. 洛谷P2463 [SDOI2008]Sandy的卡片(后缀数组SA + 差分 + 二分答案)

    题目链接:https://www.luogu.org/problem/P2463 [题意] 求出N个串中都出现的相同子串的最长长度,相同子串的定义如题:所有元素加上一个数变成另一个,则这两个串相同,可 ...

  6. django 权限设置

    关于权限: 首先明确权限是为了限制其他访问的url 通过在models使之关联的表再通过关联表的权限来permissions的url 来检测url的访问 一. 需要三个类五张表 from django ...

  7. wordpress迁移后登陆时出现Forbidden You don’t have permission to access /wp-login.php on this server

    之前在vps上,最近迁移到了php虚拟主机上,迁移后发现无法登陆后台出现403:Forbidden You don’t have permission to access /wp-login.php ...

  8. flask实战-个人博客-表单

    表单 下面我们来编写所有表单类,personalBlog中主要包含下面这些表单: 登录表单: 文章表单: 评论表单: 博客设置表单: 这里仅介绍登录表单.文章表单.分类表单和评论表单,其他的表单在实现 ...

  9. opencart卸载语言包要记得在后台进行设置否则会出错

    今天ytkah在一个项目中把中文包卸载了,但是前端购买按钮变为空了,研究了一遍发现要把system - localisation - languages中的对应语言删除才可以.正确的卸载语言步骤是1. ...

  10. 微信公众平台iPhone版内测开始了

    5月9日晚些时候自媒体人收到了微信公众平台iPhone版的内测邀请,微信公众平台iPhone版可在手机上写图文,快速查看并回复粉丝消息.留言和赞赏,新建群发.查看群发历史和今日数据,这些功能很实用了, ...