菜鸡的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 ...
随机推荐
- 如何借助 JuiceFS 为 AI 模型训练提速 7 倍
背景 海量且优质的数据集是一个好的 AI 模型的基石之一,如何存储.管理这些数据集,以及在模型训练时提升 I/O 效率一直都是 AI 平台工程师和算法科学家特别关注的事情.不论是单机训练还是分布式训练 ...
- SpringBoot碰到的疑问或问题
1.@ResponseBody 和 @RequestBody 的区别 @ResponseBody是作用在方法上的,@ResponseBody 表示该方法的返回结果直接写入 HTTP response ...
- 低代码BPM平台
为了做出明智的决策并为客户提供服务,员工需要在正确的环境中使用正确的工具和访问关键信息的权限.但是,当业务关键信息分散在多个现成的和自定义编码的应用程序中时,员工效率会降低,客户体验也会受到影响. 低 ...
- .NET 开发一个服务器 应用管理工具
一:背景 1.Anno.Deploy Anno.Deploy可以和 Anno集成使用,用于部署新的服务.启动服务.停止服务.清理服务.也可以单独使用,用于守护程序. 使用方法 1.和Anno集成使用 ...
- Java标识符和关键字的区别!java基础 java必学
任何计算机语言都离不开标识符和关键字,那我们就来简单讲一下他们两者的区别,希望有助于大家的的理解!本篇文章干货满满,如果你觉得难懂的话可以看下高淇老师讲的Java300集的教学视频,分选集,深度剖析了 ...
- uoj22 外星人(dp)
题目大意: 给定一个\(n\)个数的序列\(a\),给定一个\(x\),其中\(a\)数组可以进行顺序的调换,每一个\(a_i\)都能使$x=x \mod a_i \(, 求最后经过一系列计算后的\) ...
- xshell连接vmware系统完整版
设置静态ip需要修改文件一共有两个要修改的文件vi /etc/resolv.confvi /etc/sysconfig/network-scripts/ifcfg-eno16777736 第一个文件 ...
- 6. 站在巨人的肩膀学习Java Filter型内存马
本文站在巨人的肩膀学习Java Filter型内存马,文章里面的链接以及图片引用于下面文章,参考文章: <Tomcat 内存马学习(一):Filter型> <tomcat无文件内存w ...
- Sequence Model-week3编程题2-Trigger Word Detection
1. Trigger Word Detection 我们的触发词将是 "Activate.".每当它听到你说 "Activate.",它就会发出 "c ...
- 安装多个版本的 JDK
安装多个版本的 JDK 刚刚开始学 Java 的时候安装了 JDK9 版本,后续发现还是 JDK8 使用的多些,而又不想删除原先版本 因此安装两个版本的 JDK 在需要是切换一下即可 1. 安装第一个 ...