当前位置: 首页 > news >正文

不要抱怨,不如抱 Java 运算符吧 (1)

本篇会加入个人的所谓‘鱼式疯言’
❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言
而是理解过并总结出来通俗易懂的大白话,
小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.
🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人能接受我们这个概念 !!!

在这里插入图片描述

前言

天空一声巨响,小编闪亮登场 😊 😊 😊
在本篇文章中,小编将带你走进 Java 运算符的 “欢乐谷” 中畅玩,
下面有请友友们移步目录区开始深情拥抱我们的 Java 运算符 吧 💕 💕 💕

目录

  1. 运算符的概念
  2. 算术运算符大家庭
  3. 关系运算符
  4. 逻辑运算符

一. 运算符的概念

计算机的最基本的用途之一就是执行 数学运算
et :

public static void main(String[] args) {

        int a=10;int b=20;int c=a+b;boolean d= a<b;
}

上述+ 和< 等就是运算符,即:对 操作数 进行操作时的符号,不同运算符操作的 含义不同
作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。 Java中运算符 可分为以下:

  • 算术运算符(+ - */)
  • 关系运算符(< > ==)
  • 逻辑运算符
  • 位运算符
  • 条件运算符等…

二. 算术运算符大家庭

1. 基本四则运算

小伙伴应该都知道我们的 Java 的与 C语言 类似
我们的基本四则运算符无非就是以下三种咯 💖 💖 💖

加减乘除模 (+ - * / %)

<2>. 栗子一

public static void main(String[] args) {int a = 20;int b = 10;System.out.println(a + b); // 30System.out.println(a - b); // 10System.out.println(a * b); // 200System.out.println(a / b); // 2System.out.println(a % b); // 0 --->模运算相当于数学中除法的余数
}

在这里插入图片描述
细节如下,待小编 一 一 举例分析 💕 💕 💕

鱼式疯言

温馨提示 :

  • 都是 二元运算符 ,使用时必须要有左右 两个操作数
  • int / int 结果还是 int 类型,而且会向下 取整
  • 做除法和取模时,右操作数不能为 0
  • % 不仅可以对整型取模,也可以对 double类型 取模,但是没有意义,一般都是对整型取模的

证明过程如下 :

<3>. 栗子二

public static void main(String[] args) {

    int a = 3;int b = 2;// 在数学中应该是1.5 但是在Java中输出结果为1 会向下取整,即小数点之后全部舍弃掉了System.out.println(a / b);// 如果要得到数学中的结果,可以使用如下方式double d = a*1.0 / b;System.out.println(d);
}

在这里插入图片描述
从中小伙伴们是不是可以得出这样的结论呢 ! ! !

int / int 结果还是 int 类型,而且会 向下取整

<4>. 栗子三

除法取模 时,如果左操作数为 整数 ,右操作数不能为 0

public static void main(String[] args) {int a = 1;int b = 0;System.out.println(a / b);
}

在这里插入图片描述

但在Java中如果是运行左操作为 浮点数 ,右操作数为 0

   public static void main(String[] args) {double a = 1.0;int b = 0;System.out.println(a / b);}

在这里插入图片描述
突然来个小插曲 😃 😃 😃
这是小爱同学就有疑惑了,这个 Infinity 是什么含义呢 🤔 🤔 🤔

在这里插入图片描述

鱼式疯言

其实啊,在我们Java中 Infinity 就是代表算出的结果就是 无限 的含义

<5>. 栗子四

% 不仅可以对 整型 取模,也可以对 double 类型取模,但是没有意义,一般 都是对整型取模的

   public static void main(String[] args) {System.out.println(11.5 % 2.0);}

在这里插入图片描述

<6>. 栗子五

两侧操作数类型 不一致 时,向 类型大 的提升

   public static void main(String[] args) {System.out.println(1+0.2); // +的左侧是int,右侧是double,在加之前int被提升为double// 故:输出1.2}

2. 增量运算符

<1>. 简介

该种类型运算符操作完成后,会将操纵的结果赋值左操作数

<2>. 栗子一

public static void main(String[] args) {int a = 1;a += 2; // 相当于 a = a + 2System.out.println(a); // 输出3a -= 1; // 相当于 a = a - 1System.out.println(a); // 输出2a *= 3; // 相当于 a = a * 3System.out.println(a); // 输出6a /= 3; // 相当于 a = a / 3System.out.println(a); // 输出2a %= 3; // 相当于 a = a % 3System.out.println(a); // 输出2}

从中小伙伴是不是能得出一下结论呢 ❤️ ❤️ ❤️

鱼式疯言

温馨提示:

  • 只有变量才能使用的该运算符,常量是不能使用的
  • 该运算符是会发生整型提升的

不妨和小编看看下这个栗子或许就明白了

<3>. 栗子二

如果我们使用普通的操作符就会发生这种情况

在这里插入图片描述

 public static void main(String[] args) {byte a=10,b=20;a+=b;System.out.println(a);}

在这里插入图片描述
从中宝子们就可以看出
我们用增量操作符时就不会报错
显而易见

该运算符是会发生整型提升的

3. 自增 / 自减运算符

<1>. 简介

++ 是给 变量 的值 +1 , — — 是给 变量 的值 —1

<2>. 举个栗子

public static void main(String[] args) {int a = 1;a++; // 后置++ 表示给a的值加1,此时a的值为2System.out.println(a++); // 注意:后置++是先使用变量原来值,表示式结束时给变量+1,因此输出2System.out.println(a); // 输出3++a; // 前置++ 表示给a的值加1System.out.println(++a); // 注意:前置++是先给变量+1,然后使用变量中的值,因此输出5System.out.println(a); // 输出5// --操作符给操作-1,与++含义类似
}

在这里插入图片描述
++ 和 - - 固然好用,但一定要注意以下细节哦

鱼式疯言

温馨提示:

  • 如果单独使用,【前置++】和【后置++】没有任何区别
  • 如果混合使用,【前置++】 +1,然后使用变量 +1 之后的值, 【后置++】使用 变量 原来的值, 表达式结束时给变量+1
  • 只有变量才能使用自增/自减运算符,常量不能使用,因为常量不允许被修改

三 . 关系运算符

<1>. 简介

关系运算符主要有六个: == 、 != 、 < 、> 、<=
>= ,其计算结果是 true 或者 false

<2>. 栗子一

 public static void main(String[] args) {int a = 10;int b = 20;// 注意:在Java中 = 表示赋值,要与数学中的含义区分// 在Java中 == 表示相等System.out.println(a == b); // falseSystem.out.println(a != b); // trueSystem.out.println(a < b); // trueSystem.out.println(a > b); // falseSystem.out.println(a <= b); // trueSystem.out.println(a >= b); // false}

在这里插入图片描述
从中小伙伴赞不赞同小编下面的观点呢 💖 💖 💖

鱼式疯言

温馨提示:

  1. 关系运算符得出的结果(返回值)是 布尔类型不是返回 1 或 0 哦

  2. 当需要多次判断时,不能连着写,比如:3 < a < 5,Java程序与数学中是有区别的

那小爱同学就问:那该怎么写呢 ???
那就不得不用到我们下一节的 逻辑运算符 啦 😎 😎 😎

四. 逻辑运算符

<1>. 简介

逻辑运算符主要有三个: &&、 ||、 ! ,运算结果都是 boolean 类型。

小面让小编一 一带着小伙伴们分析分析0 💖 💖 💖

1. 逻辑与 &&

<1>. 简介

语法规则:表达式1 && 表达式2

左右表达式必须是 boolean 类型的结果。

相当于现实生活中的且,比如:如果是学生,并且 带有学生证 才可以享受半票。

两个表达式都为 ,结果才是

只要有一个是 ,结果就是

鱼式疯言

画个小图理解一下下呗

在这里插入图片描述

<2>. 举个栗子

  public static void main(String[] args) {int a = 1;int b = 2;System.out.println(a == 1 && b == 2); // 左为真 且 右为真 则结果为真System.out.println(a == 1 && b > 100); // 左为真 但 右为假 则结果为假System.out.println(a > 100 && b == 2); // 左为假 但 右为真 则结果为假System.out.println(a > 100 && b > 100); // 左为假 且 右为假 则结果为假}

在这里插入图片描述
由此总结一点

鱼式疯言

两个表达式都为真,结果才是只要有一个是假,结果就是

2. 逻辑或 ||

<1>.简介

语法规则:表达式1 || 表达式2

左右表达式必须是 boolean 类型的结果。

怎么说呢,就给友友们举个栗子吧

相当于现实生活中的或

比如:买房子交钱时,全款 或者 按揭都可以,如果全款或者按揭,房子都是你的,

否则站一边去。 😁 😁 😁

鱼式疯言

有图有真相 :

在这里插入图片描述

<2>.举个栗子

public static void main(String[] args) {int a = 1;int b = 2;System.out.println(a == 1 || b == 2); // 左为真 且 右为真 则结果为真System.out.println(a == 1 || b > 100); // 左为真 但 右为假 则结果也为真System.out.println(a > 100 || b == 2); // 左为假 但 右为真 则结果也为真System.out.println(a > 100 || b > 100); // 左为假 且 右为假 则结果为假}

在这里插入图片描述

和上类一样,但小编还是在这里啰嗦几句 💖 💖 💖

鱼式疯言

左右表达式至少有一个为真,则结果为真

3. 逻辑非 !

<1>. 简介

语法规则:! 表达式

假,假真。

<2>. 举个栗子

public static void main(String[] args) {int a = 1;System.out.println(!(a == 1)); // a == 1 为true,取个非就是falseSystem.out.println(!(a != 1)); // a != 1 为false,取个非就是true
}

在这里插入图片描述

4 .逻辑运算符的实际运用

如果我们需要

a<x<b

x <a 或者 a>b

那该怎么敲出我们的代码呢 💕 💕 💕

不妨看小编的下面这段代码吧

public static void main(String[] args) {int a = 10;int b = 20;// 注意:在Java中 = 表示赋值,要与数学中的含义区分// 在Java中 == 表示相等System.out.println(a >= 10 && a<20); //  10 <= b < 20  trueSystem.out.println(b<-1 || b>30); //    b<-1 或者 b>30  false}

在这里插入图片描述

5.短路求值

啥是 短路求值 呢,不妨宝子们先看个栗子呗 😍 😍 😍

<1>. 栗子一

public static void main(String[] args) {System.out.println(10 > 20 && 10 / 0 == 0); // 打印 falseSystem.out.println(10 < 20 || 10 / 0 == 0); // 打印 true
}

在这里插入图片描述
从中可以看出
我们都知道, 计算 10 / 0 会导致程序抛出 异常. 但是上面的代码却能正常运行, 说明 10 / 0 并没有真正被求值.

所以 友友们就可以总结出 短路求值 的概念了

对于 && , 如果左侧表达式值为 false, 则表达式结果一定是 false, 无需计算 右侧表达式.

对于 ||, 如果左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式.

鱼式疯言

但我们 Java 还有个 特殊用法

& 和 | 如果表达式结果为 boolean 时, 也表示逻辑运算. 但与 && || 相比, 它们不支持短路求值.

就像下面这个栗子 一般,我们不支持短路求值就会报错 💖 💖 💖

<2>. 栗子二

public static void main(String[] args) {System.out.println(10 > 20 & 10 / 0 == 0); // 程序抛出异常System.out.println(10 < 20 | 10 / 0 == 0); // 程序抛出异常
}

在这里插入图片描述

本篇内容就到这里就先告一段落了,下面让小编来梳理并总结下在本篇文章中收获了哪些知识点吧 💖 💖 💖

总结

  • 运算符的概念:简单说明的运算的概念以及作用
  • 算术运算符大家庭:详细的解析力 不同运算符的使用方法以及注意事项
  • 关系运算符:了解关系运算符的简单运用和返回值的本质
  • 逻辑运算符:知晓了逻辑运算并配合我们关系运算符的实际运用

如果觉得小编写的还不错的咱可支持 三连 下 (定有回访哦) , 不妥当的咱请评论区 指正

希望我的文章能给各位宝子们带来哪怕一点点的收获就是 小编创作 的最大 动力 💖 💖 💖

在这里插入图片描述

相关文章:

不要抱怨,不如抱 Java 运算符吧 (1)

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…...

python之ftp小工具

文章目录 python之FTP小工具 python之FTP小工具 源码 #!/usr/bin/python3 import os import sys from pyftpdlib.authorizers import DummyAuthorizer from pyftpdlib.handlers import FTPHandler, ThrottledDTPHandler from pyftpdlib.servers import FTPServer import logg…...

攻防世界-web-Training-WWW-Robots

题目信息 In this little training challenge, you are going to learn about the Robots_exclusion_standard. The robots.txt file is used by web crawlers to check if they are allowed to crawl and index your website or only parts of it. Sometimes these files rev…...

护眼灯减蓝光和无蓝光的区别是什么?盘点回购率前5名的护眼台灯!

随着近视问题日益严重&#xff0c;保护视力已逐渐成为公众关注的焦点。在日常生活中&#xff0c;不良的光线环境常常成为视力下降的潜在威胁&#xff0c;因此&#xff0c;护眼台灯成为了现代家庭保护视力的必备工具。其中&#xff0c;关于台灯的蓝光问题更是受到了广泛关注。有…...

Linux常见的指令

目录 01. ls 指令02. pwd命令03. cd 指令04. touch指令05.mkdir指令&#xff08;重要&#xff09;&#xff1a;06.rmdir指令 && rm 指令&#xff08;重要&#xff09;&#xff1a;07.man指令&#xff08;重要&#xff09;&#xff1a;08.cp指令&#xff08;重要&#x…...

C++项目开发编译踩坑记录

git工具配置了autocrlfinput下载的代码换行符默认从CRLF转换为LF&#xff0c;导致在windows桌面开发时&#xff0c;编译C代码全文报语法错误 问题现象&#xff1a;使用git clone命令从库上下载下来的代码&#xff0c;使用VS 2022编译&#xff0c;全文报语法错误&#xff0c;但…...

【Python】【Pycharm】Python Script头文件设置

1、步骤&#xff1a;File->settings->Editor->File and CodeTemplates->Python Script 2、复制粘贴以下代码&#xff0c;应用即可&#xff1a; #!/usr/bin/env python # -*- coding: utf-8 -*-# Time :${DATE} ${TIME} # Author : admin # Site :${SITE} …...

Recorder 实现语音录制并上传到后端(兼容PC和移动端)

Recorder 首页&#xff1a;https://github.com/xiangyuecn/Recorder 一、安装 npm install recorder-core二、代码部分 1. HTML页面 <template><div><el-inputv-model"ttsText"type"textarea"placeholder"请输入内容"><…...

fastJSON 字符串转对象

一、fastJSON 包 dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.33</version> </dependency> 二、转普通对象 自定义对象A A aa JSONObject.parseObject("字符串", A.…...

C++知识点总结(19):高级贪心算法

高级贪心算法 一、P1803 活动安排1. 审题2. 思路2.1 最优区间挑选方法2.2 分配时间方法2.3 排序方法 3. 参考答案 二、P1094 纪念品分组1. 审题2. 思路2.1 每组多少个方法2.2 搭配的方法 3. 参考答案 三、村民打水1. 审题2. 思路3. 参考答案 四、习题1. 服务等待1.1 审题1.2 参…...

Stable Diffusion ComfyUI安装详细教程

上一篇文章介绍了sd-webui的安装教程&#xff0c;但学习一下ComfyUI这种节点流程式的对理解AI绘画有较大帮助&#xff0c;而且后期排查错误会更加方便&#xff0c;熟练后用这种方式做AI绘画可玩性会更多。 文章目录 一、安装包说明二、安装文件介绍三、安装步骤四、汉化五、云主…...

前端基于Verdaccio搭建私有npm仓库,上传npm插件包,及下载使用自己的npm插件包

文章目录 一、原理二、常用的仓库地址三、优势四、准备环境六、使用verdaccio搭建私有npm服务1、安装2、运行3、配置config.yaml&#xff0c;使局域网下能共享访问&#xff0c;否则只能本机访问。4、重新运行 七、npm常见操作查看当前用户信息查看源地址切换源地址删除源地址创…...

Unity红点系统的架构与设计

在游戏开发中&#xff0c;红点系统是一种常见的功能&#xff0c;用于提示玩家有未读消息或待处理任务。在Unity引擎中&#xff0c;我们可以使用脚本来实现红点系统&#xff0c;下面我将介绍一种基于Unity的红点系统的架构与设计&#xff0c;并给出对应的代码实现。 红点系统的代…...

go语言内存泄漏检查工具

和其它语言一样&#xff0c;go语言也提供了一些内存泄漏分析的工具&#xff0c;用来帮助查找和分析内存泄漏问题。有以下一些常用的工具和技术&#xff1a; 1、go tool pprof&#xff1a; Go内置了一个性能分析工具&#xff08;pprof&#xff09;&#xff0c;它可以用于分析内…...

Ps:灰度模式

Ps菜单&#xff1a;图像/模式/灰度 Image/Mode/Grayscale 灰度 Grayscale模式是一种特定的色彩模式&#xff0c;用于处理没有彩色信息的图像。 在灰度模式下&#xff0c;图像不包含颜色&#xff0c;只显示黑色、白色及其间的灰色阶。 这种模式对于需要强调光影、纹理和形状而不…...

实现律所高质量发展-Alpha法律智能操作系统

律师行业本质上属于服务行业&#xff0c;而律师团队作为一个独立的服务单位&#xff0c;应当包含研发、市场、销售、服务等单位发展的基础工作环节。但现实中&#xff0c;很多律师团队其实并没有区分这些工作。鉴于此&#xff0c;上海市锦天城律师事务所医药大健康行业资本市场…...

WordPress后台自定义登录和管理页面插件Admin Customizer

WordPress默认的后台登录页面和管理员&#xff0c;很多站长都想去掉或修改一些自己不喜欢的功能&#xff0c;比如登录页和管理页的主题样式、后台左侧菜单栏的某些菜单、仪表盘的一些功能、后台页眉页脚某些小细节等等。这里boke112百科推荐这款可以让我们轻松自定义后台登录页…...

C语言——static的三大用法

被称为面试爱考爱问题的它到底有何奥义 它难度不大并且非常常用&#xff0c;话不多说&#xff0c;直接开始 一、局部静态变量 定义 在函数内部使用static修饰的变量被称为局部静态变量&#xff0c;与普通的局部变量不同&#xff0c;局部静态变量在使用后不会被销毁&#xff…...

开源 - 一款可自定义的在线免杀平台|过x60、wd等

免责声明&#xff1a;本工具仅供安全研究和教学目的使用&#xff0c;用户须自行承担因使用该工具而引起的一切法律及相关责任。作者概不对任何法律责任承担责任&#xff0c;且保留随时中止、修改或终止本工具的权利。使用者应当遵循当地法律法规&#xff0c;并理解并同意本声明…...

论文阅读-EMS: History-Driven Mutation for Coverage-based Fuzzing(2022)模糊测试

一、背景 本文研究了基于覆盖率的模糊测试中的历史驱动变异技术。之前的研究主要采用自适应变异策略或集成约束求解技术来探索触发独特路径和崩溃的测试用例&#xff0c;但它们缺乏对模糊测试历史的细粒度重用&#xff0c;即它们在不同的模糊测试试验之间很大程度上未能正确利用…...

别再手动标注了!用MakeSense一键导入YOLO标签,效率翻倍(附完整流程)

别再手动标注了&#xff01;用MakeSense一键导入YOLO标签&#xff0c;效率翻倍&#xff08;附完整流程&#xff09; 在计算机视觉领域&#xff0c;目标检测&#xff08;Object Detection&#xff09;项目的效率瓶颈往往出现在数据标注环节。传统工作流中&#xff0c;开发者需要…...

应对2026AIGC检测算法:5大热门降AI工具实测与免费提示词秘籍

为了找到真正靠谱的解决方案&#xff0c;我过去测试了市面上大部分号称能降低ai率的方法。从一分钱不花的模型指令&#xff0c;到各种付费的专业降ai率工具&#xff0c;用手头的文本做了几十次实操对比。说心里话&#xff0c;里面套路确实不少&#xff0c;有些方法用完后语句颠…...

从‘盲猜’到‘先知’:深度解读神经RRT*如何让采样规划拥有‘大局观’

神经RRT*&#xff1a;当路径规划算法学会"思考"的范式革命 在自动驾驶汽车寻找最短路径、无人机规划避障航线的场景中&#xff0c;传统RRT算法就像一位盲人摸象的探险者——它通过随机撒点的方式探索环境&#xff0c;虽然最终能找到出路&#xff0c;却需要耗费大量时…...

RT-Thread启动流程与BSP移植实战:从复位向量到多任务调度

1. 项目概述&#xff1a;从“上电”到“跑起来”的旅程当你拿到一块新的开发板&#xff0c;烧录好RT-Thread的固件&#xff0c;按下复位键&#xff0c;屏幕上开始打印出熟悉的“ | / -”启动动画和版本信息时&#xff0c;你有没有想过&#xff0c;从芯片上电复位到你的main_thr…...

嵌入式数据存储终极指南:5分钟快速上手FlashDB超轻量级数据库

嵌入式数据存储终极指南&#xff1a;5分钟快速上手FlashDB超轻量级数据库 【免费下载链接】FlashDB An ultra-lightweight database that supports key-value and time series data | 一款支持 KV 数据和时序数据的超轻量级数据库 项目地址: https://gitcode.com/gh_mirrors/…...

CANN/asc-devkit核间同步API文档

CrossCoreWaitFlag(ISASI) 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言&#xff0c;原生支持C和C标准规范&#xff0c;主要由类库和语言扩展层构成&#xff0c;提供多层级API&#xff0c;满足多维场景算子开发诉求。 项目地址: https…...

给程序员和数据分析师的气象学入门:搞懂城市边界层,让你的天气API数据不再‘失真’

给程序员和数据分析师的气象学入门&#xff1a;搞懂城市边界层&#xff0c;让你的天气API数据不再‘失真’ 当你在调用天气API时&#xff0c;是否遇到过这样的困惑&#xff1a;明明获取的是同一个城市的温度数据&#xff0c;为什么市中心的气温总比郊区高出几度&#xff1f;为什…...

从零构建Sora 2-DaVinci双引擎协同工作站:Intel Xeon W9-3400系列+RTX 6000 Ada专属散热/供电/PCIe拓扑配置清单(附实测带宽衰减曲线)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Sora 2与DaVinci整合的架构演进与协同范式 Sora 2作为新一代多模态时序生成引擎&#xff0c;其核心能力已从单向视频合成跃迁至具备物理感知、因果推理与跨模态对齐的闭环生成范式。DaVinci则持续强化其在专业…...

别再搞混了!设备上那个RJ45口是Console调试口,不是网口(附电路设计详解)

别再搞混了&#xff01;设备上那个RJ45口是Console调试口&#xff0c;不是网口&#xff08;附电路设计详解&#xff09; 第一次接触企业级网络设备时&#xff0c;许多新手都会犯一个经典错误——把设备背面那个看似网口的RJ45接口当作普通网络接口使用。我曾亲眼见过一位实习生…...

怎么远程操作另一台手机 手机能远程控制别的手机吗

想远程操作另一台手机应急&#xff1f;不管是忘带工作机需回复客户消息&#xff0c;还是手游玩家用备用机远程控制主力机挂机领福利&#xff0c;都需要好用的工具。市面上能远程操作另一台手机的软件不少&#xff0c;但是却多有短板&#xff0c;难以适配需求。推荐无界趣连2.0&…...