运算符

Java语言支持的运算符:

  • 算术运算符:+,-,*,/,%(取余、求余)【模运算】,++(自增),--(自减)

  • 赋值运算符:=

  • 关系运算符:>,<,>=(大于等于),<=(小于等于),==(等于),!=(不等于),instanceof(例:A instanceof(Test):判断A是否为Test的对象)

  • 逻辑运算符:&&(与),||()或,!(非)

  • 位运算符:&(按位与),|(按位或),^(按位异或),~,>>,<<,>>>

  • 条件运算符:?、:

  • 扩展运算符:+=、-+、*=、/=(例:sum+=i等价于sum=sum+i)

public class Test{
public static void main(String[]args){
//二元运算符
int a=10;
int b=20;
int c=25;
int d=25;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);//结果为0,而实际为0.5,因为a、b都为int型,所以结果也为int型了
System.out.println(a/(double)b);//解决:将其中一个数据转为小数,这样结果输出0.5
System.out.println((double)a/b);
long e=123123123123123L;
int f=123;
short g=10;
byte h=8;
System.out.println(e+f+g+h);//结果为long型
System.out.println(f+g+h);//结果为int型
System.out.println(g+h);//结果为int型
/*总结:若参与运算的操作数中有long型数据则结果为long型,
* 若参与运算的操作数中有double型数据则结果为double型
* 若参与运算的操作数中没有long型数据则结果为int型;即使没int类型数据参与运算结果也为int类型
* 【int型以上,参与运算的最高数据类型是什么,结果就为该类型,int型以下的类型数据进行运算结果为int型】
*/
//关系运算符 返回结果为true或者false(布尔值)
int i=10;
int j=20;
System.out.println(i>j);//false
System.out.println(i==j);//false
System.out.println(i<j);//true
System.out.println(i!=j);//true
//取余、模运算
int k=21;
System.out.println(k%i);// 21/10==2……1余数为1,即输出1
}
}
public class Test{
public static void main(String[]args){
//++自增 --自减 一元运算符(之后会用于for循环)
int a=3;
int b=a++;//符号++放在a后,先把a的值赋值给b,然后使a的值加1,此时b的值为3,a的值为4
System.out.println(a);//输出4
int c=++a;//符号++放在a前,先使a的值加1,然后再把a的值赋值给c,此时a的值为5,c的值为5
System.out.println(a);//输出5
System.out.println(b);//输出3
System.out.println(c);//输出5
/* 幂运算 2^3:2*2*2 在Java中没有^这种表示
* 在Java中像幂运算这样特殊的运算,需要使用工具类来操作
* Math为Java建立好的类,里面提供了与科学工程计算的很多方法和常数,很多特殊的运算都需要借助它
*/
double pow1=Math.pow(2, 3);//计算2的3次方
System.out.println(pow1);//输出8.0
double pow2=Math.pow(3, 2);//计算3的2次方
System.out.println(pow2);//输出9.0
}
}
public class Test{
public static void main(String[]args){
//逻辑运算符 与(and)、或(or)、非(取反)
boolean a=true;
boolean b=false;
System.out.println("a&&b:"+(b&&a));//逻辑与运算:两个变量都为真,结果才为真
System.out.println("a||b:"+(a||b));//逻辑或运算:两个变量只要其中一个为真,结果就为真
System.out.println("!(a&&b):"+!(a&&b));//取反运算:如果是真,则变为假;如果是假,则变为真
//短路运算:第一句输出的运行:当程序运行到b的值为false时,就直接返回false,不会再运行a的情况
//检验
int c=5;
boolean d=(c<4)&&(c++<4);//假设(c<4)为false后程序不再运行后面的,则c不会+1,c的值还是为5
System.out.println(d);//输出false
System.out.println(c);//输出5
//所以,假设正确
       
/*位运算(是与二进制打交道的)
* A=0011 1100
* B=0000 1101
* A&B=0000 1100(对应位同为1才为1)//按位与运算
* A|B=0011 1101(对应位同为0才为0)//按位或运算
* A^B=1100 1110(对应位相同则为1)//按位异或运算
* ~B =1111 0010(取反,1变为0,0变为1)//取反运算
*面试题2*8=16,在计算机里是2*2*2*2=16
* 效率极高!!!
* <<(箭头指向左边,左移):相当于*2
* >>(箭头指向右边,右移):相当于/2
* 二进制中:
* 0000 0000表示0
* 0000 0001表示1
* 0000 0010表示2
* 0000 0011表示3
* 0000 0100表示4
* 0000 1000表示8
* 0001 0000表示16
*/
System.out.println(2<<3);//16
//意思为2左移3位0000 0010
// 0001 0000
//扩展运算符:+=、-=
int x=10;
int y=20;
x+=y;//相当于x=x+y;
System.out.println(x);//30
x-=y;//相当于x=x-y;
System.out.println(x);//10
System.out.println(x+y);//30
//字符串连接(拼接)符号:+   当+号一侧是String类型时,+号起连接的作用
System.out.println(""+x+y);//输出1020//从左到右运算,先识别到字符串"",所以+起连接的作用
System.out.println(x+y+"");//输出30//从左到右运算,先识别到x+y,此时+为算术运算符,x+y结果为30,
                                 //后识别到字符串"",+号则起连接的作用
//三元运算符
//x?y:z,通常用于if循环
//如果x为true,则结果为y,否则结果为z
int sorce=80;
String type=sorce>60?"及格":"不及格";//重要,必须掌握
System.out.println(type);
//优先级 先是()、一元运算符、*?+-、位运算符
//形成用括号的习惯,提高代码的可读性
}
}
​优先级从高到低
 

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 运算符及优先级

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

  10. 【java基础】Java运算符优先级

    Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 说明 1 . 点 从左到右 双目 ( ) 圆括号 从左到右   [ ] 方括号 从左到右   2 + 正号 从右到左 单目 - 负号 ...

随机推荐

  1. SpringCloud远程服务调用

    笔记 在微服务中,若想要使用远程调用,需要引入spring-cloud-starter-openfeign(在使用注册中心的环境下) <dependency> <groupId> ...

  2. [cf566C]Logistical Questions

    记$d(x,y)$为$x$到$y$的距离,$cost_{x}=\sum_{i=1}^{n}w_{i}d(x,i)^{\frac{3}{2}}$为$x$的代价 取$C$为足够大量,对于一条边权为$w$的 ...

  3. [loj2135]幻想乡战略游戏

    以1为根建树,令$D_{i}$为$i$子树内所有节点$d_{i}$之和 令$ans_{i}$为节点$i$的答案,令$fa$为$i$的父亲,则$ans_{i}=ans_{fa}+dis(i,fa)(D_ ...

  4. [atAGC048F]01 Record

    先将这个序列翻转,贪心找到最长的'101010--'的形式的子序列并删除,重复此过程并记这些字符串长度依次为$l_{1},l_{2},...,l_{n}$,若最终还有字符剩余则一定无解 假设$S$中元 ...

  5. ICCV 2021口罩人物身份鉴别全球挑战赛冠军方案分享

    1. 引言 10月11-17日,万众期待的国际计算机视觉大会 ICCV 2021 (International Conference on Computer Vision) 在线上如期举行,受到全球计 ...

  6. 🏆【Alibaba中间件技术系列】「RocketMQ技术专题」让我们一起探索一下DefaultMQPushConsumer的实现原理及源码分析

    RocketMQ的前提回顾 RocketMQ是一款分布式.队列模型的消息中间件,具有以下特点: 能够保证严格的消息顺序 提供丰富的消息拉取模式 高效的订阅者水平扩展能力 实时的消息订阅机制 亿级消息堆 ...

  7. MySQL数据库之大厂面试必备技能v8.0.27

    概述 **本人博客网站 **IT小神 www.itxiaoshen.com 定义 MySQL官方地址 https://www.mysql.com/ MySQL 8系列最新版本为8.0.27,5系列的最 ...

  8. linux 同时执行多个命令及几个基础命令

    先后不同的命令用分号:隔开即可 基础命令: 1.cd 进入目录 /代表根目录,.代表当前目录,..代表上一级目录 2.ls 显示当前目录下的所有文件和文件夹 -F区分目录和文件,文件后边是*代表可执行 ...

  9. [Noip 2018][标题统计 龙湖斗 摆渡车 对称二叉树]普及组题解

    啊喂,都已经9102年了,你还在想去年? 这里是一个Noip2018年PJ第二题打爆的OIer,错失省一 但经过了一年,我学到了很多,也有了很多朋友,水平也提高了很多,现在回看当时: 今年的Noip ...

  10. Redis高并发处理常见问题及解决方案

    1. 大型电商系统高流量系统设计 场景: 大量电商系统每天要处理上亿请求,其中大量请求来自商品访问.下单.商品的详情是时刻变化,由于请求量过大,不会频繁去服务端获取商品信息,导致服务器压力极大.需要用 ...