Java菜鸟养成计划(java基础)--java运算符
java中的运算符
- 1、java中的运算符
- 1.1 、+ 、-、 * 、/ 、 %
- 1.2 、+=、-=、 *=、/=、%=
- 1.3 、++、--【自增\自减运算符】
- 1.4、`>、 <、 >= 、<= 、== 、!= 、! =`
- 1.5、&&、||、|、&
- 1.6、&、|、~、^
- 1.7、>> 、 <<、>>>位运算
- 1.8、`?:`三目运算符
1、java中的运算符
- 最小单位是int
1.1 、+ 、-、 * 、/ 、 %
-
+运算
- 算数加法
- 在基本数据类型使用时做加法
- 运算结果如果赋值给取值范围小于int的数据类型时,注意强转
int x = 10;char c1 = 'c'+x; //注意此时需要强转,因为此时已经声明变量x为int- 追加连接
- String + String
- 算数加法
-
-运算
-
- 算数减法
-
*运算
- 防止计算过程越界=>及时更换取值范围大的类型 -
/运算
- 除法运算过程中不要出现0
-
%【模运算】
- 运算结果的符号取决于参与运算的第一个数字的符号【%运算符左侧的数字】
System.out.println(5%2);//1System.out.println(-5%2);//-1System.out.println(5%-2);//1System.out.println(-5%-2);//-1
1.2 、+=、-=、 *=、/=、%=
- 这一组运算符保证左侧类型不变 ----- 底层可能隐式强转
short x = 45;x = x + 10;// 报错 int => short// 解决:x = (short)(x+10);short y = 45;y += 10; // 底层隐式强转int x = 45;// 【*】 类似// x = x + 10; x+=10;// x = 10 + x;// 变成x=x+10x+=10;int y = 55;// 【/类似】y = y - 10;y -= 10;/**y = 10-y;不能改写 y-=10;*/
1.3 、++、–【自增\自减运算符】
x++:先取值 再运算++x:先运算 再取值x--:先取值 在运算--x:先运算 再取值
1.4、>、 <、 >= 、<= 、== 、!= 、! =
- 成立/不成立
- !=
- 判断左右两侧的数据是否不相等
- = 和 == 有什么区别
- =:赋值运算符,将符号右侧的内容交给左侧变量保存
- == :条件判断 判断左右两侧的内容是否一致
- 在进行基本数据类型的比较时比较的是内容
- 引用数据类型的比较时比较的是地址
- !取反运算符【用在boolean】
- !true => false
- !false => true
1.5、&&、||、|、&
面试题:&&和&的区别
相同点:都是逻辑与
不同点:&&又叫“短路与”,具有短路特性,当&&左侧运行结果为false时,右侧不在执行;&不具备短路特性,当左侧为false时,右侧依然执行
||和|的区别
相同点:都是逻辑或
不同点:||又叫短路或,具有短路特性,当||左侧的结果为true时,右侧不在执行;|不具备短路特性,左侧为true右侧仍然执行
1.6、&、|、~、^
&按位与【逢0取0】9&50000100100000101 &00000000 => 1|按位或【逢1取1】9|50000100100000101 |00001101
~按位取反 【1->0 0->1】~9~0000100111110110
^按位异或【想通为0 不同为1】0000100100000101^00001100 => 12
- 在某种情况下&可以取代%运算
%2 %4 %8 %16 ... %2(n)
&1 &3 &7 &15 ... &2(n)-1
如果(num&num-1) == 0 就表示num是2的n次方
- 交换两个变量的内容
- 开辟第三块空间
int x = 10;
int y = 1;
int temp = x;
x = y;
y = temp;
- 不开辟第三块空间
//使用三次异或
int x = 10;
int y = 1;
x = x ^ y;
y = x ^ y;
x = x ^ y;
1.7、>> 、 <<、>>>位运算
byte x = 10;
x >> 2
00001010 >> 2
00000010byte y = 7;
y << 2
00000111 << 2
00011100** 效率取代[* /]<< 取代 **2 *4 *8 ... *2(n)<<1 <<2 <<3 .. <n00001010 << 100010100 => 4+16 = 20>> 取代 //2 /4 /8 ... /2(n)>>1 >>2 >>3 ... >>n10/2=500001010 >> 100000101 => 5
- 效率取代
num%2(n) => num&2(n)-1
num*2(n) => num<<2(n)-1
num/2(n) => num>>2(n)-1
1.8、?:三目运算符
- boolean?2:3
- 第一部分肯定为boolean类型
- 如果第一部分为true执行2
- 如果第一部分为false执行3
boolean?2:32/3有数字有char检验数字有没有在char范围内在char范围内 2/3往char类型转不在char分为内 将数字直接理解为int 2/3往int转【char类型变成对应的ASCII】相关文章:
Java菜鸟养成计划(java基础)--java运算符
java中的运算符 1、java中的运算符1.1 、 、-、 * 、/ 、 %1.2 、、-、 *、/、%1.3 、、--【自增\自减运算符】1.4、>、 <、 > 、< 、 、! 、! 1.5、&&、||、|、&1.6、&、|、~、^1.7、>> 、 <<、>>>位运算1.8、?:三目运算符…...
除了基本的事件绑定,鸿蒙的ArkUI
鸿蒙操作系统(HarmonyOS)是由华为技术有限公司开发的分布式操作系统,旨在为多种智能设备提供一个统一的操作平台。它不仅适用于智能手机,还适用于平板电脑、智能手表、智能电视等物联网设备。为了使开发者能够更加便捷地创建跨设备…...
0164__【GNU】gcc -O编译选项 -Og -O0 -O1 -O2 -O3 -Os
【GNU】gcc -O编译选项 -Og -O0 -O1 -O2 -O3 -Os_gcc -o0-CSDN博客...
vue3组件传值具体使用
问: left.vue文件调用接口获取了后端返回的urlLink字段,我该怎么传递给总的父组件index.vue中,我需要点击父组件的一个按钮来触发跳转? 回答: 在 Vue 3 中使用 TypeScript 和 setup 语法糖时,可以通过 e…...
Web 音视频(二)在浏览器中解析视频
前言 浏览器中已经能直接播放视频,为什么还需要手动写代码解析? 因为,某些场景需要对视频进行更细致的处理,比如截取关键帧、提取视频中的文字、人物打码、极低延时播放视频等等。 总之,除了最单纯的视频播放外&…...
江天科技主要产品销售单价下滑,应收账款、存货周转率大幅下降
《港湾商业观察》廖紫雯 日前,苏州江天包装科技股份有限公司(以下简称:江天科技)冲击北交所,保荐机构为国投证券。 江天科技主要从事标签印刷产品的研发、生产与销售,公司主要产品包括薄膜类和纸张类的不…...
我国的金融组织体系,还有各大金融机构的分类,金融行业的组织
中国金融组织体系介绍 中国金融组织体系是一个复杂而多层次的系统,涵盖了各种类型的金融机构和监管机构。以下是关于中国金融组织体系的详细介绍,包括一行三会等金融监管机构,各大金融机构的分类、涉及的银行以及行业组织。 (一…...
vue md5加密
在Vue中使用MD5加密,你可以使用第三方库如crypto-js。首先,你需要安装这个库: npm install crypto-js --save然后,在你的Vue组件中引入crypto-js并使用其MD5功能: <template><div><input v-model&quo…...
学习ASP.NET Core的身份认证(基于JwtBearer的身份认证7)
本文验证基于请求头中传递token信息的认证方式,webapi项目的控制器类中新建如下函数,仅通过验证的客户端能调用,需要客户端请求在Header中添加’Authorization’: Bearer token’的键值对且通过token验证后才能调用。 [Authorize] [HttpGet]…...
Ubuntu16.04 安装OpenCV4.5.4 避坑
Ubuntu16.04 安装C版OpenCV4.5.4 Ubuntu16.04 VSCode下cmakeclanglldb调试c 文章目录 Ubuntu16.04 安装C版OpenCV4.5.41. 下载Opencv压缩包2. 安装Opencv-4.5.43. 配置OpenCV的编译环境4.测试是否安装成功 1. 下载Opencv压缩包 下载Opencv压缩包,选择source版本。…...
DDD - 整洁架构_解决技术设计困局
文章目录 Pre如何落地 DDD底层技术的更迭 整洁架构的设计主动适配器/北向适配器被动适配器/南向适配器 整洁架构的落地总结 Pre DDD - 软件退化原因及案例分析 DDD - 如何运用 DDD 进行软件设计 DDD - 如何运用 DDD 进行数据库设计 DDD - 服务、实体与值对象的两种设计思路…...
Python自动化运维:一键掌控服务器的高效之道
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在互联网和云计算高速发展的今天,服务器数量的指数增长使得手动运维和管理变得异常繁琐。Python凭借其强大的可读性和丰富的生态系统,成为…...
数论问题61一一各种进位制
10进位制是普遍使用的数进位制,二进位制是计算机采用的进位制。还有三进位制,四进位制,…等等。那一种进位制都能转化为10进位制。下面介绍这种方法。 ①10进位制的表示(口诀:逢10进1) 如8X10007X1005x1038753。 ②2进位制的表示(口诀:逢2…...
Java开发提速秘籍:巧用Apache Commons Lang工具库
一、Java 开发效率之困 在当今数字化时代,Java 作为一门广泛应用的编程语言,在各类软件开发项目中占据着举足轻重的地位。无论是大型企业级应用、互联网平台,还是移动应用后端,都能看到 Java 的身影。然而,Java 开发者…...
使用sql查询excel内容
1. 简介 我们在前面的文章中提到了calcite支持csv和json文件的数据源适配, 其实就是将文件解析成表然后以文件夹为schema, 然后将生成的schema注册到RootSehema(RootSchema是所有数据源schema的parent,多个不同数据源schema可以挂在同一个RootSchema下)下, 最终使用…...
[Python学习日记-78] 基于 TCP 的 socket 开发项目 —— 模拟 SSH 远程执行命令
[Python学习日记-78] 基于 TCP 的 socket 开发项目 —— 模拟 SSH 远程执行命令 简介 项目分析 如何执行系统命令并拿到结果 代码实现 简介 在Python学习日记-77中我们介绍了 socket 基于 TCP 和基于 UDP 的套接字,还实现了服务器端和客户端的通信,本…...
电子应用设计方案101:智能家庭AI喝水杯系统设计
智能家庭 AI 喝水杯系统设计 一、引言 智能家庭 AI 喝水杯系统旨在为用户提供个性化的饮水提醒和健康管理服务,帮助用户养成良好的饮水习惯。 二、系统概述 1. 系统目标 - 精确监测饮水量和饮水频率。 - 根据用户的身体状况和活动量,智能制定饮水计划。…...
vue学习路线
以下是一个详细的Vue学习路线: 一、基础入门 (一)环境搭建 1. 安装Node.js和npm:Vue项目依赖于Node.js环境,需从官网下载并安装最新版本的Node.js,npm会随Node.js一起安装。 2. 安装Vue CLI:V…...
(15)Chainlink Automation(定时任务) 详细介绍及用法
Chainlink Automation 详细介绍 1. 什么是 Chainlink Automation? Chainlink Automation 是 Chainlink 提供的一个去中心化服务,专门用于自动化执行智能合约的链上操作。它允许开发者基于时间或特定条件(如链上或链下事件)触发智…...
从入门到精通:RabbitMQ的深度探索与实战应用
目录 一、RabbitMQ 初相识 二、基础概念速览 (一)消息队列是什么 (二)RabbitMQ 核心组件 三、RabbitMQ 基本使用 (一)安装与环境搭建 (二)简单示例 (三)…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
