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 基本使用 (一)安装与环境搭建 (二)简单示例 (三)…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...
