算数运算符

加号:在操作数值、字符、字符串时其结果是不同的,当两个字符相加得到的是ASCII码表值, 当两个字符串相加时表示将两个字符串连接在一起,从而组成新的字符串。

除号:整数在使用除号操作时,得到的结果仍为整数(小数部分忽略),当整数除以0的时候,会引发算术异常。

正无穷大(Infinity):当一个正浮点类型数除以0时,或者正整数除以0.0时;

负无穷大(-Infinity):当一个负浮点类型数除以0时,或者负整数除以0.0时;

NaN(Not a Number):当0.0除以0.0时;

取模(求余数):模数的符号忽略不计,结果的正负取决于被模数.

注意:无穷大和NaN都属于double浮点类型,但是所有正无穷大都是相等的,所有负无穷大也是相等的,NaN永远不相等,也不等于自己.

++和--详解:

都只能操作变量,不能操作常量.

++: 表示当前操作变量自己累加1.

--: 表示当前操作变量自己减去1

自增:++,递增操作符,使变量值增加1,有前置和后置之分,只能操作变量。

自减: -- ,递减操作符,使变量值减去1,有前置和后置之分,只能操作变量。

自增和自减具体操作是一样的,仅仅是一个是加1,一个是减1而已,

现在单讲++: 代码 result ++和 ++result,都将使result变量的值加1。 唯一的区别是: 前置(++result): 表示对result加1之后的结果进行运算, 后置(result++): 表示对result变量加1之前的值(原始值)进行运算。 如果仅仅执行简单的递增操作(只写result++或++result),那么选用任意一个都可以。

int a1 = 5;
a1 = a1 + 1;//
int temp = a1;
int b1 = temp;//
--------------------------
int a1 = 5;
int temp = a1;//
a1 = a1 + 1;//
int b1 = temp;//

赋值运算符

注意Java支持同时给多个变量赋值,好比支持同时声明多个变量一样,但因影响代码可读性,故也不推荐。

加等于:x  +=  5; 相当于 x  =  x  +  5,但还包括隐式类型转换。

public class Hello{
public static void main(String[] args){
int a, b, c; //不推荐
a = b = c = 5; //不推荐
short s = 5;
//s = s + 3;//编译出错,需要强转 s = (short)(s + 3);
s += 3;//编译OK,隐式类型转换
}
}

比较运算符

comparison operator

用于比较两个变量或常量之间的关系,比较运算符的结果是boolean类型,其操作格式为: boolean result = 表达式A 比较运算符 表达式B;

==:等于,若比较的是两个操作数都是数值类型,即使他们的类型不同,只要值相同就返回true。 当然==也可以比较引用数据类型,比较的是地址

三元运算符

三元运算符,表示有三个元素参与的表达式,所以又称为三目运算符,其语义表示if-else.

语法格式:X ? Y :Z,

其 中x为boolean类型表达式,先计算X的值,若X结果为true则整个三目运算表达式的结果是Y,否则就是Z。三目运算符结果的类型由Y和Z决定。

逻辑运算符

用于操作两个boolean类型的变量或常量,结果类型也是boolean。 语法格式为:boolean result = 表达式A 逻辑运算符 表达式B;

&:表示并且,当操作数A和B都为true结果才为true,否则结果result 是false。

&&:和&结果相同,具有短路效果,如果左边操作数A是false,result 一定为false,且不运行B的运算。

|:表示或者,A和B都为false结果result为false,只要有A或B是true,结果就是true。

||:和|结果相同,具有短路效果,如果左边操作数A是true,result一定为true,且不运行B的运算。

^:判断A和B是否不同,不同则为true,相同则为false。

!:取反,!true结果是false,!fasle结果是true。

位运算符

位操作是程序设计中对位模式按位或二进制数的一元和二元操作。

boolean的true和false,在底层使用一位的1和0来表示. true: 1 false:0

遵循规则:

&:参与运算的两个数,若相应位数的值都为1,则该位结果值是1,否则是0。

|:参与运算的两个数相应位中只要有一个1,结果就是1。

^:参与运算的两个数相应位相同则结果为0,否则为1。

~ :表示把每个二进制位的“1”换成“0”,把“0”换成“1”。

<<:将操作数的二进制码整体左移指定位数,左移之后的空使用“0”来补充。

>>:将操作数的二进制码整体右移指定位数,右移之后的空使用“符号位”来补充: 若是正数使用“0”补充; 若是负数使用“1”补充;(操作负数:取反,求补,操作,取反,求补)

>>>:将操作数的二进制码整体右移指定位数,右移之后的空位使用“0”来补充。

运算符操作的优先级

java基础 运算符的更多相关文章

  1. 菜鸡的Java笔记 第四 - java 基础运算符

    数学运算符,逻辑运算,三目运算,位运算 double d2 = 314e2; //采用科学计数法的写法,表示10的2次方.= 31400.0 代码写的越简单越好   简化运算符 代码:x=x+y 可以 ...

  2. [Java 基础]运算符和表达式

    Java运算符 (1)赋值操作符 赋值操作符(=)表示:取右边的值(即右值),把它复制给左边(即左值). 右值可以是任意的常量.变量或表达式(只要可以生成一个值). 左值必须是一个明确的.已命名的变量 ...

  3. Java 基础-运算符

    Java运算符 算术运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 运算符优先级 1. 算术运算符 运算符 运算 范例 结果 + 正号 +3 3 - 负号 b=4;-b -4 + 加 5+5 1 ...

  4. Java基础——运算符

    一.赋值运算符 在前面的学习中,用到最多的是什么呢?就是“=” .例如:int money=1000;   //储存本金 使用“=”将数值1000放入变量money的存储空间中.“=”称为赋值运算符. ...

  5. JAVA基础——运算符和表达式

    JAVA语言常用的运算符和表达式详解 一.简述 运算符是一种"功能"符号,用以通知 Java 进行相关的运算.譬如,我们需要将变量 age 的值设置为 20 ,这时候就需要一个&q ...

  6. Java基础-运算符(03)

    概念: 运算符:就是对于常量和变量进行操作的符号. 表达式:用运算符连接起来的符合java语法的式子,不同的运算符连接的表达式是不同类型的表达式. 运算符分类: 算数运算符(+  -  *  /  % ...

  7. Java基础—运算符(转载)

    转载自:Java运算符 计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量.我们可以把运算符分成以下几组: 算术运算符 关系运算符 位运算符 逻辑运 ...

  8. 二、java基础-运算符_控制语句_break_continue_return

    1.运算符 1)算术运算符:6个+ — * \ % ++  --2)关系运算符:6个>  >=  <  <=   ==   !=3)布尔运算符&&并且  ||或 ...

  9. Java基础——运算符(同c语言)

随机推荐

  1. ExtremeComponents源码解析(一)

    一.前言 因参与公司框架改造,在负责前端table组件选型时,原本选了jqGrid和Bootstraptable作为备选方案,评审会上,武哥提了EXtremeComponents,让我也去了解下,看下 ...

  2. 从一个ListBox中的元素点击导入另一个ListBox元素中

    先看效果图:

  3. 【bzoj1712】[Usaco2007 China]Summing Sums 加密 矩阵乘法

    题目描述 那N只可爱的奶牛刚刚学习了有关密码的许多算法,终于,她们创造出了属于奶牛的加密方法.由于她们并不是经验十足,她们的加密方法非常简单:第i只奶牛掌握着密码的第i个数字,起始的时候是Ci(0≤C ...

  4. 【bzoj1688】[USACO2005 Open]Disease Manangement 疾病管理 状态压缩dp+背包dp

    题目描述 Alas! A set of D (1 <= D <= 15) diseases (numbered 1..D) is running through the farm. Far ...

  5. select模型的原理、优点、缺点

    关于I/O多路复用: I/O多路复用(又被称为“事件驱动”),首先要理解的是,操作系统为你提供了一个功能,当你的某个socket可读或者可写的时候,它可以给你一 个通知.这样当配合非阻塞的socket ...

  6. Javascript-基础2

    1. Javascript 字符串里面的方法: obj.length 长度 obj.trim() 移除空白 obj.trimLeft() obj.trimRight) obj.charAt(n) 返回 ...

  7. 【转】c# 类反射简单操作

    转:http://www.jb51.net/article/25863.htm 首先建立一个测试的类  复制代码代码如下: public class MyClass { public int one ...

  8. YY的GCD 莫比乌斯反演

    ---题面--- 题解: $ans = \sum_{x = 1}^{n}\sum_{y = 1}^{m}\sum_{i = 1}^{k}[gcd(x, y) == p_{i}]$其中k为质数个数 $$ ...

  9. NOIP系列(续)

    马上就要告别noip了呢. 这道题大家都说dfs可过. 但是数据范围一眼状压啊. 首先假设点是有序的(选取有先后顺序),其实这并不影响什么,但是却省下大量的时间和代码长度. 然后状压,dp[i]表示状 ...

  10. 手脱ACProtect V1.4X(有Stolen Code)之补区段

    首先需要说的是,这个壳是ximo大神视频教程里的 0041F000 > pushad ; //程序入口点 0041F001 E8 call NgaMy.0041F007 0041F006 E8 ...