JAVA运算符法则


运算符是一种特殊的符号,用于表示数据的运算,赋值和比较等;

算术运算符

正号+,负号-,加+,减-,乘*,除/,余或取模%,自增++,自减--,字符串相加+

正号负号运算符代表运算变量为正数还是为负数;

加法运算符‘+’做两个数值的加法运算。减法运算符‘-’ 做两个数值的减法运算;

乘法运算符‘*’做两个数值的乘法运算。除法运算符‘/’做两个数值的除法运算;

求余运算符‘%’求两个数值的除法运算的余数。所谓自增++自减--运算符,就是两个数做加减法运算将运算的结果赋值给做运算的变量,符号在前先运算后取值符号在后先去之后运算;

字符串相加+用于连接字符串运算;

public class YunSuanFu {

public static void main(String[] args) {

float f1,f2,f3,f4,f5,f6,f7;

f1 = 20.0f;f2 = 3.0f;

f3 = f1 + f2;f4 = f2 - f1;

f5 = f1 *  f2;f6 = f1 / f2;

f7 = f1 % f2;

System.out.print("和:"+f3+"  "+"差:"+f4+"  "+"积:"+f5+"  "+"除:"+f6+"  "+"余:"+f7);

}

}

public class ZiZengJian {

public static void main(String[] args) {

// 自增减运算符

//变量始终都会发生变化,符号在前赋值会发生变化符号在后不会发生变化

int a=9,b=9,c=9,d=9;

//变量先增加后赋值

int in1 = ++a;

//变量先赋值后运算

int in2 = b++;

//变量先减少后赋值

int in3 = --c;

//变量先赋值后减少

int in4 = d--;

System.out.println(a+" "+b);

System.out.println(in1+" "+in2);

System.out.println(c+" "+d);

System.out.println(in3+" "+in4);

}

}

赋值运算符

操作符

描述

例子

=

简单的赋值运算符,将右操作数的值赋给左侧操作数

C = A + B将把A + B得到的值赋给C

+=

加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数

C + = A等价于C = C + A

-=

减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数

C - = A等价于C = C -
   A

*=

乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数

C * = A等价于C = C * A

/=

除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数

C / = A等价于C = C / A

%=

取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数

C%= A等价于C =   C%A

<< =

左移位赋值运算符

C << = 2等价于C = C << 2

>> =

右移位赋值运算符

C >> = 2等价于C = C >> 2

&=

按位与赋值运算符

C&= 2等价于C =   C&2

^ =

按位异或赋值操作符

C ^ = 2等价于C = C ^ 2

| =

按位或赋值操作符

C | = 2等价于C = C | 2

public class Test {

public static void main(String[] args) {

int a = 10;

int b = 20;

int c = 0;

c = a + b;

System.out.println("c = a + b = " + c );

c += a ;

System.out.println("c += a  = " + c );

c -= a ;

System.out.println("c -= a = " + c );

c *= a ;

System.out.println("c *= a = " + c );

a = 10;

c = 15;

c /= a ;

System.out.println("c /= a = " + c );

a = 10;

c = 15;

c %= a ;

System.out.println("c %= a  = " + c );

c <<= 2 ;

System.out.println("c <<= 2 = " + c );

c >>= 2 ;

System.out.println("c >>= 2 = " + c );

c >>= 2 ;

System.out.println("c >>= 2 = " + c );

c &= a ;

System.out.println("c &= a  = " + c );

c ^= a ;

System.out.println("c ^= a   = " + c );

c |= a ;

System.out.println("c |= a   = " + c );

}

}

比较运算符(关系运算符)

比较运算符的结果都是boolean类型结果不是true就是false;

instanceof检查是否是类的对象        "Hello" instanceof String    true

该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。

( Object reference variable ) instanceof  (class/interface type)

String name = "James";

boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真

逻辑运算符

&逻辑与  |逻辑或  !逻辑非   &&短路与  ||短路或  ^逻辑异或

位运算符

所谓位运算符,就是将操作数转换成二进制,然后按位进行比较。

操作符

描述

例子

&与运算

如果相对应位都是1,则结果为1,否则为0

(A&B),得到12,即0000 1100

|或运算

如果相对应位都是0,则结果为0,否则为1

(A | B)得到61,即 0011 1101

^异或运算

如果相对应位值相同,则结果为0,否则为1

(A ^ B)得到49,即 0011 0001

〜反码

按位取反运算符翻转操作数的每一位,即0变成1,1变成0。

(〜A)得到-61,即1100 0011

<< 左移

按位左移运算符。左操作数按位左移右操作数指定的位数。

A << 2得到240,即   1111 0000

>> 右移

按位右移运算符。左操作数按位右移右操作数指定的位数。

A >> 2得到15即 1111

>>> 无符号右移

按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。

A>>>2得到15即0000   1111

4.5.1按位与运算符

按位与运算符’&’,两个数同位都为1的时候即为1,有一边不是1的话就0,即结果为false。

4.5.2按位或运算符

按位与运算符’&’,两个数同位都为1的时候即为1,有一边不是1的话就0,即结果为false。

4.5.3按位异或运算符

按位异或运算符’^’,两个数同位都为1的时候即为0。有一个为1即为1。

位移运算符

位移运算符是先把要比较的操作数转换成二进制数,然后向左向右移动相应的位数。

4.6.1左移运算符

左移运算符“<<”是把操作数转换成二进制数向左移动指定的位数。左移运算符

是有符号的,如果为正数就补0,如果为负数就补1。

public class Left {

public static void main(String[] args) {

int b1 = 7 << 2;

System.out.println(b1);

}

}

4.6.2右移运算符

右移运算符“>>”是把操作数转换成二进制数向右移动指定的位数。右移运算符

是有符号的,如果为正数就补0,如果为负数就补1。

public class Right {

public static void main(String[] args) {

int b1 = 7 >> 2;

System.out.println(b1);

}

}

4.6.3无符号右移运算符

无符号右移运算符“>>>”是把操作数转换成二进制数向右移动指定的位数。无符

号右移运算符全在最高位上补0。

public class RightR {

public static void main(String[] args) {

int b1 = 7 >>> 2;

System.out.println(b1);

}

}

三元(目)运算符

条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量

variable x = (expression) ? value if true : value if false

public class Test {

public static void main(String[] args){

int a , b;

a = 10;

// 如果 a 等于 1 成立,则设置 b 为 20,否则为 30

b = (a == 1) ? 20 : 30;

System.out.println( "Value of b is : " +  b );

// 如果 a 等于 10 成立,则设置 b 为 20,否则为 30

b = (a == 10) ? 20 : 30;

System.out.println( "Value of b is : " + b );

}

}

运算符优先级

类别

操作符

关联性

后缀

() [] . (点操作符)

左到右

一元

+ + - !〜

从右到左

乘性

* /%

左到右

加性

+ -

左到右

移位

>>   >>>  <<

左到右

关系

>> =   << =

左到右

相等

==  !=

左到右

按位与

左到右

按位异或

^

左到右

按位或

|

左到右

逻辑与

&&

左到右

逻辑或

| |

左到右

条件

?:

从右到左

赋值

= + = - = * = /   =%= >> =   << =&= ^ = | =

从右到左

逗号

左到右

Java运算符法则的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  9. Java 运算符及优先级

    运算符 分割符: , ; [] () 算数运算符: + - * / % ++ -- 关系运算符: > < >= <= == != 逻辑运算符: ! & | ^ & ...

随机推荐

  1. 图片存储系统TFS

    1 TFS和GFS比较 1.1 GFS的应用场景 第一,百万级别的文件,并且是大文件,文件都是100MB以上,1G级别的文件很常见. 第二,集群是建立在商业计算机之上,并不可靠,监控各个节点的状态,当 ...

  2. Lein droid

    最近尝试使用Clojure,发现有个Lein droid的项目可以方便的在android下使用Clojure. http://clojure-android.info/#get-started 尝试了 ...

  3. 美国诚实签经验——IMG全球医疗险,TODO

    那么,诚实签最关键的4个要点 是什么呢? 第一,证明你有一定的经济实力. 可能需要房产.存款等证明,也需要银行信用卡或借记卡半年流水证明(让人信服的每月进帐和消费能力). 这些是为了证明,你可以支付在 ...

  4. ASP.NET快速开发框架之工作流引擎

    大家好,啊!我小六六也有自己的博客了,今天我来跟大家分享下我的撸码心得,顺便吐槽下,我的坑爹上司.作为一名程序猿,我在系统开发方面也是“浸淫”了许久了!喔,不不不,是经营! 今天我就跟大家分享一下工作 ...

  5. 如何装载Storyboard中的ViewController?

      如上图所示,如何装载Storyboard中指定的ViewController? 首先,需要指定ViewController的ID,如上图右上方红色方框内的Storyboard ID.然后使用下面的 ...

  6. 4.7.5 Efficient Construction of LALR Parsing Tables

    4.7.5 Efficient Construction of LALR Parsing Tables There are several modifications we can make to A ...

  7. 慕课网6-4 编程练习:jQuery选择器中的过滤器

    6-4 编程练习 结合所学的jQuery过滤器知识,实现如下图所示的隔行换色效果 任务 使用jQuery的.css()方法设置样式,语法css('属性 '属性值') 使用:odd和:even过滤器实现 ...

  8. Nginx(一) 安装基于centos7

    1.   nginx介绍 1.1. 什么是nginx Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器.由俄罗斯的程序设计师Igor Sysoev所开 ...

  9. 乐搏讲自动化测试-Python语言常识及前景(3)

    相信小伙伴们都知道,随着软件测试行业的发展和进步自动化测试已经成为必然.在竞争日益激烈的市场环境中也是你升职加薪的利器. 所以,小编决定从今天起!将要系统.连续.高质量的持续更新「整套自动化测试」文章 ...

  10. post和get区别,其他答案真的太坑

    原理: get和post都是http定义与服务器交互的方法,还有put,delete url是网络上的资源,那么http中的get,post,put,delete对应的就是对这个资源的查,改,增,删四 ...