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

Java运算符和表达式

Java运算符和表达式

和C语言一样,java也有基础的运算符和表达式,用来完成一些基础的数学计算,以及逻辑运算,我们一起来学习一下吧。

算数运算符 

首先,这个算数运算符与数学中即C语言的运算符的功能一样,利用这些基础操作符,可以完成一些基础的操作。

这里我给大家举一些简单的例子,帮助大家理解。

注意:

1)算数运算符的操作数必须是一个整型或浮点型变量。

2)用算数运算符和括号连接起来的符合Java语法规则的式子称为算术表达式,例如:a+2*b-3/(c%d)。

3)a++或a--表示在使用a之前,先使a的值增或减1;++a或--a表示在使用a之后,再使a的值增或减1。

例如:a的值为10,b=a++,b的值为10,而b=++a,b的值为11。

4)Java对加法运算符进行了扩展,使它能够进行字符串的连接,例如:“abc”+“def”会得到字符串“abcdef”。

这里主要给大家强调最后一点,在以后java的学习中,我们经常会见到这种相加的操作,希望大家可以牢记这个知识点。

public class Main {public static void main(String[] args) {int a = 5;int b = 10;int c = 15;int d = 20;System.out.println("a + b = " + (a + b) );System.out.println("a - b = " + (a - b) );System.out.println("a * b = " + (a * b) );System.out.println("b / a = " + (b / a) );System.out.println("b % a = " + (b % a) );System.out.println("a++ = " + (a++) );System.out.println("a-- = " + (a--) );System.out.println("d++ = " + (d++) );System.out.println("++d = " + (++d) );}
}

运行结果如下:

a + b = 15
a - b = -5
a * b = 50
b / a = 2
b % a = 0
a++   = 5
a--   = 6
d++   = 20
++d   = 22

Java关系运算符实例讲解

 关系运算符,实际与C语言的语法也是十分相似的。

关系运算符用来比较两个值的关系,其运算结果是boolean型,当运算符对应的关系成立是,运算结果真为true,假为false

这就是它与C语言不同的地方,这里希望大家可以对比记忆,牢记java关系运算符的特点。

这里还是给大家举一些例子:

实例 :

public class Main {public static void main(String[] args) {int a = 5;int b = 10;System.out.println("a == b = " + (a == b) );System.out.println("a != b = " + (a != b) );System.out.println("a > b = " + (a > b) );System.out.println("a < b = " + (a < b) );System.out.println("a >= b = " + (a >= b) );System.out.println("a <= b = " + (a <= b) );}
}

运行结果如下:

a == b = false
a != b = true
a > b = false
a < b = true
a >= b = false
a <= b = true

所以关系运算符的最终结果只有两种:false,true。

Java逻辑运算符实例讲解

这里还是一样,我们还是将注意力主要放到与C语言不同的地方。

首先,这是一个双目运算符,他的两个操作符必须都是boolean型,这里必须给大家强调这一点。

 

实例:

public class Main {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 = false
a || b = true
!(a && b) = true

Java位运算符实例讲解

Java定义的位运算应用于整数类型,如int,long,short,char 和 byte等。

位运算符主要用来对操作数二进制的位进行运算,按位运算表示按每个二进制位进行计算,其操作数和运算结果都是整型值,若运算结果为负数,则采用补码表示。

Java 语言中的位运算符分为位逻辑运算符和位移运算符两类。

这里面的与或非,和我们高中数学里面的与或非一样,与运算即两个操作符都为真结果才为真,或运算即一个为真结果就为真,非即假为真,真为假,具体大家可以搜一下真值表查看。

按位异或运算:

按位异或运算对两个整型数据a、b按位进行运算,运算结果是一个整型数据c。运算法则为:如果a、b两个数据对应位相同,则c的该位是0,否则是1。

例如:

a:0 1 0 1 0 0 1 1

b:0 0 1 1 1 0 1 0

c:0 1 1 0 1 0 0 1

 

按位右移运算:

按位右移运算的运算法则为:按二进制形式把所有的数字向右移动对应的位数,低位移出(舍弃),高位的空位补零。

例如:将整数 83 向右位移 1 位

移位前:0 1 0 1 0 0 1 1

移位后:0 0 1 0 1 0 0 1

按位左移运算:

按位左移运算的运算法则为:按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。

例如:将整数 83 向左位移 1 位

移位前:0 1 0 1 0 0 1 1

移位后:1 0 1 0 0 1 1 0

实例:

public class Main {public static void main(String[] args) {int a = 83; /* 83 = 01010011 */int b = 58; /* 58 = 00111010 */int c = 0;c = a & b; /* 18 = 00010010 */System.out.println("a & b = " + c );c = a | b; /* 123 = 01111011 */System.out.println("a | b = " + c );c = ~a; /* 01010011取反后为10101100,10101100的补码为11010100,-84 = 11010100 */System.out.println("~a = " + c );c = a ^ b; /* 105 = 01101001 */System.out.println("a ^ b = " + c );c = a >> 1; /* 41 = 00101001 */System.out.println("a >> 2  = " + c );c = a << 1; /* 166 = 10100110 */System.out.println("a << 2 = " + c );}
}

 运行结果:

a & b = 18
a | b = 123
~a = -84
a ^ b = 105
a >> 2  = 41
a << 2 = 166

Java赋值运算符实例讲解

这个就与C语言的语法大同小异了。这里我们强调:

赋值运算符左面的操作数必须是变量,不能是常量或表达式,赋值表达式的值就是=左面变量的值。

这里给大家一个小技巧,写==操作符时我们可以把常量放到==的左侧,如果误写为=, 编译器会报错。

public class Main {public static void main(String[] args) {int a = 1;int b = 2;int c = 0;c = a + b;System.out.println("c = a + b = " + c );c += a ;System.out.println("c += a = " + c );c -= a ;System.out.println("c -= a = " + c );c *= a ;System.out.println("c *= a = " + c );a = 3;c = 4;c /= a ;System.out.println("c /= a = " + c );a = 5;c = 6;c %= a ;System.out.println("c %= a = " + c );c &= a ;System.out.println("c &= a = " + c );c |= a ;System.out.println("c |= a = " + c );c ^= a ;System.out.println("c ^= a = " + c );c >>= 1 ;System.out.println("c >>= 1 = " + c );c <<= 1 ;System.out.println("c <<= 1 = " + c );}
}

运行结果:

c = a + b = 3
c += a = 4
c -= a = 3
c *= a = 3
c /= a = 1
c %= a = 1
c &= a = 1
c |= a = 5
c ^= a = 0
c >>= 1 = 0
c <<= 1 = 0

Java条件运算符实例讲解

即三目操作符,与C语言一样,具体概念:

条件运算符(?:)是三目运算符,所谓“目”,是指这个运算符参与运算的对象个数,也就是说,条件运算符有三个操作数。

这里强调表达式1必须为boolean类型 

public class Main {public static void main(String[] args){int a , b;a = 1;b = (a == 1) ? 2 : 3; // 如果a等于1成立,则设置b的值为2,否则为3System.out.println( "Value of b is : " + b );b = (a == 10) ? 2 : 3; // 如果a等于10成立,则设置b的值为2,否则为3System.out.println( "Value of b is : " + b );}
}

运行结果:

Value of b is : 2
Value of b is : 3

Java instanceof运算符实例讲解

这个操作符是C语言中没有见过的,我们这里简单学习一下:

instanceof运算符左面的操作数是一个对象,右面的操作数是一个,当左面的对象是右面的类或子类创建的对象时,该运算符运算的结果是true,否则是false。

public class Application {public static void main(String[] args){Object o = new Student();System.out.println(o instanceof Person);}
}

运行结果:

true

Java运算符的优先级和结合性

优先级是可以决定运算的先后;

结合性则是决定了相同级别运算符的先后顺序;

  今天就分享这么多了,大家看完多多点赞评论,您的反馈是我创作的动力。

 

相关文章:

Java运算符和表达式

Java运算符和表达式 和C语言一样&#xff0c;java也有基础的运算符和表达式&#xff0c;用来完成一些基础的数学计算&#xff0c;以及逻辑运算&#xff0c;我们一起来学习一下吧。 算数运算符 首先&#xff0c;这个算数运算符与数学中即C语言的运算符的功能一样&#xff0c;利…...

波奇学Linux:软硬链接

ln指令建立链接 软链接 硬链接 所属者的前的数字表示硬链接数&#xff0c;引用计数&#xff0c;file.txt和soft_link是软链接所以都为2 软链接有独立inode&#xff0c;硬链接没有&#xff0c;所以硬链接不是独立文件&#xff0c;软链接是独立文件&#xff0c;且硬链接的属性会…...

HTTP网络通信协议基础

目录 前言&#xff1a; 1.HTTP协议理论 1.1协议概念 1.2工作原理 1.3工作场景 2.HTTP抓包工具 2.1Fiddler工具 2.2抓包原理 2.3抓包结果 3.HTTP协议格式 3.1HTTP请求 3.2HTTP响应 3.3格式总结 前言&#xff1a; 在了解完网络编程的传输层UDP和TCP通信协议后&#…...

Java实现河南软件客服系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统管理人员2.2 业务操作人员 三、系统展示四、核心代码4.1 查询客户4.2 新增客户跟进情况4.3 查询客户历史4.4 新增服务派单4.5 新增客户服务费 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的河…...

【小沐学GIS】基于C++QT绘制三维数字地球Earth(OpenGL)

&#x1f37a;三维数字地球系列相关文章如下&#x1f37a;&#xff1a;1【小沐学GIS】基于C绘制三维数字地球Earth&#xff08;456:OpenGL、glfw、glut&#xff09;第一期2【小沐学GIS】基于C绘制三维数字地球Earth&#xff08;456:OpenGL、glfw、glut&#xff09;第二期3【小沐…...

如何生成生成一个修仙世界的狗血短剧剧本

如何生成生成一个修仙世界的狗血短剧剧本 生成一个修仙世界的狗血短剧剧本将上述剧本转为对话 生成一个修仙世界的狗血短剧剧本 剧本名称&#xff1a;《仙途情缘》 角色&#xff1a; 易天行&#xff1a;男主角&#xff0c;天赋异禀的修仙者&#xff0c;性格坚毅&#xff0c;正…...

【MIMO】

MIMO技术入门 1.简介 MIMO(多入多出):多天线技术。 注意&#xff1a;此处的多天线&#xff0c;并不是有多个天线板&#xff0c;对基站来讲指天线有多套振子&#xff08;每一套振子都可以看成一个独立的天线&#xff09;。 4G 8天线&#xff1b;5G 64T64R&#xff1b;不仅基站…...

ZooKeeper分布式锁

ZooKeeper是一个开源的分布式协调服务&#xff0c;它主要用于维护配置信息、提供分布式同步、命名服务等。ZooKeeper的数据模型类似于文件系统&#xff0c;它的数据结构中的每个数据节点称为znode&#xff0c;可以用它来实现分布式锁。 ZooKeeper分布式锁的原理&#xff1a; …...

WPF是不是垂垂老矣啦?平替它的框架还有哪些

WPF&#xff08;Windows Presentation Foundation&#xff09;是微软推出的一种用于创建 Windows 应用程序的用户界面框架。WPF最初是在2006年11月推出的&#xff0c;它是.NET Framework 3.0的一部分&#xff0c;为开发人员提供了一种基于 XAML 的方式来构建丰富的用户界面。 W…...

浅析Linux追踪技术之ftrace:Tracepoint

文章目录 概述Tracepoint使用定义Tracepoint添加Tracepoint调用 Tracepoint数据结构TRACE_EVENT实现DECLARE_TRACE__DECLARE_TRACE trace_xxx函数相关参考 概述 Tracepoint&#xff08;跟踪点&#xff09;是添加到代码流程中的调用点&#xff0c;并且允许开发者注册自定义的回…...

python ftp文件断点续传 并判断ftp文件下载完成

在Python中实现FTP文件的断点续传&#xff0c;通常涉及到以下步骤&#xff1a; 连接到FTP服务器。获取远程文件的大小。检查本地文件是否存在以及它的大小。如果本地文件不存在或大小小于远程文件&#xff0c;从上次中断的位置开始下载。下载完成后&#xff0c;检查文件大小以…...

SpringBoot+Vue3 完成小红书项目

简介 该项目采用微服务架构&#xff0c;实现了前后端分离的系统设计。在前端&#xff0c;我们选择了 Vue3 配合 TypeScript 和 ElementUi 框架&#xff0c;以提升开发效率和用户体验。而在后端&#xff0c;则是运用 SpringBoot 和 Mybatis-plus 进行开发&#xff0c;保证了系统…...

springboot集成Sa-Token及Redis的redisson客户端

文章目录 什么是Sa-Token?为什么集成Redis的redisson客户端?如何集成?maven依赖application.yml配置过滤器配置验证参考什么是Sa-Token? Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权…...

SQL世界之命令语句Ⅴ

目录 一、SQL CREATE INDEX 语句 1.SQL CREATE INDEX 语句 2.SQL CREATE INDEX 语法 3.SQL CREATE UNIQUE INDEX 语法 4.SQL CREATE INDEX 实例 二、SQL 撤销索引、表以及数据库 1.SQL DROP INDEX 语句 2.SQL DROP TABLE 语句 3.SQL DROP DATABASE 语句 4.SQL TRUNCA…...

Springboot拦截器中跨域失效的问题、同一个接口传入参数不同,一个成功,一个有跨域问题、拦截器和@CrossOrigin和@Controller

Springboot拦截器中跨域失效的问题 一、概述 1、具体场景 起因&#xff1a; 同一个接口&#xff0c;传入不同参数进行值的修改时&#xff0c;一个成功&#xff0c;另一个竟然失败&#xff0c;而且是跨域问题拦截器内的request参数调用getHeader方法时&#xff0c;获取不到前端…...

WordPress如何自建txt文本经典语录并随机显示一句话经典语录?

前面跟大家分享的『WordPress集成一言&#xff08;Hitokoto&#xff09;API经典语句功能』一文中就提供有自创API&#xff0c;其中懿古今顶部左上角显示的经典语录用的就是自建一个txt文本文件&#xff0c;然后再在前端网页指定位置随机显示语录。具体操作方法如下&#xff1a;…...

Java中JVM常用参数配置(提供配置示例)

目录 前言一、内存参数配置二、垃圾收集器配置三、GC策略配置3.1、基础通用配置3.2、Parallel 和 Parallel Old 常用参数配置3.3、CMS 常用参数配置3.4、G1 常用参数配置 四、GC日志配置五、dump 日志参数配置5.1、OutOfMemory异常时生成dump文件5.2、发生Full GC时生成dump文件…...

图论与图数据应用综述:从基础概念到知识图谱与图智能

目录 前言1 图论基础概念1.1 节点度1.2 度分布1.3 邻接矩阵 2 探索图的高级概念2.1 最短路径的关键性2.2 图的直径与平均路径的意义2.3 循环与路径类型的多样性 3 深入探讨图的广泛应用领域3.1 知识图谱的知识管理3.2 图智能在复杂决策中的应用3.3 图数据挖掘与分析的多领域应用…...

知识碎片-SpringBoot统一返回结果和捕获异常

统一返回结果 定义统一返回结果类ResultResponse定义新注解ResponseResult来标记需要拦截的方法或类添加RestControllerAdvice注解&#xff0c;实现ResponseBodyAdvice接口&#xff0c;重写support, beforeBodyWrite方法 统一结果类ResultResponse Setter Getter public cla…...

Open-FWI代码解析(1)

目录 1. dataset文件 1.1初始化网络 1.2load_every函数 1.3 getitem函数 1.4测试函数 2. transforms文件 2.1裁切函数和翻转函数 2.2上\下采样函数 2.3加入随机因子的上\下采样函数 2.4填充函数 2.5标准图像函数 2.6标准化函数 2.7归一化函数 2.8反归一化 2.9添加噪声的函数 …...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

基于PHP的连锁酒店管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...