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

2.3java运算符

运算符

1. 算术运算符

算术运算符用于执行基本的数学运算,像加、减、乘、除等。

运算符描述示例
+加法int a = 5 + 3; // a 的值为 8
-减法int b = 5 - 3; // b 的值为 2
*乘法int c = 5 * 3; // c 的值为 15
/除法int d = 6 / 3; // d 的值为 2
%取模(取余)int e = 7 % 3; // e 的值为 1
++自增int f = 5; f++; // f 的值为 6
--自减int g = 5; g--; // g 的值为 4

2. 赋值运算符

赋值运算符用于给变量赋值。

运算符描述示例
=简单赋值int a = 5; // a 的值为 5
+=加后赋值int b = 5; b += 3; // b 的值为 8
-=减后赋值int c = 5; c -= 3; // c 的值为 2
*=乘后赋值int d = 5; d *= 3; // d 的值为 15
/=除后赋值int e = 6; e /= 3; // e 的值为 2
%=取模后赋值int f = 7; f %= 3; // f 的值为 1

3. 比较运算符

比较运算符用于比较两个值,返回布尔类型(true 或 false)。

运算符描述示例
==等于int a = 5; int b = 5; boolean c = (a == b); // c 的值为 true
!=不等于int d = 5; int e = 3; boolean f = (d != e); // f 的值为 true
>大于int g = 5; int h = 3; boolean i = (g > h); // i 的值为 true
<小于int j = 5; int k = 7; boolean l = (j < k); // l 的值为 true
>=大于等于int m = 5; int n = 5; boolean o = (m >= n); // o 的值为 true
<=小于等于int p = 5; int q = 7; boolean r = (p <= q); // r 的值为 true

4. 逻辑运算符

逻辑运算符用于组合布尔表达式。

运算符描述示例
&&逻辑与boolean a = true; boolean b = false; boolean c = (a && b); // c 的值为 false
||逻辑或boolean d = true; boolean e = false; boolean f = (d||e); //f 的值为 true`
!逻辑非boolean g = true; boolean h = !g; // h 的值为 false

5. 位运算符

位运算符用于对二进制位进行操作。

运算符描述示例
&按位与int a = 5; int b = 3; int c = a & b; // c 的值为 1
|按位或int d = 5; int e = 3; int f = d | e; // f 的值为 7
^按位异或int g = 5; int h = 3; int i = g ^ h; // i 的值为 6
~按位取反int j = 5; int k = ~j; // k 的值为 -6
<<左移int l = 5; int m = l << 1; // m 的值为 10
>>右移int n = 5; int o = n >> 1; // o 的值为 2
>>>无符号右移int p = -5; int q = p >>> 1; // q 的值为一个很大的正数

6. 三元运算符

三元运算符是一种简洁的条件判断语句。

条件表达式 ? 表达式1 : 表达式2;
int a = 5;
int b = 3;
int max = (a > b) ? a : b; // max 的值为 5

运算符优先级

运算符优先级决定了表达式中运算符的计算顺序。优先级高的运算符先计算,相同优先级的运算符按照从左到右的顺序计算。以下是 Java 运算符的优先级,从高到低排列:

  1. 后缀运算符:() [] .
  2. 一元运算符:++ -- + - ! ~
  3. 乘除模运算符:* / %
  4. 加减运算符:+ -
  5. 移位运算符:<< >> >>>
  6. 关系运算符:< <= > >= instanceof
  7. 相等运算符:== !=
  8. 按位与运算符:&
  9. 按位异或运算符:^
  10. 按位或运算符:|
  11. 逻辑与运算符:&&
  12. 逻辑或运算符:||
  13. 三元运算符:? :
  14. 赋值运算符:= += -= *= /= %= &= ^= |= <<= >>= >>>=

在编写表达式时,可以使用括号 () 来明确指定计算顺序,提高代码的可读性。例如:

int result = (2 + 3) * 4; // 先计算括号内的加法,再计算乘法

+ 运算符除了用于数值的加法运算外,还能用于字符串的连接操作

字符串连接基本规则

当 + 运算符的操作数中有一个是字符串类型时,Java 会将其他操作数转换为字符串,然后进行连接操作。具体规则如下:

1. 字符串与基本数据类型连接

当字符串与基本数据类型(如 intdoubleboolean 等)使用 + 运算符时,基本数据类型会自动转换为字符串,然后与另一个字符串进行连接。

public class StringConcatenation {public static void main(String[] args) {// 字符串与 int 类型连接int num = 10;String str1 = "The number is: " + num;System.out.println(str1);// 字符串与 double 类型连接double d = 3.14;String str2 = "The value of pi is approximately: " + d;System.out.println(str2);// 字符串与 boolean 类型连接boolean isTrue = true;String str3 = "The condition is: " + isTrue;System.out.println(str3);}
}

在上述代码中,numd 和 isTrue 分别是 intdouble 和 boolean 类型,当它们与字符串使用 + 运算符时,会自动转换为字符串进行连接。

多个字符串与其他类型混合连接

+ 运算符是从左到右依次进行计算的,当多个字符串和其他类型混合使用 + 运算符时,会按照顺序依次进行连接。

public class MultipleStringConcatenation {public static void main(String[] args) {int a = 5;int b = 3;String result = "The sum of " + a + " and " + b + " is: " + (a + b);System.out.println(result);}
}

在上述代码中,首先将 "The sum of " 与 a 转换后的字符串连接,然后依次连接后续的字符串和变量。需要注意的是,(a + b) 用括号括起来是为了先进行数值加法运算,再将结果转换为字符串进行连接。如果没有括号,a 会先与前面的字符串连接,而不是先进行加法运算。

字符串连接中的类型转换顺序

当表达式中包含多个 + 运算符时,会按照从左到右的顺序进行计算。一旦遇到字符串类型的操作数,后续的操作数都会被转换为字符串进行连接。

public class ConversionOrder {public static void main(String[] args) {int x = 1;int y = 2;String s = "Result: ";System.out.println(s + x + y);  // 先将 s 与 x 转换后的字符串连接,再与 y 转换后的字符串连接System.out.println(x + y + s);  // 先进行 x + y 的数值加法运算,再将结果与 s 连接}
}

在上述代码中,第一个 println 语句先将 s 与 x 转换后的字符串连接,再与 y 转换后的字符串连接,结果为 "Result: 12";第二个 println 语句先进行 x + y 的数值加法运算,得到 3,再将 3 转换为字符串与 s 连接,结果为 "3Result: "

综上所述,+ 运算符在 Java 中用于字符串连接时,会根据操作数的类型自动进行类型转换,按照从左到右的顺序依次进行连接操作。在编写代码时,需要注意运算符的优先级和类型转换顺序,以确保得到预期的结果。

自动类型转换

自动类型转换,也称为隐式类型转换,是指在某些情况下,Java 编译器会自动将一种数据类型转换为另一种数据类型,而无需程序员进行额外的操作。自动类型转换需要满足以下两个条件:

  1. 目标类型的范围大于源类型的范围:即目标类型能够容纳源类型的所有可能值。
  2. 数据类型兼容:两种数据类型必须是兼容的,例如数值类型之间可以进行自动类型转换。

以下是 常见的自动类型转换示例:

public class AutomaticTypeConversion {public static void main(String[] args) {// 1. 从 byte 到 shortbyte byteValue = 10;short shortValue = byteValue;System.out.println("byte 转换为 short: " + shortValue);// 2. 从 short 到 intshort anotherShortValue = 20;int intValue = anotherShortValue;System.out.println("short 转换为 int: " + intValue);// 3. 从 int 到 longint anotherIntValue = 30;long longValue = anotherIntValue;System.out.println("int 转换为 long: " + longValue);// 4. 从 int 到 floatint yetAnotherIntValue = 40;float floatValue = yetAnotherIntValue;System.out.println("int 转换为 float: " + floatValue);// 5. 从 long 到 doublelong anotherLongValue = 50L;double doubleValue = anotherLongValue;System.out.println("long 转换为 double: " + doubleValue);}
}

在上述代码中,分别展示了从 byte 到 shortshort 到 intint 到 longint 到 float 以及 long 到 double 的自动类型转换。由于目标类型的范围大于源类型的范围,编译器会自动进行转换。

强制类型转换

强制类型转换,也称为显式类型转换,是指当需要将一个范围大的数据类型转换为范围小的数据类型时,程序员需要手动进行类型转换。强制类型转换可能会导致数据丢失,因为目标类型可能无法容纳源类型的所有可能值。

目标类型 变量名 = (目标类型) 源类型变量;
public class ExplicitTypeConversion {public static void main(String[] args) {// 1. 从 double 到 intdouble doubleValue = 3.14;int intValue = (int) doubleValue;System.out.println("double 转换为 int: " + intValue);// 2. 从 int 到 byteint intValue2 = 130;byte byteValue = (byte) intValue2;System.out.println("int 转换为 byte: " + byteValue);// 3. 从 long 到 shortlong longValue = 32768L;short shortValue = (short) longValue;System.out.println("long 转换为 short: " + shortValue);}
}

在上述代码中,分别展示了从 double 到 intint 到 byte 以及 long 到 short 的强制类型转换。需要注意的是,强制类型转换可能会导致数据丢失,例如 double 类型的小数部分会被截断,int 或 long 类型的值可能会超出目标类型的范围而导致溢出。

综上所述,自动类型转换是编译器自动完成的,而强制类型转换需要程序员手动进行。在进行强制类型转换时,需要谨慎处理,避免数据丢失。

小于 int 类型的数据类型(如 byteshort 和 char)在进行运算时,通常都会自动转换为 int 类型。

原因

  • 保证运算精度byteshort 和 char 的取值范围相对较小,在运算过程中结果可能会超出它们的表示范围,转换为 int 类型可以避免溢出问题,确保运算结果的准确性。
  • 简化指令集:Java 虚拟机(JVM)的指令集是为处理 int 类型设计的。将小于 int 的数据类型转换为 int 类型,可以统一处理整数运算,简化 JVM 的指令集和运算规则,提高运算效率。

示例代码

public class SmallerThanIntConversion {public static void main(String[] args) {// byte 类型运算byte byte1 = 10;byte byte2 = 20;// byte1 和 byte2 会自动转换为 int 类型进行运算int byteResult = byte1 + byte2;System.out.println("byte 运算结果: " + byteResult);// short 类型运算short short1 = 30;short short2 = 40;// short1 和 short2 会自动转换为 int 类型进行运算int shortResult = short1 + short2;System.out.println("short 运算结果: " + shortResult);// char 类型运算char char1 = 'A';char char2 = 'B';// char1 和 char2 会自动转换为 int 类型进行运算int charResult = char1 + char2;System.out.println("char 运算结果: " + charResult);}
}

代码解释

  • byte 类型运算byte1 和 byte2 是 byte 类型,但在执行 byte1 + byte2 运算时,它们会自动转换为 int 类型,最终结果也是 int 类型。
  • short 类型运算short1 和 short2 是 short 类型,在运算时同样会自动转换为 int 类型,结果为 int 类型。
  • char 类型运算char 类型在 Java 中本质上是无符号的 16 位整数。char1 和 char2 在运算时会自动转换为 int 类型,结果也是 int 类型。

如果要将运算结果赋值给小于 int 类型的变量,需要进行强制类型转换,但要注意可能会出现数据溢出的问题。

相关文章:

2.3java运算符

运算符 1. 算术运算符 算术运算符用于执行基本的数学运算&#xff0c;像加、减、乘、除等。 运算符描述示例加法int a 5 3; // a 的值为 8-减法int b 5 - 3; // b 的值为 2*乘法int c 5 * 3; // c 的值为 15/除法int d 6 / 3; // d 的值为 2%取模&#xff08;取余&…...

元数据驱动的 AI 开发:从数据目录到模型训练自动化

元数据驱动的 AI 开发&#xff1a;从数据目录到模型训练自动化 一、引言 在人工智能技术蓬勃发展的当今时代&#xff0c;AI 开发已成为各行业实现创新的核心驱动力。然而&#xff0c;数据规模爆炸式增长、类型复杂多样、来源分散等问题&#xff0c;导致数据管理混乱、模型训练…...

从OpenAI收购实时数据引擎揭示AI数据库进化方向

第一章&#xff1a;一场技术并购背后的“数据战争” 1.1 OpenAI为何盯上Rockset&#xff1f; 当OpenAI宣布收购Rockset时&#xff0c;数据库圈层炸开了锅。这家成立于2016年的公司&#xff0c;其创始人团队堪称“数据库界梦之队”&#xff1a;CTO Dhruba Borthakur曾主导Face…...

Linux0.11内存管理:相关代码

ch13_2 源码分析 boot/head.s 页表初始化&#xff1a; 目标&#xff1a;初始化分页机制&#xff0c;将线性地址空间映射到物理内存&#xff08;前 16MB&#xff09;&#xff0c;为保护模式下的内存管理做准备。核心流程 分配页目录表和页表的物理内存空间&#xff08;通过 .…...

ShaderToy学习笔记 03.多个形状和旋转

1. 正方形和旋转 1.1. 正方形 要绘制一个正方形&#xff0c;我们需要定义一个点到正方形边界的距离函数。对于中心在原点的正方形&#xff0c;其数学表达式为&#xff1a; 对于一个点 p(x,y) 到正方形边界的距离函数可以表示为: d max(|x|, |y|) - r 其中: |x| 和 |y| 分…...

Arduino+ESP01S烧录

这种办法不使用与ThonnyMircopython 前言 这里我们使用烧录器烧录&#xff0c;淘宝十几块钱一个的东西&#xff0c;ESP01S做一个WIFI继电器还是蛮有用的&#xff0c;就是烧录起来不太方便&#xff0c;传统的办法接线麻烦&#xff0c;需多次上电&#xff0c;也可能因为电源问题…...

什么是Lua模块?你会如何使用NGINX的Lua模块来定制请求处理流程?

大家好&#xff0c;我是锋哥。今天分享关于【什么是Lua模块&#xff1f;你会如何使用NGINX的Lua模块来定制请求处理流程&#xff1f;】面试题。希望对大家有帮助&#xff1b; 什么是Lua模块&#xff1f;你会如何使用NGINX的Lua模块来定制请求处理流程&#xff1f; 1000道 互联…...

小白自学python第三天

学习python第三天 一、函数 1、函数介绍 函数就是组织好的&#xff0c;可重复使用的&#xff0c;用以实现特定功能的代码块。 现在我们现在需要统计多个字符串长度并且不考虑使用内置函数&#xff0c;你会怎么做&#xff1f;我们先用一种原始人办法看看吧&#xff1a; str…...

【CF】Day44——Codeforces Round 908 (Div. 2) C + Codeforces Round 1020 (Div. 3) DE

C. Anonymous Informant 题目&#xff1a; 思路&#xff1a; 比这场的D难&#xff0c;虽然也不是很难 一个很容易想到的就是由当前状态推出初始状态&#xff0c;那么怎么推呢&#xff1f; 一个性质就是如果对于某一个 x 它可以执行左移操作的话&#xff0c;那么它一定会到数组…...

深入理解HashMap:Hash冲突的解决机制

引言 HashMap 是 Java 集合框架中最常用的数据结构之一&#xff0c;它通过键值对的形式存储数据&#xff0c;并利用哈希算法实现高效的插入、删除和查询操作。然而&#xff0c;在实际使用中&#xff0c;由于哈希函数的有限性和哈希桶数量的限制&#xff0c;不可避免地会出现 哈…...

Datawhale AI春训营二期---使用AI实现老人的点餐效果(关于task2的相关思考)

文章目录 1.多次测试的结果2.分数是如何提高的3.关于上分点拨4.关于task2的收获 1.多次测试的结果 第一次和第二次的&#xff0c;都是使用的baseline: 第三次的&#xff1a; 2.分数是如何提高的 之前的几次都是通过这个baseline进行运行的&#xff0c;然后今天是了解了一下这…...

摩尔投票法详细介绍

原理 摩尔投票法&#xff08;Boyer-Moore Voting Algorithm&#xff09;是一种用于在存在多数元素的数组中&#xff0c;高效找出出现次数超过数组长度一半的元素的算法。其核心思想是通过元素抵消策略&#xff0c;逐步缩小候选范围&#xff0c;最终确定多数元素。 核心假设&a…...

DP之书架

现按一定顺序给出所有要放置于书架上的书&#xff0c;共有 n 本&#xff0c;第 i 本书有一个长度 hi​。 书架有若干层&#xff0c;层与层之间的宽度不一定相等&#xff0c;但是一层的宽度不能小于其上所摆放的任何一本书的长度。同时&#xff0c;每层上的书的长度之和不能超过…...

Python Cookbook-6.11 缓存环的实现

任务 你想定义一个固定尺寸的缓存&#xff0c;当它被填满时&#xff0c;新加入的元素会覆盖第一个(最老的)元素。这种数据结构在存储日志和历史信息时非常有用。 解决方案 当缓存填满时&#xff0c;本节解决方案及时地修改了缓存对象&#xff0c;使其从未填满的缓存类变成了…...

计算机网络基本概念

层次名称主要功能第七层应用层直接面向用户&#xff0c;提供应用服务&#xff08;如浏览网页、发邮件&#xff09;第六层表示层处理数据格式、加密解密、压缩解压第五层会话层建立、管理、终止会话&#xff08;连接&#xff09;第四层传输层提供端到端的数据传输&#xff08;如…...

Eigen线性代数求解器(分解类)

1. 核心分解类概览 Eigen 提供多种矩阵分解方法&#xff0c;适用于不同矩阵类型&#xff08;稠密/稀疏、正定/非正定等&#xff09;&#xff1a; 分解类适用矩阵类型分解形式典型应用场景PartialPivLU方阵&#xff08;可逆&#xff09;APLUAPLU通用线性方程组求解FullPivLU任…...

【Android】四大组件之Service

目录 一、什么是Service 二、启停 Service 三、绑定 Service 四、前台服务 五、远程服务扩展 六、服务保活 七、服务启动方法混用 你可以把Service想象成一个“后台默默打工的工人”。它没有UI界面&#xff0c;默默地在后台干活&#xff0c;比如播放音乐、下载文件、处理…...

VO包装类和实体类分别是什么?区别是什么?

VO包装类和实体类 1. 实体类&#xff08;Entity Class&#xff09;是什么&#xff1f;2. VO包装类&#xff08;Value Object Class&#xff09;是什么&#xff1f;3. VO包装类和实体类的区别4. 实际应用中的区别5. 举例5.1. 实体类&#xff08;Entity Class&#xff09;的定义与…...

如何创建一个C#项目(基于VS2022版)

一.先找到要保存项目的位置,新建一个文件夹 二.打开VisualStudio,选择创建新项目 三.选择模版: 选择操作语言和操作系统 这个是跨平台的 初学在windows系统上,可选择其他,下面这个是不带窗体模版 也可根据需要选择带窗体模版 点击下一步 填写项目名称,选择项目保存位置,填写解…...

RabbitMQ 四种交换机(Direct、Topic、Fanout、Headers)详解

本文是博主在梳理 RabbitMQ 知识的过程中&#xff0c;将所遇到和可能会遇到的基础知识记录下来&#xff0c;用作梳理 RabbitMQ 的整体架构和功能的线索文章&#xff0c;通过查找对应的知识能够快速的了解对应的知识而解决相应的问题。 文章目录 一、直连交换机&#xff08;Dire…...

聚合分销系统开发:短剧小说外卖网盘电商cpscpa系统

聚合分销系统是一种整合了多种分销项目和功能的综合性平台&#xff0c;其核心在于通过CPS&#xff08;按销售付费&#xff09;和CPA&#xff08;按行为付费&#xff09;两种模式&#xff0c;为推广者提供多样化的赚钱机会。以下是聚合分销系统的主要项目和功能&#xff1a; 一…...

【Flume 】Windows安装步骤、配置环境

&#x1f6e0; Flume 是什么&#xff1f; Apache Flume 是一个高效、可靠、可扩展的数据收集系统&#xff0c;通常用于收集日志、流数据&#xff0c;比如收集数据到 HDFS、Kafka 等。 虽然 Flume 本身是为 Linux 服务器设计的&#xff0c;但 在 Windows 本地也是能跑起来的&a…...

【信息系统项目管理师】高分论文:论质量管理和进度管理(智慧旅游平台建设项目)

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 论文1、规划质量管理2、质量保证3、质量控制论文 2019年3月,我作为项目经理,参加了某市智慧旅游平台建设项目,负责项目的全面管理, 该项目以打造一流的国内外生态旅游城市为目标,旨在大数据云平台建设的基…...

一致性哈希详解:优雅地扩展分布式系统

引言 对于哈希算法&#xff0c;相信大家一定不会陌生。它经常被用在负载均衡、分库分表等场景中。例如&#xff0c;在进行分库分表时&#xff0c;我们可能初步根据业务分析&#xff0c;确定 128 张表足以满足当前的数据量需求。此时&#xff0c;当需要插入或查询一条记录时&am…...

pytest 技术总结

目录 一 pytest的安装&#xff1a; 二 pytest有三种启动方式&#xff1a; 三 用例规则&#xff1a; 四 配置框架&#xff1a; 一 pytest的安装&#xff1a; pip install pytest # 安装 pip install pytest -U # 升级到最新版 二 pytest有三种启动方式&#xff1a; 1…...

数据库MySQL学习——day5(总结与复习实践)

文章目录 1、复习总结1.1. 数据库基础1.2. 表操作1.3. 数据操作1.4. 更新与删除 2、实践任务&#xff1a;创建学生管理系统数据库2.1. 数据库设计2.2. 创建表的SQL语句2.3. 插入示例数据2.4. 查询与数据操作示例 3、调试与练习4、 今日小结 1、复习总结 1.1. 数据库基础 数据…...

unity bug

发现一个奇怪的bug&#xff0c;就是某些unity版本打包apk时候不允许StreamingAssets里面有中文文件或者中文路径。比如下图这面这俩都是不行的。 解决方案&#xff1a;中文改为英文即可。 一般报错信息如下&#xff1a; > Configure project :launcher WARNING:The option s…...

苹果计划2026年底前实现美版iPhone“印度造”,以减轻关税及地缘政治风险

基于 6 个来源 据多家媒体报道&#xff0c;苹果公司计划在2026年底前&#xff0c;实现在印度组装销往美国的大部分或全部iPhone手机&#xff0c;以减轻关税和地缘政治紧张局势带来的风险。这一目标意味着苹果需将印度的iPhone产量增加一倍以上&#xff0c;凸显其供应链多元化战…...

新增Webhook通知功能,文档目录树展示性能优化,zyplayer-doc 2.5.1 发布啦!

zyplayer-doc是一款适合企业和个人使用的WIKI知识库管理工具&#xff0c;支持在线编辑富文本、Markdown、表格、Office文档、API接口、思维导图、Drawio以及任意的文本文件&#xff0c;支持基于知识库的AI问答&#xff0c;专为私有化部署而设计&#xff0c;最大程度上保证企业或…...

【量化交易笔记】17.多因子的线性回归模型策略

前言 上一篇介绍了 因子的评价和分析方法&#xff0c;让我知道如何判断该因子的作用&#xff0c;以及对最终结果的影响&#xff0c;其最大的问题&#xff0c;他只能评价和分析单因子&#xff0c;而对多个因子&#xff0c;不能直接加以评价。我们自然会想到&#xff0c;如果是多…...

五年经验Java开发如何破局创业

🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息文章目录 五年经验Java开发如何破局创业一、创业方向筛选与优劣势分析**方向1:技术教育/在线课程开发****方向2:企业级技术服务外包****方向3:技…...

定制一款国密浏览器(11):SM2算法的椭圆曲线参数定义

在国密算法中,SM2 算法是最复杂的,不仅是算法本身比较复杂,其应用场景也复杂。不管 SM2 算法本身有多复杂,作为开发者,我们需要知道的是 SM2 算法是建立在椭圆曲线算法(ECC)之上。关于 SM2 算法和椭圆曲线算法之间的关系,参考我之前的一篇文章: 解读国密非对称加密算…...

RAG技术与应用---0426

大语言模型>3.10 课程中会用到python 工具箱&#xff1a; faiss,modelscope,langchain,langchain_community&#xff0c;PyPDF2 1&#xff09;大模型应用开发的三种模式 提示词没多少工作量&#xff0c;微调又花费时间费用&#xff0c;RAG是很多公司招聘用来对LLM进行应用…...

STM32的开发环境介绍

目录 STM32软件环境 Keil软件在线安装 其他软件环境安装 STM32开发的几种方式 STM32寄存器版本和库函数版本 标准外设库的作用&#xff1a; STM32软件环境 STM32 的集成开发环境&#xff08;IDE&#xff09;&#xff1a;编辑编译软件 常见的环境&#xff1a; (1)KEIL&a…...

【生成式AI】从原理到实践的创造性革命

目录 前言技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解核心作用讲解关键技术模块说明技术选型对比 二、实战演示环境配置要求核心代码实现&#xff08;文生图&#xff09; 三、性能对比测试方法论量化数据对比结果分析 四、最佳实践推荐方…...

Win下Pycharm运行/调试配置脚本形参执行替换Linux下终端执行,进行调试需要注意的

Linux下终端执行 python demo/image_demo.py demo/demo.jpg rtmdet_tiny_8xb32-300e_coco.py --weights rtmdet_tiny_8xb32-300e_coco_20220902_112414-78e30dcc.pth --device cpuWin下Pycharm运行/调试配置脚本形参执行 主要改红色两处 如果工作目录正确&#xff0c;脚本形参…...

Pytorch(无CPU搭建)+Jupyter

2024年最新最简洁深度学习环境配置&#xff1a;AnacondaPyTorch(CPU、GPU)VScodePycahrm_哔哩哔哩_bilibili 跟 PyCharm說再見, [VSCode] PythonJupyter 超牛逼的功能 ! 5分鐘大幅提升編碼效率~ 數據分析、AI大神必備_哔哩哔哩_bilibili...

类的高级特性与语法细节

static 静态关键字 Java中的static关键字用于修饰类的成员&#xff08;属性或方法&#xff09;&#xff0c;表示“静态”的含义&#xff0c;即属于类本身&#xff0c;而非某个对象。静态成员在内存中只有一份&#xff0c;在类加载时初始化&#xff0c;生命周期贯穿程序运行始终…...

基于 RAG 的 Text2SQL 全过程的 Python 实现详解,结合 LangChain 框架实现自然语言到 SQL 的转换

什么是RAG 一、核心流程&#xff1a;三阶段协同 RAG的核心流程分为检索&#xff08;Retrieval&#xff09;、增强&#xff08;Augmentation&#xff09;、生成&#xff08;Generation&#xff09;三个阶段&#xff0c;形成“检索→知识整合→生成”的闭环。 1. 检索&#xff…...

使用 OpenCV 进行视觉图片调整的几种常见方法

以下是使用 OpenCV 进行视觉图片调整的几种常见方法&#xff1a; 调整图片大小 指定目标尺寸&#xff1a;使用cv2.resize()函数&#xff0c;通过设定目标图像的宽度和高度来调整图片大小。例如&#xff0c;将图片调整为 200x200 像素&#xff1a; import cv2 image cv2.imre…...

【特殊场景应对9】视频简历的适用场景与风险分析

写在最前 作为一个中古程序猿,我有很多自己想做的事情,比如埋头苦干手搓一个低代码数据库设计平台(目前只针对写java的朋友),比如很喜欢帮身边的朋友看看简历,讲讲面试技巧,毕竟工作这么多年,也做到过高管,有很多面人经历,意见还算有用,大家基本都能拿到想要的offe…...

Dify 1.3.0 为 LLM 节点引入了结构化输出支持

Dify 1.3.0 为 LLM 节点引入了结构化输出支持 0. 引言1. 使用方法 0. 引言 Dify 1.3.0 开始&#xff0c;在 LLM 节点支持结构化输出&#xff1a;Dify 已经为 LLM 节点引入了结构化输出支持。这意味着您的语言模型现在可以返回整齐组织且易于处理的数据。后端实现由 Nov1c444 在…...

【Linux网络】HTTP协议全解析 - 从请求响应到方法与Header

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;博客仓库&#xff1a;https://gitee.com/JohnKingW/linux_test/tree/master/lesson &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &…...

JSP实现用户登录注册系统(三天内自动登录)

JSP实现用户登录注册系统 引言 在Web开发中&#xff0c;用户认证是最基础且核心的功能之一。本文基于JSP技术&#xff0c;实现了一个包含注册、登录、自动登录&#xff08;3天内&#xff09;、退出等功能的用户系统&#xff0c;并在过程中解决了Cookie字符错误、错误信息回显…...

大数据模型现状分析

大数据模型现状分析 一、引言 在当今数字化时代&#xff0c;数据以前所未有的速度增长&#xff0c;大数据已成为推动各行业发展的核心动力。大数据模型作为挖掘数据价值的关键工具&#xff0c;正受到广泛关注与深入研究。通过对海量、多样且高速产生的数据进行处理和分析&…...

代码随想录算法训练营第二十八天

LeetCode题目: 509. 斐波那契数70. 爬楼梯746. 使用最小花费爬楼梯2444. 统计定界子数组的数目(每日一题) 其他: 今日总结 往期打卡 动态规划解题步骤: 确定递推公式确定遍历顺序记忆化搜索(确定dp数组以及下标的含义与初始化值)递推优化与空间优化 509. 斐波那契数 跳转: 5…...

HTML与安全性:XSS、防御与最佳实践

HTML 与安全性&#xff1a;XSS、防御与最佳实践 前言 现代 Web 应用程序无处不在&#xff0c;而 HTML 作为其基础结构&#xff0c;承载着巨大的安全责任。跨站脚本攻击&#xff08;XSS&#xff09;仍然是 OWASP Top 10 安全威胁之一&#xff0c;对用户数据和网站完整性构成严…...

三维重建(二十)——思路整理与第一步的进行

文章目录 一、整体思路二、细分三、之前存在问题四、任务安排五、第一步——找到内参并选定一种5.1 train的RTK5.2 test的RTK5.3 各选择一个5.3.1 train-185.3.2 test-193一、整体思路 这部分主要是宏观的讲一下整体框架。 从gshell里面提取核心参数,放入py3d,渲染出图片,…...

判断 ONNX 模型是否支持 GPU

&#x1f50d; 判断 ONNX 模型是否支持 GPU 的几个关键点&#xff1a; ✅ 1. 检查模型支持的 Execution Provider 可以通过下面的代码打印出来当前模型使用了什么设备&#xff1a; 需要安装好&#xff1a;onnxruntime-gpu import onnxruntime as ort session ort.InferenceSe…...

CANFD技术在实时运动控制系统中的应用:协议解析、性能测试与未来发展趋势

摘要&#xff1a; 本文深入探讨了CANFD技术在实时运动控制系统中的应用。通过对传统CAN协议与CANFD协议的对比分析&#xff0c;详细阐述了CANFD在提升数据传输效率、增强系统实时性与稳定性方面的优势。文章结合具体测试案例&#xff0c;对CANFD总线的性能指标进行了全面评估&a…...