Java基本运算
运算符
- 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); //输出结果为及格
//必须掌握, 开发中实用
}
}
视频课程
- P27 Java基础07:基本运算符 12:46
- P28 Java基础08:自增自减运算符、初识Math类 07:38
- P29 Java基础09:逻辑运算符、位运算符 13:11
- P30 Java基础10:三元运算符及小结 07:36
Java基本运算的更多相关文章
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- Java 基本类型、封装类型、常量池、基本运算
基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~3 ...
- java中大数的一些基本运算
import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(S ...
- Java编程的逻辑 (3) - 基本运算
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...
- 【Python】Java程序员学习Python(八)— 基本类型的基本运算
这一篇待写,毕竟基本运算都是通用的.
- Java 程序优化:字符串操作、基本运算方法等优化策略(二)
五.数据定义.运算逻辑优化 多使用局部变量 调用方法时传递的参数以及在调用中创建的临时变量都保存在栈 (Stack) 里面,读写速度较快. 其他变量,如静态变量.等,都在堆实例变量 (heap) 中创 ...
- 【Java】Java中BigDecimal的基本运算
BigDecimal一共有4个够造方法,让来看看其中比较常用的两种用法: 第一种:BigDecimal(double val)Translates a double into a BigDecimal ...
- java 实现二叉树结构基本运算详细代码
static final int MAXLEN = 20; //最大长度 class CBTType //定义二叉树节点类型 { String data; //元素数据 CBTType left; / ...
- Java中简单的操作(if语句、常用操作符、switch语句、变量赋值等)
---------------------if语句介绍--------------------------------------------------- class IfDemo { public ...
随机推荐
- java中匿名内部类的匿名构造函数是怎么用的
java中匿名内部类的匿名构造函数是怎么用的下面的例子说明匿名内部类的匿名构造函数的用法 例2.7.2_0interface FigureMark_to_win { void whoAmI(); ...
- java中接口到底是干什么的,怎么用,深入剖析
6.总结性深一层次综合剖析接口概念[新手可忽略不影响继续学习] 通过以上的学习, 我们知道,所有定义在接口中的常量都默认为public.static和final.所有定义在接口中的方法默认为publi ...
- IDEA修改代码后不用重新启动项目即可刷新
1.File--Settings--Build 2.Build,Execution,Deplyment--Compiler 3.选中打勾 "Build project automatical ...
- 彻底理解synchronized
1. synchronized简介 在学习知识前,我们先来看一个现象: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 public ...
- 解决vue安装时出现vue --version或vue不是内部命令的问题
1. 试图全局配置 vue 的环境变量,找到 vue.cmd 的路径,然后进行配置. 问题:在文件搜索中,没有找到 vue.cmd,失败. 1.npm i npm -g 全局 update 了 npm ...
- TypeScript学习文档-基础篇(完结)
目录 TypeScript学习第一章:TypeScript初识 1.1 TypeScript学习初见 1.2 TypeScript介绍 1.3 JS .TS 和 ES之间的关系 1.4 TS的竞争者有 ...
- 体育类1.2.0版本 带有社交性质的 app 并且有内购功能
上架经历 体育类1.2.0版本 应用是体育类的,带有社交性质的 app 并且有内购功能 - 关于内购 最初级的应该是内购的 产品类型 在开发者一开始设置的时候没有注意到区别: 消耗型产品 非消耗型 非 ...
- ASP.NET Core高性能服务器HTTP.SYS
如果我们只需要将ASP.NET CORE应用部署到Windows环境下,并且希望获得更好的性能,那么我们选择的服务器类型应该是HTTP.SYS.Windows环境下任何针对HTTP的网络监听器/服务器 ...
- SSM实现个人博客-day01
1.需求分析 项目源码免费下载:SSM实现个人博客 有问题请询问vx:kht808
- 帝国CMS模板$GLOBALS[navclassid]用法详解
帝国CMS模板程序扩展变量说明:通过这些变量可实现各种更复杂的显示格式. 一.列表/封面模板变量说明:(栏目页或专题页中使用) (一).当前栏目ID或专题ID:$GLOBALS[navclassid] ...