Java学习笔记五:Java中常用的运算符
Java中常用的运算符
运算符是一种“功能”符号,用以通知 Java 进行相关的运算。譬如,我们需要将变量 score 的值设置为 20 ,这时候就需要一个“=”,告诉程序需要进行赋值操作。
Java 语言中常用的运算符可分为如下几种:
- 算术运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
- 条件运算符
一:Java中的算术运算符;

其中,++ 和 -- 既可以出现在操作数的左边,也可以出现在右边,但结果是不同的
例如;

代码如下:
public class HelloWorld {
public static void main(String []args) {
int a=2;
int b=++a;//++a 先让a自增,然后将值赋给变量;
System.out.println("a:"+a);
System.out.println("b:"+b);
int c=2;
int d=c++;//c++ 先将c的值赋给d,然后再执行自增;
System.out.println("c:"+c);
System.out.println("d:"+d);
}
}
运行结果为;

解析:b=++a;先处理++a,a自增1并赋值给a,a=6;再处理赋值,b=a
而d=c++;先处理赋值,先将c赋给d,d=c,然后执行自增1
二:Java中的赋值运算符;
赋值运算符是指为变量或常量指定数值的符号。如可以使用 “=” 将右边的表达式结果赋给左边的操作数。
Java 支持的常用赋值运算符,如下表所示:

三:Java中的比较运算符;
比较运算符用于判断两个数据的大小,例如:大于、等于、不等于。比较的结果是一个布尔值( true 或 false )。
Java 中常用的比较运算符如下表所示:

注:
1、 > 、 < 、 >= 、 <= 只支持左右两边操作数是数值类型
2、 == 、 != 两边的操作数既可以是数值类型,也可以是引用类型
四:Java中的逻辑运算符;
逻辑运算符主要用于进行逻辑运算。Java 中常用的逻辑运算符如下表所示:

这里需要注意的是,逻辑运算符比较的对象元素可以是值,变量或是条件,当比较的元素为值时,0代表false,其他非零值代表true。
例如:

代码如下:
public class HelloWorld {
public static void main(String []args) {
boolean a=true;
boolean b=false;
boolean c=true;
System.out.println(a&&b);
System.out.println(a||b);
System.out.println(!a);
System.out.println(a^b);
System.out.println(a^c);
}
}
运行结果为:

注:逻辑运算符的‘||’在做比较时,是先判断左边的元素是否为true,当其为true时,直接返回true,不会继续判断右边了,同理,'&&'如果可以判断左边的元素为false,则直接返回false,不继续向下判断。
五:Java中的条件运算符;
条件运算符( ? : )也称为 “三元运算符”。
语法形式:布尔表达式 ? 表达式1 :表达式2
运算过程:如果布尔表达式的值为 true ,则返回 表达式1 的值,否则返回 表达式2 的值
例如:

代码如下:
public class HelloWorld {
public static void main(String []args) {
String str = (5>1)? "5大于1" : "5不大于1";
System.out.println(str);
}
}
运行结果为:

注:因为表达式 5>1 的值为 true ,所以返回: 5大于1
六:Java中运算符的优先级;
所谓优先级,就是在表达式中的运算顺序。Java 中常用的运算符的优先级如下表所示:

级别为 1 的优先级最高,级别 11 的优先级最低。譬如,x = 5 + 3 * 2 得到的结果是 11 “先乘后加”嘛!
注:其实没必要去死记运算符的优先级顺序,实际开发中,一般会使用小括号辅助进行优先级管理。因为小括号优先级最高。
例如:

代码如下:
public class HelloWorld {
public static void main(String []args) {
int a =10;
int b = a*(a+18);
System.out.println("b:"+b);
}
}
运行结果为:

解析:因为括号优先级最高所以先算a+18 再算 a*28.
Java学习笔记五:Java中常用的运算符的更多相关文章
- Java 学习笔记 (五) Java Compile\Build\Make的区别
以下内容引自: http://blog.51cto.com/lavasoft/436216 Compile.Make和Build的区别 原创leizhimin2010-11-30 11:30:20评论 ...
- Java学习笔记十:Java的数组以及操作数组
Java的数组以及操作数组 一:什么是数组: 数组可以理解为是一个巨大的“盒子”,里面可以按顺序存放多个类型相同的数据,比如可以定义 int 型的数组 scores 存储 4 名学生的成绩 数组中的元 ...
- Java 学习笔记(4)——java 常见类
上次提前说了java中的面向对象,主要是为了使用这些常见类做打算,毕竟Java中一切都是对象,要使用一些系统提供的功能必须得通过类对象调用方法.其实Java相比于C来说强大的另一个原因是Java中提供 ...
- java 学习笔记1 java语言概述及开发环境
高级语言运行机制 高级语言按程序的执行方式分为编译型和解释型两种. java语言比较特殊,Java程序的执行必须经过先编译后解释的步骤. 1 编译生成字节码,只面向JVM(.class) 2Jvm执行 ...
- JAVA学习笔记之JAVA 对象引用以及赋值
关于对象与引用之间的一些基本概念. 初学Java时,在很长一段时间里,总觉得基本概念很模糊.后来才知道,在许多Java书中,把对象和对象的引用混为一谈.可是,如果我分不清对象与对象引用, 那实在没 ...
- 8.4(Java学习笔记)java脚本引擎(Rhino)
一.java脚本引擎 java脚本引擎是沟通java和脚本语句之间的桥梁,可以通过对应的脚本引擎在java中调用各种脚本语言. 二.脚本引擎执行脚本代码 ScriptEngineManager:为Sc ...
- Java学习笔记之—Java基础
将学习到的JAVA基础用xmind记录了下来,需要原件的可以私信
- Java学习笔记--通过java.net.URLConnection发送HTTP请求
http://www.cnblogs.com/nick-huang/p/3859353.html 使用Java API发送 get请求或post请求的步骤: 1. 通过统一资源定位器(java.net ...
- Java 学习笔记 (三) Java 日期类型
以下内容摘自: https://www.cnblogs.com/crazylqy/p/4172324.html import java.sql.Timestamp; import java.text ...
随机推荐
- 设计模式之模板方法模式(Template)
一.介绍 模板方法模式是编程中经常用到的模式.它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现.这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤. 二.场景举例 当一 ...
- day010-缓冲流、转换流、序列化流
1. 缓冲流 又称为高效流.高效流高效的原理:使用缓冲区(数组)临时存储多个数据,减少底层资源的调用次数.从而提高读写速度. 1.1 缓冲流分类 字节缓冲流: BufferedOutputSt ...
- 【Leetcode】【Easy】Binary Tree Level Order Traversal
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...
- OpenGL中的数据——Buffer
OpenGL中主要包括了两种数据——Buffer和Texture. Buffer用于储存线性数无类型据块,可以看成普通的内存块,而Texture则用于储存多维数据,一般储存图像或者其他数据. Buff ...
- 欢迎来到“火龙族智者”的blog
本blog里有每天更新的比赛感想,新技术体会以及日语学习相关事宜. 主要研究方向是算法,信息安全以及日语. 希望各位能常来看看.
- C++11新特性之 std::forward(完美转发)
我们也要时刻清醒,有时候右值会转为左值,左值会转为右值. (也许“转换”二字用的不是很准确) 如果我们要避免这种转换呢? 我们需要一种方法能按照参数原来的类型转发到另一个函数中,这才完美,我们称之为完 ...
- Arcgis Javascript中geometryEngine报错’hq‘of undefined的解决方法
这个问题困扰了我一个星期,原因是使用geomagicbuffer时候,有的线可正常使用,有的就直接报错,一直没有解决,后来发现是api自己的bug导致的 干脆直接读代码,在geometryEngine ...
- Codeforces Round #513
A. Phone Numbers 题意:给一些数字,每个电话号码以8开头,11位,求最多组成多少个号码,重复累加. #include <bits/stdc++.h> using names ...
- [转]《深入浅出MFC》– MFC程序的生死因果
1.首先MFC程序需要哪些函数库? Windows C Runtime函数库 LIBC.LIB C Runtime函数库的静态链接版本 MSVCRT.LIB C Runtime函数 ...
- EF Ccore 主从配置 最简化
业务需要 配置一主多从数据库 读写分离 orm用的ef core , 把思路和代码写下 1. 配置2个数据库上下文 ETMasterContext ETSlaveContext(把增删改功能禁用掉 ...