运算符

  • Java语言支持如下运算符:

    • 算术运算符: +, -, *, /, %(取余,模运算), ++, --
    • 赋值运算符: =
    • 关系运算符: > , <, >= , <=, ==(Java中的等于使用两个符号判断的), !=(不等于), instanceof
    • 逻辑运算符: &&(与), ||(或), !(非)
    • 位运算符: &, |, ^, ~, >>, <<, >>> (只做了解)
    • 条件运算符: ?, :
    • 扩展赋值运算符: +=, -=, *=, /=

运算符优先级

优先级 运算符 结合性
1 ()、[]、{} 从左向右
2 !、+、-、~、++、-- 从右向左
3 *、/、% 从左向右
4 +、- 从左向右
5 «、»、>>> 从左向右
6 <、<=、>、>=、instanceof 从左向右
7 ==、!= 从左向右
8 & 从左向右
9 ^ 从左向右
10 | 从左向右
11 && 从左向右
12 || 从左向右
13 ?: 从右向左
14 =、+=、-=、*=、/=、&=、|=、^=、~=、«=、»=、>>>= 从右向左

运算

自增(++)自减(--)运算

  • 自增自减为一元运算, 如a++中仅有一个a. 又如a+1中有a和1, 所以为二元运算.
public class Demo{

    public static void main(String[] args){

        //++   --  自增. 自减  一元运算符
int a = 3; int b = a++; //自增(++)在后面, 先赋值再自增运算 System.out.println(a); //输出结果为4
System.out.println(b); //输出结果为3 int c = ++a; //自增(++)在前面, 先自增运算再赋值 System.out.println(a); //输出结果为5
System.out.println(c); //输出结果为5 }
}

数学运算(Math类)

  • Java中很多运算需要用到工具类
public class Demo{

    public static void main(String[] args){

        //幂运算2^3    2*2*2=8
double pow = Math.pow(2,3);
System.out.println(pow); //输出结果为8 //更多运算与此类似, 自行百度
}
}

逻辑运算

public class Demo{

    public static void main(String[] args){

        boolean a = true;
boolean b = false; System.out.println("a && b: "+(a&&b)); //逻辑与运算: 两个变量都为真结果才为真
System.out.println("a || b: "+(a||b)); //逻辑或运算: 两个变量有一个为真, 结构就为真
System.out.println("!(a && b): "+!(a&&b)); //逻辑非运算: 如果是真则变为假,假变为真 //逻辑运算是短路运算
//当运算a&&b时, 如果a位假那么结果一定为假, 所以运行到a就结束了, 运算并不会往下运行
//实验
int c = 5;
boolean d =(c<4)&&(c++<4);
System.out.println(d); //输出结果为false
System.out.println(c); //输出结果为5,说明c++并没有被执行. 如果结果为6,那么说明c++被执行了
}
}

位运算

/*
A = 0011 1100
B = 0000 1101
------------------------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~B = 1111 0010 2*8 = 16 2*2*2*2
<<
>> 0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 1000 16 System.out.println(2<<3); 输出结果为16
*/

拓展运算符

public class Demo{

    public static void main(String[] args){
int a = 10;
int b = 20; a+=b; //a=a+b;
a-=b; //a=a-b; System.out.println(a); //输出结果为30 //字符串连接符 +
//+运算符两侧只要有一方出现String类型,Java会将其他操作处都转为String并连接.
System.out.prinln(""+a+b); //输出结果为1020
//String类型在后面,那么其前面会依旧进行运算
System.out.println(a+b+""); //输出结果为30 }
}

三元运算符

public class Demo{

    public static void main(String[] args){
//x ? y : z
//如果x==true, 则结果为y, 否则结果为z int score = 80;
String type = score<60 ?"不及格":"及格";
System.out.println(type); //输出结果为及格 //必须掌握, 开发中实用 }
}

视频课程

Java基本运算的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. Java 基本类型、封装类型、常量池、基本运算

    基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~3 ...

  3. java中大数的一些基本运算

    import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(S ...

  4. Java编程的逻辑 (3) - 基本运算

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  5. 【Python】Java程序员学习Python(八)— 基本类型的基本运算

    这一篇待写,毕竟基本运算都是通用的.

  6. Java 程序优化:字符串操作、基本运算方法等优化策略(二)

    五.数据定义.运算逻辑优化 多使用局部变量 调用方法时传递的参数以及在调用中创建的临时变量都保存在栈 (Stack) 里面,读写速度较快. 其他变量,如静态变量.等,都在堆实例变量 (heap) 中创 ...

  7. 【Java】Java中BigDecimal的基本运算

    BigDecimal一共有4个够造方法,让来看看其中比较常用的两种用法: 第一种:BigDecimal(double val)Translates a double into a BigDecimal ...

  8. java 实现二叉树结构基本运算详细代码

    static final int MAXLEN = 20; //最大长度 class CBTType //定义二叉树节点类型 { String data; //元素数据 CBTType left; / ...

  9. Java中简单的操作(if语句、常用操作符、switch语句、变量赋值等)

    ---------------------if语句介绍--------------------------------------------------- class IfDemo { public ...

随机推荐

  1. 将word文件转为excel文件

    有些word文件里的数据是有顺序或者规律,想转成表格的形式,下面就以我要转的word为例. 我的word文件是这样的 1.word转txt(文本文件) 文件--->另存为--->路径--- ...

  2. PAT B1015德才论

    题目描述: 宋代史学家司马光在<资治通鉴>中有一段著名的"德才论":"是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人.凡取人之术,苟不 ...

  3. mysql在cmd中查询到的汉字乱码问题解决 方法一

    只要执行如上两个 set character_set_connection = gbk; set character_set_results= gbk; 将编码格式转换成gbk即可

  4. Exchange日志

    Exchange日志是exchange的重要组成部分,也是管理exchang的重要指标.exchange日志产生的速度很快,而且会占用大量磁盘空间.如何管理日志成为exchange管理员的重要管理任务 ...

  5. sqlplus文件查看自带oracle命令的执行过程

    问题描述:看到一篇文章 在$ORACLE_HOME/bin/sqlplus中可以查看到数据库命令的查询语句.可以直接编辑sqlplus文件,查到到我们平时标准系统命令的原脚本,但是自己进行编辑查看却是 ...

  6. 踩了个DNS解析的坑,但我还是没想通

    hello大家好,我是小楼. 最近踩了个DNS解析的小坑,虽然问题解决了,但排查过程比较曲折,最后还是有一点没有想通,整个过程分享给大家. 背景 最近负责的服务要置换机器.置换机器可能很多小伙伴不知道 ...

  7. Java语言学习day35--8月10日

    今日内容介绍1.集合2.Iterator迭代器3.增强for循环4.泛型 ###01集合使用的回顾 *A:集合使用的回顾 *a.ArrayList集合存储5个int类型元素 public static ...

  8. 机器学习实战:用SVD压缩图像

    前文我们了解了奇异值分解(SVD)的原理,今天就实战一下,用矩阵的奇异值分解对图片进行压缩. Learn by doing 我做了一个在线的图像压缩应用,大家可以感受一下. https://huggi ...

  9. 想法子记忆Vi/Vim常用操作及指令

    本笔记有特殊目录,点击开启: 专有目录 在Linux系统中编辑文本总是离不开一位老帮手--Vi.而因为其诞生的年代有些久远,有些操作在现在看来可能有点"反直觉". 于是我决定写这样 ...

  10. bat脚本删除一周前的文件

    bat脚本删除7天前的文件 @echo off forfiles /p D:\logstash-1.4.2\bin\ /m *.log -d -7 /C "cmd /c del /f @pa ...