菜鸡的Java笔记 第四 - java 基础运算符
数学运算符,逻辑运算,三目运算,位运算
double d2 = 314e2; //采用科学计数法的写法,表示10的2次方。= 31400.0

简化运算符
代码:x=x+y 可以变成x+=y
求模(%)
++(自增)〈++变量:表示先进行变量的自增1,而后再利用变量进行操作〉〈变量++:表示先使用变量的内容进行计算,而后自增〉,--(自减)
int a = 3;
int b = a++; //执行完后,b=3。先给b赋值,再自增。
int c = ++a; //执行完后,c=5。先自增,再给b赋值
System.out.println(a);
System.out.println(b);
System.out.println(c)
三目运算符
三目运算符是一个具备带逻辑验证条件的赋值操作,可以执行一些布尔判断,而后根据布尔的结果进行赋值,其使用语法如下:数据类型 变量名称 = 布尔表达式?满足表达式时内容;不满足表达式时的内容
public class TestDemo{
public static vold main(Srting [] args){
int x = 10;
int y = 3;
// 希望将x或y的最大值赋值给result变量
// 首先要判断 x与 y 大小关系,如果x大于 y ,则将x的内容赋予result,否则将y的值赋予给result
int result = x>y?x:y;
System.out.println(result);
}
}
关系与逻辑运算
如果说关系运算符肯定:>,<,>=,<=,==(等于),!=(不等于)
但是很多情况下对于关系判断可能有多个一起进行,那么这就需要使用到逻辑运算符:与(&&(短路与),&(普通与))所有的条件同时满足时,或(||(短路或),|(普通或))有一个条件满足即可,非(!)整体求反,true变false,false变true。
与有两种操作,单(&)和双(&&):与运算的特点:(单与(&)的特点)所有的判断条件都必须返回true才会返回true,只要有一个false,都是false。(双与(&&)的特点)只要判断前面的运算不出错就是对的。
或的两种操作:特点:若干个条件只要有一个是返回true,其结果就是true,如果说现在有若干个条件,其中前面有一个条件返回了true,那么最终的结果就是true。所以为了提高判断性能,可以使用 短路或 的方式处理。
通过分析可以发现,在进行 与 和 或 的操作过程中,一定要使用“&&”或者是“||”,而不要使用其他的 普通与,普通或 操作。
位操作
位主要指进行二进制的数据操作。对于位操作首先要解决的问题是如何将十进制数据转为二进制数据。数据的依据:数字除2取余或者叫取摸,而后倒序整理。
在JAVA中提供的位运算,主要有:&,|,^,~,>>,<<
<< 左 相当于乘2 后者 除2
在进行(&)运算时,只有两个数字都是 1 的情况下才会得出1 的结果,否则为0
或(|)其值要求中一个为1 时 结果就为1,两个0 时 才会是0
异或(^)只有两个位上比较的数不一样的时候结果才为1,只要一样就为0
/*
//测试位运算
int m = 8;
int n = 4;
System.out.println(m&n); // 0
System.out.println(m|n); //12
System.out.println(~m); //-9
System.out.println(m^n); // 12 int a = 3*2*2;
int b = 3<<3; //相当于:3*2*2;
int c = 12/2/2;
int d = 12>>2;
System.out.println(a); //12
System.out.println(b); //24
System.out.println(c); //3
System.out.println(d); //3 boolean b1 = true&false;
System.out.println(b1); //false
*/
面试题:请解释“&”和“&&”,“|”和“||”的关系。
在逻辑运算中,
与 操作表示判断的若干条件要同时返回true,结果才是true;分为两种:
“&”:所有的判断条件都要进行判断,不管前面的判断结果是什么
“&&”:在进行条件判断时,如果前面的条件返回了false,后面的判断不再进行,属于短路与;
或 操作表示判断的若干条件返回一个trur即可,结果就是true,全为false才是false;
“|”:所有的判断条件都要进行判断;
“||”:在进行若干个条件判断时,如果前面有条件返回了true,后面的判断将不再进行,直接返回true;
在位运算中:
“&”:表示进行位与操作,位与操作中只中有两个内容为1,结果才是1,有一个为0计算结果为0。
“|”:表示进行位与操作,位与操作中只中有两个内容有一个为1,结果才是1,全为0计算结果才为0。
总结
编写代码时一定要只写简单运算,不要写复杂的运算。
三目运算最容易被开发者所忽略,但是真的很有用。
多个条件判断时永远使用“&&”或者是“||”
int[] a={1,2,3};
if(a==2&a==4){System.out.println("true")}
int[] a={1,2,3};
if(a==2&&a==4){System.out.println("true")}
int a = 5+4; //a=9
int b = a*2; //b=18
int c = b/4; //c=4
int d = b-c; //d=14
int e = -d; //e=-14
int f = e%4; //f=-2
m=-7; System.out.println("m的二 进 制码是:"+Integer.toBinaryString(m)); System.out.println("m>>2的二进制码是:"+Integer.toBinaryString(m>>2)); System.out.println("(m>>2)="+(m>>2)); System.out.println("m<<2的二进制码是:"+Integer.toBinaryString(m<<2)); System.out.println("(m<<2)=:"+(m<<2)); System.out.println("m>>>24的二进制码是:"+Integer.toBinaryString(m>>>24)); System.out.println(" m>>>24 :"+ (m>>>24));
菜鸡的Java笔记 第四 - java 基础运算符的更多相关文章
- Java笔记(四)
13. 集合框架: 集合中存储的都是对象的引用(地址) 迭代器:集合的取出元素的方式 import java.util.ArrayList; import java.util.Iterator; pu ...
- java笔记--反射机制之基础总结与详解
一.反射之实例化Class类的5种方式: java的数据类型可以分为两类,即引用类型和原始类型(即基本数据类型). 对于每种类型的对象,java虚拟机会实例化不可变的java.lang.Class对象 ...
- 【Java笔记】配置文件java.util.Properties类的使用
配置文件的路径:项目名/src/main/resources/mmall.properties mmall.properties的内容是键值对.例如假设写了ftp服务器的一些信息. ftp.serve ...
- Java笔记12:Java对象排序
代码: import java.util.Arrays; import java.util.Comparator; class Person { private String name; privat ...
- 菜鸡的Java笔记 第二十三 - java 抽象类的概念
abstractClass 抽象类的概念 1.抽象类的基本定义 2.抽象类的使用原则 不会抽象类与接口,java = 没学 ...
- 菜鸡的Java笔记 第八 - java 面向对象
面向对象的特点以及开发过程. java中最大的特点是其支持面向对象编程设计思想.在面向对象之前广泛流传的是面向过程的编程思想,例如:C语言的开发就属于面向过程 如果要想更简单的去理解面向过 ...
- 菜鸡的Java笔记 第七 - java 数组
数组的基本概念 笔试中经常出现的试题或是问题 1.1 概念 数组指的是一组相关变量的集合 如果用最原始的方式定义100个变量的话没问题但是这些变量的关联实在 ...
- 菜鸡的Java笔记 第六 - java 方法
前提:现在所讲解的方法定义格式,只属于JAVA 方法定义的其中一种组成方式.而完整的组成方式将随着学习逐步渗透. 1.方法的基本定义 方法(Method)在一些书中也会有人将其说是 函数(Funct ...
- 菜鸡的Java笔记 第五 - java 程序逻辑控制
程序主要分为三种逻辑:顺序,分支,循环. if 分支语句 if分支语句是最为基础的分支操作,但是其有三种使用形式: if语句 if.....else 语句 if....else...if...el ...
随机推荐
- 【.NET 与树莓派】气压传感器——BMP180
BMP180 是一款数字气压计传感器,实际可读出温度和气压值.此模块使用 IIC(i2c)协议.模块体积很小,比老周的大拇指指甲还小:也很便宜,一般是长这样的.螺丝孔只开一个,也有开两个孔的. 这货基 ...
- 使用gitlab runner 进行CI(二):gitlab runner的安装与配置
参考 https://docs.gitlab.com/runner/install/index.html,可以选择与gitlab相同的版本. gitlab runner可以通过安装binary包或do ...
- 当一个 Pod 被调度时,Kubernetes 内部发生了什么?
在 Kubernetes 中,调度是指将 Pod 放置到合适的 Node 上,然后对应 Node 上的 Kubelet 才能够运行这些 Pod . kube-scheduler 是集群控制平面的主要组 ...
- react之组建通信
父组件与子组件通信 父组件将自己的状态传递给子组件,子组件当做属性来接收,当父组件更改自己状态的时候,子组件接收到的属性就会发生改变 父组件利用ref对子组件做标记,通过调用子组件的方法以更改子组件的 ...
- PAT (Basic Level) Practice (中文)1007 素数对猜想 (20分)
1007 素数对猜想 (20分) 让我们定义dn为:dn = pn+1 − pn,其中pi是第i个素数.显然有d1 = 1,且对于n > 1有dn是偶数."素数对猜想"认 ...
- Longhorn 云原生容器分布式存储 - 故障排除指南
内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 云原生容器分布式存储 - 设计架构和概念 Longhorn 云原生容器分布式存储 - ...
- git 修改最后一次提交
git 修改最后一次提交 有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了. 此时,可以运行带有 --amend 选项的提交命令来重新提交:git commit --amend -m ...
- mysql锁场景及排查
1.查询长时间不返回: 在表 t 执行下面的 SQL 语句: mysql> select * from t where id=1; 查询结果长时间不返回. 一般碰到这种情况的话,大概率是表 t ...
- 小甲鱼零基础学python第25讲课后习题动手练习--通讯录
小甲鱼零基础学python第25讲课后习题动手练习---通讯录 **************************通讯录要求******************************* 输入指令: ...
- Java:并发笔记-07
Java:并发笔记-07 说明:这是看了 bilibili 上 黑马程序员 的课程 java并发编程 后做的笔记 6. 共享模型之不可变 本章内容 不可变类的使用 不可变类设计 无状态类设计 6.1 ...