【面经】杭州产链数字科技一面
1.介绍一下自己
面试官您好!我叫***,目前是就读于****计算机科学与技术专业的一名学生。我平时在学校也自学了编程相关的知识,比如Java基础、Springboot、SpringCloud,关系型数据库Mysql,非关系型数据库Redis,还有一些服务治理组件像Nacos、Sentinel、Seata、RabbitMQ等,并积极地
参加学校的社团和竞赛等来提升我的能力,我平时也经常会浏览一些技术相关的博客和文章,并且我也会将自己在学习过程中所遇到的问题以写博客的方式记录下来以便巩固知识。以上就是我目前的一个情况。
2.介绍一下你的这个晓时宠物医院平台这个项目吧(开发的原因)
晓时宠物医院平台,这是我第一个由自己独立搭建的Spring boot项目,当时也正好有一个契机,就是家里的猫生病了然后想着现在网上的宠物医院挂个号嘛,然后发现那个系统使用起来特别不方便,首先就是页面的UI做的很简陋,还有就是我在访问的时候很难去清楚地了解到医院当前提供了什么服务和医生的排班情况。导致我在上面花费了很长时间。之后我就在想我能不能自己试着做一个宠物医院平台,然后就做了这么一个项目。
3.具体实现了什么功能?
晓时宠物医院是基于Spring boot的B/S架构单体架构项目。用户操作全流程数字化,覆盖实际赴诊前的一系列操作,优化了以往的在线就诊预约平台的手续繁杂、理解困难等问题,此项目采用较前沿的技术栈和架构思想,并可以在后续扩展应用于更多种类的相关平台。此系统主要用于实现用户在网上在线选择服务并预约服务的功能,方便用户的操作,节约用户的时间。用户可以在登录后可以在用户中心对宠物信息进行完善,并可以查看已有的预约信息和历史订单等数据。在就诊界面上用户可以针对宠物的情况自由的选择一个套餐服务并可以选择任意的医师进行预约,系统会为用户展示医师的排班时间表。提交订单后系统会为用户生成一个订单为其安排就医时间,用户在规定时间可以到线下携宠物就诊。同样的用户可以在就诊前取消订单。系统同样提供了用户对任何服务的评论和点赞功能,以便使用者可以了解到真实的信息。在管理端系统则提供了管理用户信息、宠物信息、预约信息、库存信息等数据并加以管理。
4.那你的一些访问频率比较高的数据是怎么处理的?
我会提前将一些访问频率大的数据写入redis进行保存,以减缓数据库的访问压力。然后我具体对redis的操作是这样的:在启动服务之前,我首先将一些热点数据提前进行写入redis缓存,进行缓存预热,然后在缓存容量达到设定的阈值后采取LFU内存淘汰策略,来保证缓存中永远是热点数据。对于排行榜的实现,我采用了SortedSet来实现。
5.你说一下你的这个乐享云购项目吧
这个项目是我在github上拉取下来进行模仿开发的,因为现在线上购物比较流行,比如京东、淘宝都是做的非常大的平台,我对它们的业务流程、细节都很感兴趣,正好github上面有开源的这么一个项目,我就学习了一下项目的思想,然后仿照着这个项目进行开发。乐享云购这个项目也是实现的在线购物的功能,包括用户管理、商品管理等等功能
6.你的项目中分了几个微服务?分别是什么?
我的项目主要分为了“用户服务”、“商品服务”、“网关服务”、“远程调用服务”、“工具服务”、“支付服务”、“交易服务”等。
7.你是怎么实现数据库的分库分表的?
首先,数据库分库分表主要分为水平分库分表和垂直分库分表,水平分库分表是根据数据的量的大小进行分割,比如1-10000号存在一张表、10001-20000存在另一张表;在我的项目中,我主要采用了垂直分库分表,也就是根据一些表的字段进行拆分,对于一张表中关系相对疏远的字段进行拆分,这样也可以减少单表的数据量大小,以减少表查询时的压力。
8.那你有没有了解过分库分表的工具?
虽然我并没有实际的深入的去使用过,但是我之前在牛客上面刷到过有些人分享他们会在分库分表时利用一些工具进行协助,可以大大的提升效率。然后我了解的大致有以下这几种:
1.ShardingSphere
2.MyCAT
3.DBLE
9.假设说服务的访问量很大,超过了服务的承受范围,你是怎么处理这个问题的?
我是采用了Sentinel组件来帮助我进行服务的治理,比如可以在Sentinel中设置服务的最大QPS,当访问量超过设定值的时候就采取熔断,以及设置失败率阈值等等操作。因为大多数服务的请求结构都是树形结构,即最终有某几个服务需要承受来自许多的服务的请求,这种情况下根服务就很容易挂掉,一旦它挂掉,就会导致服务大面积的不可用,也就是服务雪崩,采用Sentinel可以及时的对服务进行熔断以及采取降级策略。
10.既然你说到了降级,那么你说说你在项目中具体是怎么实现这个功能的
因为我编写了服务远程调用的服务模块,在openfeign中可以手动定义fallback接口,fallbackFactory类实现fallbackFactory<>接口,在其中创建create方法并返回一个重写实现的远程调用的接口的匿名内部类,在其中定义降级逻辑。
11.你是怎么进行事务控制的
我是通过Seata进行的事务控制,因为这是一个微服务架构的项目,而常规的事务控制方案只能管理单节点的事务,所以我采用了Seata的分布式事务的解决方案,它将事务分成多个小的事务,由全局事务协调器统一进行管理。
12.那么在Seata中有哪些模式,你的项目使用了哪个模式?
Seata中有 AT 模式 、TCC 模式 、SAGA 模式 和 XA 模式 。AT模式采用两阶段提交的方式,代码侵入性低,采用最终一致性的思想;TCC的原理是将事务的执行分为三个阶段,try、confirm、cancel根据执行的结果判断是否回滚,是强一致性的解决方案;SAGA是基于长事务的方案,将事务分为许多小事务,由统筹器管理;XA是强一致性方案,提前锁定事务和资源,最终统一处理。我的项目中采用的是默认的AT模式,因为它对项目的侵入性较低,且适合大部分业务场景。
13.在你的项目中有没有一些调用链比较长的业务,你是怎么处理他们可能出现的问题的。
在我的项目中执行链较长的业务就比如支付模块,他是有这样的一个逻辑,用户添加完商品先提交订单,商品服务执行库存预扣减,然后后端服务器接收到请求就由交易模块来执行创建订单的操作,然后等待用户支付再去执行一个更改订单状态的操作,最后在将购物车的商品清空。
但是因为这些操作是通过远程调用实现的,所以就有可能发生一些错误导致订单状态没能及时改变,比如用户交易后交易模块发生错误没有成功的向订单模块发送支付成功的消息,这样就会导致一些大的问题,这是最危险的。所以我就在上面加了一个兜底策略,就是说在创建订单的时候就会发送一个延迟消息,时间设为15分钟,因为支付所允许的时间就是15分钟嘛。在15分钟后就会去主动查询订单的一个状态,如果说订单显示已支付就表示正常执行了,如果显示未支付或者其他状态,就去检查流水,如果发现钱已经打到账上了,那么就说明其中发生了一些问题,就把订单状态改为已支付,如果没有查到账目,就表示没付钱嘛,就把订单状态改为已取消。
14.我看你有做过数据库优化,你有哪些方法区优化数据库的访问压力?
数据库在我们的业务中是非常重要的,所以保证数据库能够正常运行是必不可少的。我一般会通过一下的手段进行数据库的优化。
1.首先我会考虑对数据库的访问加一层缓存,比如本地缓存、redis缓存等,他们都可以阻挡大部分的请求打到数据库。
2.缓解数据库查询时的压力同样可以对数据库本身做一些操作,比如在热点字段上建立索引,不易更改的数据且访问量大的数据建立视图;或者我们可以将读并发量高和写并发量高的数据分开存储,使用不同的存储引擎;同时在数据量极高的情况下我们可以通过分库分表的操作减轻查询负担,减小死锁和阻塞的产生概率;再进一步的话,对于高并发量的请求,我们可以对数据库做集群处理,搭建主从库,实现读写分离,避免单节点数据库崩溃导致的服务不可用。
3.一样的道理,我们同样可以多设置几层本地缓存和对缓存做集群,而redis是天生支持这一点的,redis可以做集群部署,搭建主从节点,实现读写分离,这样可以大大的减少数据库的访问压力。
以上就是我对于数据库优化的一些想法
15.既然你提到了存储引擎,那你说一说有哪些存储引擎,他们的区别是什么?
最常用的存储引擎是MyISAM和InnoDB。
他们主要有以下区别:
存储空间上:MyISAM可被压缩,存储空间较小;InnoDB需要建立缓冲区缓存数据和索引,所需空间较大
文件格式:MyISAM的索引和数据分开存储(.MYD和.MYI);InnoDB的数据和缓存集中存储
存储顺序:MyISAM按插入顺序存储;InnoDB按主键大小排序
外键:MyISAM不支持外键;InnoDB支持外键
事务:MyISAM不支持事务;InnoDB支持事务
锁粒度:MyISAM支持表级锁;InnoDB支持表级锁、行级锁
执行效率:MyISAM新增更优;InnoDB删除、修改、查询更优
索引:MyISAM是堆表,不支持哈希索引支持全文索引;InnoDB是索引组织表,支持哈希索引不支持全文索引
存储结构:MyISAM 表信息被放在三个文件(表结构、索引、数据);InnoDB表信息被放在一个文件当中
16.你说一说有哪几种索引
mysql中索引主要有1.主键索引,主键索引每张表只能有一个,不能重复,效率最高;2.唯一索引,表示表中该字段是唯一不能重复的,一张表可以有多个;3.普通索引,可以重复,一张表可以存在多个;4.全文索引,搜索引擎的常用技术。
17.mysql中undolog、redolog、binlog的作用,你结合ACID特性说一下
首先ACID表示数据库事务的特性,分别是“原子性”、“一致性”、“隔离性”、“持久性”。
undolog是一个回滚日志,它的的作用是对数据的版本做控制的,在mysql的MVCC中作用很大,所以undolog主要体现了ACID的原子性和一致性。
redolog主要用于数据库崩溃的数据恢复,将数据写入磁盘,所以redolog主要体现了持久性。
binlog主要用于数据库主从复制和数据恢复,其是一个二进制文件,记录了执行的操作信息,同样也在MVCC中实现了事务的隔离,所以其体现了一致性和隔离性。
18.说一下JVM有哪几部分,分别有什么作用
JVM主要分为四大区域。
类加载器:用于将.java文件翻译为.Class文件并读取为JVM内部的存储结构
运行时数据区:其主要包括虚拟机栈、本地方法栈、程序计数器、堆内存区、方法区。用于保存程序运行时的类、方法、变量等信息。
执行引擎: 包括即时编译器、解释器、垃圾回收器,作用是将字节码文件翻译为系统指令交由CPU执行。
本地库接口:其中存放的是由c语言编写的本地方法,在运行时由本地方法库接口提供支持
19.线程池有哪几种?
线程池主要有以下几种:
1.newCachedThreadPool():创建一个可缓存线程池,若线程池长度超过需要则回收,不够则创建。
2.newFixedThreadPool(): 创建一个定长线程池,控制最大并发数,超过数量的请求放在队列中等待。
3.newScheduledThreadPool():创建一个定长线程池,周期性的执行任务。
4.newSingleThreadPool(): 同时只让一个线程执行任务,可指定优先级(FIFO、LIFO、优先级)
5.ThreadPoolExecutor(): 最常用的线程池,可以自定义各种参数
20.讲一下线程池的参数有哪些
线程池有7大参数:
1.核心线程数 2.最大线程数 3.存活时间 4.存活时间单位 5.线程工厂 6.阻塞队列 7.拒绝策略
21.你是怎么保证并发场景下数据的一致性的
1.在并发场景下,可能会出现多个线程对同一个共享变量进行操作的一个场景,那么我们首先就是要对这个变量加上volitile的关键字,他就可以保证一旦被修改就会加载到内存中使其他线程可见,但是它并不能保证先策划给你的安全,所以我们就要考虑加锁,这个时候就要注意加锁的一个顺序,要避免死锁。然后使用一些并发安全的容器,比如concorrentHashMap、copyonwriteArraylist等。
然后要保证数据的一致性我们可以考虑给数据库表加上一个互斥锁或者是乐观锁,又或者是考虑通过依靠数据库的隔离级别来保证数据的一致性。
22.mysql有哪几种隔离级别
mysql中主要有以下四种事务隔离级别:
1.读未提交
这是效率最高但是安全性最低的隔离级别。
2.读已提交
用户只能查询已经成功提交的数据,可以解决脏读的问题
3.可重复读
Mysql默认的隔离级别。用户在同一个事务中的多次读取数据的结果是一致的。可以解 决脏读和不可重复读 的问题。
4.序列化
序列化是mysql最高的事务隔离级别,可以解决脏读、不可重复读、幻读。
22.说一下你对分布式锁的理解
在微服务架构的项目中,由于我们的项目拆分为多个不同的模块,相互独立。在执行业务的过程中,我们在保证共享变量的操作互斥的过程中,通常会利用锁机制来实现,但是常规的锁只能锁住当前的节点,而在分布式场景中,通常单个服务会启动多个实例,这样就没法保证资源和操作的互斥。分布式锁可以保证多个实例在同一时间段内,只有一个客户端可以获取锁资源。通常会通过redis或zookeeper实现,我的项目中是通过redis的setnx命令实现的分布式锁。
相关文章:
【面经】杭州产链数字科技一面
1.介绍一下自己 面试官您好!我叫***,目前是就读于****计算机科学与技术专业的一名学生。我平时在学校也自学了编程相关的知识,比如Java基础、Springboot、SpringCloud,关系型数据库Mysql,非关系型数据库Redisÿ…...
微信小程序调用yolo目标检测模型
目录 后端 前端微信小程序 完整代码 后端 利用Flask,调用目标检测模型,后端代码如下。 # flask_yolo.py from flask import Flask, request, jsonify from ultralytics import YOLO from PIL import Imageapp Flask(__name__) model_path best.p…...
vmware17 虚拟机 ubuntu22.04 桥接模式,虚拟机无法接收组播消息
问题描述: 在一个项目中,宿主机win10中,使用的vmware17pro 虚拟机安装的ubuntu22.04,按照网上的教程使用Qt绑定组播消息,在另外一个Ubuntu工控机上发送用wiresahrk抓包的组播消息 sudo tcpreplay -i enp1s0 --loop0 y…...
Kaggle-Bag of Words Meets Bags of Popcorn-(二分类+NLP+Bert模型)
Bag of Words Meets Bags of Popcorn 题意: 有很多条电影评论记录,问你每一条记录是积极性的评论还是消极性的评论。 数据处理: 1.首先这是文件是zip形式,要先解压,注意sep ‘\t’。 2.加载预训练的 BERT 分词器 …...
数字信号处理技术架构与功能演进
数字信号处理(DSP)是通过数字运算实现信号分析、变换、滤波及调制解调的技术领域,其发展过程与技术应用如下: 一、定义与核心功能 技术定义:通过算法将模拟信号转换为数字形式进行处理,具有高精度、可编程…...
IaaS架构剖析、场景实践
一、什么是 IaaS 1.1 定义 Infrastructure as a Service(IaaS,基础设施即服务)是一种按需、弹性提供计算、存储、网络和安全等底层 IT 资源的云服务模式。用户通过 API、CLI 或 Web 控制台即可在几分钟内创建、扩容或释放资源,而…...
国产之光DeepSeek架构理解与应用分析02
本专栏 国产之光DeepSeek架构理解与应用分析-CSDN博客 国产之光DeepSeek架构理解与应用分析02-CSDN博客 前置的一些内容理解 GPU TPU NPU的区别? 设计目的 GPU:最初是为了加速图形渲染而设计的,用于处理图像和视频数据,以提供高…...
EDID结构
EDID DDC通讯中传输显示设备数据 VGA , DVI 的EDID由128字节组成,hdmi的EDID增加扩展块128字节。扩展快的内容主要是和音频属性相关的,DVI和vga没有音频,hdmi自带音频,扩展快数据规范按照cea-861x标准。 Edid为了让pc或其他的图像…...
4.黑马学习笔记-SpringMVC(P43-P47)
1.SpringMVC简介 SpringMVC技术(更少的代码,简便)与servlet技术功能相同,属于web层开发技术。 SpringMVC是一种基于java实现MVC模型的轻量级web框架。 轻量级指的是(内存占用比较低,运行效率高)…...
CSS 文件格式
A QFrame#andrFrm[status"android_en"] A:表示父类或顶层窗口的类型。如果 A 是一个自定义的类名,确保该类已经正确注册到 Qt 系统中。QFrame:表示具体的控件类型。#andrFrm:表示控件的对象名称(通过 setOb…...
java输出HelloWorld
创建一个java格式文件,这里命令为HelloWorld 这里我选择用notepad编译,也可以直接用记事本 #public 访问修饰词,表示这个类可以被其他任何类访问 #class 定义类的关键字 #HelloWorld 类名,遵循驼峰命名法(首字母大写…...
【SAP ME 44】在 HANA DB中报废SFC时的SHOP_ORDER表记录锁定
症状 SELECT…FROM SHOP_ORDER FOR UPDATE 在 SFC 报废期间持有锁,当同时调用数量较大时,可能会导致 HANA 数据库出现大量锁积压。这有时会导致因等待 HANA 数据库释放“选择更新”锁而导致报废 SFC 花费数分钟。 HANA 数据库日志中的示例: # begin PreparedStatement_ex…...
《软件设计师》复习笔记(12.1)——范围管理、进度管理
目录 一、范围管理 1. 核心概念 2. 范围管理过程 WBS(工作分解结构)示例 真题示例: 二、进度管理 1. 核心过程 2. 关键工具与技术 真题示例: 一、范围管理 1. 核心概念 项目范围:为交付产品必须完成的工作…...
Git-使用教程(新手向)
一、基本概念: 1.Git,Github的关系: Git --- 本地用于管理代码的工具,可类比为游戏存档。(存档,仓库,项目在Git中是一个东西) Github --- 远程仓库平台,可类比为云端。…...
密码学中的盐值是什么?
目录 1. 盐值的基本概念 2. 盐值的作用 (1) 防止彩虹表攻击 (2) 防止相同的密码生成相同的哈希值 (3) 增加暴力破解的难度 3. 如何使用盐值? (1) 生成盐值 (2) 将盐值附加到密码 (3) 存储盐值和哈希值 (4) 验证密码 4. 盐值如何增加暴力破解的难度 在线暴…...
[工具]Java xml 转 Json
[工具]Java xml 转 Json 依赖 <!-- https://mvnrepository.com/artifact/cn.hutool/hutool-all --> <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.37</version> </dependen…...
安全光幕的CE认证
在工业自动化飞速发展的当下,安全光幕作为保障操作人员安全的关键设备,其重要性不言而喻。对于想要进军欧盟市场的安全光幕制造商来说,CE 认证是必须跨越的一道关卡。今天,我们就来深入探讨安全光幕的 CE 认证流程。 什么是安全…...
DNS解析失败怎么解决?
在互联网时代,畅快地浏览网页、使用各类网络服务已成为生活常态。然而,当屏幕突然弹出 “DNS解析失败”的提示,原本顺畅的网络连接戛然而止,让人倍感困扰。DNS即域名系统,它如同互联网的 “电话簿”,负责将…...
亚马逊商品详情API数据接口概述,Amazon API
亚马逊商品详情API数据接口概述 亚马逊商品详情API(如Amazon Product Advertising API或Selling Partner API (SP-API))是亚马逊为开发者提供的官方接口,允许通过编程方式获取商品的详细信息,包括商品标题、价格、描述、图片、用…...
TCP/IP和UDP协议的发展历程
TCP/IP和UDP协议的发展历程 引言 互联网的发展史是人类技术创新的辉煌篇章,而在这一发展过程中,通信协议发挥了奠基性的作用。TCP/IP(传输控制协议/互联网协议)和UDP(用户数据报协议)作为互联网通信的基础…...
LeetCode 259 题全解析:Swift 快速找出“满足条件”的三人组
文章目录 摘要描述示例 1:示例 2:示例 3: 题解答案(Swift)题解代码分析示例测试及结果时间复杂度空间复杂度总结 摘要 本文围绕 LeetCode 259 题“较小的三数之和”,通过 Swift 给出两种解法,并…...
【MySQL】MySQL表的增删改查(CRUD) —— 上篇
目录 MySQL表的增删改查(CRUD) 1. 新增(Create)/插入数据 1.1 单行数据 全列插入 insert into 表名 values(值, 值......); 1.2 单行数据 指定列插入 1.3 多行数据 指定列插入 1.4 关于时间日期(datetime&am…...
基于大模型的腹股沟疝诊疗全流程风险预测与方案制定研究报告
目录 一、引言 1.1 研究背景与意义 1.2 国内外研究现状 1.3 研究目的与创新点 二、大模型技术概述 2.1 大模型基本原理 2.2 常用大模型类型及特点 2.3 大模型在医疗领域的应用潜力 三、腹股沟疝诊疗流程分析 3.1 腹股沟疝的发病机制与分类 3.2 传统术前评估方法与局…...
使用nssm将Nginx配置为Windows服务
使用nssm将Nginx配置为Windows服务 下载nssm工具 :使用NSSM创建服务启动并验证服务管理服务(启动/停止/重启) 下载nssm工具 : nssm下载网址 下载到指定路径下,解压就行。 使用NSSM创建服务 winr打开运行命令框&am…...
(8)VTK C++开发示例 --- 交互式3D部件
文章目录 1. 概述2. CMake链接VTK3. main.cpp文件4. 演示效果 更多精彩内容👉内容导航 👈👉VTK开发 👈 1. 概述 这个例子介绍了3D小部件(vtkBoxWidget)。3D小部件利用了前面介绍的事件/观察者设计模式。它们…...
ReAct、CoT 和 ToT:大模型提示词推理架构的对比分析
ReAct、CoT 和 ToT:大模型提示词推理架构的对比分析 在大型语言模型(LLM)的研究与应用中,如何有效提升模型在复杂任务上的推理能力是关键问题之一。目前,ReAct(Reasoning and Acting)、CoT&…...
Evidential Deep Learning和证据理论教材的区别(主要是概念)
最近终于彻底搞懂了Evidential Deep Learning,之前有很多看不是特别明白的地方,原来是和证据理论教材(是的,不只是国内老师写的,和国外的老师写的教材出入也比较大)的说法有很多不一样,所以特地…...
golang context源码
解析 context结构 Deadline:返回 context 的过期时间; Done:返回 context 中的 channel; Err:返回错误; Value:返回 context 中的对应 key 的值. type Context interface {Deadline() (deadl…...
VSCODE插值表达式失效问题
GET https://cdn.jsdelivr.net/npm/vue2.6.14/dist/vue.js net::ERR_CONNECTION_-CSDN博客 更换正确的vue域名 GET https://cdn.jsdelivr.net/npm/vue2.6.14/dist/vue.js net::ERR_CONNECTION_ <script src"https://unpkg.com/vue2.6.14/dist/vue.js"></sc…...
6.VTK 颜色
文章目录 概念RGB示例HSV示例 概念 RGB颜色系统:通过红(R)、绿(G)、蓝(B)三个颜色分量的组合来定义颜色。每个分量的取值范围是0到1,其中(0, 0, 0)代表黑色,而(1, 1, 1)代表白色。可以使用vtkProperty::SetColor(r, g, b)方法为Actor设置颜色…...
MQTTClient.c的线程模型与异步事件驱动
MQTTClient.c的线程模型与异步事件驱动 1. 多线程架构设计 MQTTClient.c通过分离网络I/O和用户逻辑线程实现异步通信,核心设计如下: sequenceDiagramparticipant 主线程 as 主线程(用户调用)participant 发送队列 as 发送队列pa…...
Flutter异常Couldn‘t find dynamic library in default locations
Flutter项目在Windows系统使用ffigen生成代码时报下面的错误: [SEVERE] : Couldnt find dynamic library in default locations. [SEVERE] : Please supply one or more path/to/llvm in ffigens config under the key llvm-path. Unhandled exception: Exception: …...
在PyCharm中部署AI模型的完整指南
引言 随着人工智能技术的快速发展,越来越多的开发者开始将AI模型集成到他们的应用程序中。PyCharm作为一款强大的Python IDE,为AI开发提供了出色的支持。本文将详细介绍如何在PyCharm中部署AI模型,从环境配置到最终部署的完整流程。 第一部分:准备工作 1. 安装PyCharm …...
6.6.图的广度优先遍历(英文缩写BFS)
树是一种特殊的图,树的广度优先遍历即层次遍历,所以会从树的角度入手图的广度优先遍历: BFS与DFS的区别在于,BFS使用了队列,DFS使用了栈 一.广度优先遍历: 1.树的广度优先遍历: 详情见"…...
练习(杨辉三角、字符串旋转)
一、 以下程序执行的结果: int main() {//0~255unsigned char a 200;//00000000000000000000000011001000//11001000 - a 截断unsigned char b 100;//00000000000000000000000001100100//01100100 - b unsigned char c 0;c a b;//11001000 - a//0110010…...
L1-7 矩阵列平移
题目 给定一个 nn 的整数矩阵。对任一给定的正整数 k<n,我们将矩阵的偶数列的元素整体向下依次平移 1、……、k、1、……、k、…… 个位置,平移空出的位置用整数 x 补。你需要计算出结果矩阵的每一行元素的和。 输入格式: 输入第一行给出…...
webgl入门实例-11模型矩阵 (Model Matrix)基本概念
WebGL 模型矩阵 (Model Matrix) 在WebGL和3D图形编程中,模型矩阵(Model Matrix)是将物体从局部坐标系(模型空间)转换到世界坐标系的关键变换矩阵。 什么是模型矩阵? 模型矩阵是一个4x4的矩阵,用于表示物体在世界空间中的位置、旋转和缩放。…...
【漫话机器学习系列】209.均值的标准误差(Standard Error of the Mean)
均值的标准误差(Standard Error of the Mean)详解 在统计学中,我们经常会遇到“均值的标准误差”这个概念,英文称为 Standard Error of the Mean(简称 SEM)。它是对样本均值作为总体均值估计的可靠程度的一…...
Multi Agents Collaboration OS:文档合规性及质量检测助手设计及实践
文档审查及质量检测背景 随着企业运营和知识管理的日益复杂,文档的合规性与质量成为确保信息准确、流程顺畅及风险控制的关键环节。传统上,人工进行文档的合规性和质量检测不仅耗时耗力,且易受主观因素影响,难以保证检测的全面性…...
Vue Teleport 及其在 SSR 中的潜在问题
Vue 3 的 Teleport 特性为开发者提供了更灵活的 DOM 结构控制能力,但在服务端渲染(SSR)场景中,它可能引发一些需要注意的问题。本文将深入探讨 Teleport 的核心机制及其在 SSR 中的使用陷阱。 一、Teleport 核心机制解析 1. 基本…...
Fastapi 日志处理
uvicorn 日志处理总结: 一、日志的结构 日志结构如下: {"version": 1,"disable_existing_loggers": false,"formatters": {},"handlers": {},"loggers": {} }loggers 用于定义日志处理最顶层的标识…...
FME实现矢量建筑面shp拉伸并贴纹理
文章目录 效果2、数据准备3、整理流程图4、操作步骤4.1 打开软件4.2 添加shp数据4.3 添加Extruder转换器4.4 添加AppearanceSetter转换器4.5 添加png纹理数据4.6 添加输出节点4.7 添加Logger节点4.8 执行5、执行结果效果 2、数据准备 (1)建筑面shp (2)纹理 test.png 其中s…...
仿腾讯会议项目实现——设置配置文件
目录 1、初始化配置 2、实现初始化配置的函数 3、修改配置文件内的ip地址 1、初始化配置 Ckernel.h 2、实现初始化配置的函数 3、修改配置文件内的ip地址 首先修改IP 运行出现设置的IP, 找到运行的配置文件,修改成自己当前的ip 将函数运行条件改成非…...
1187. 【动态规划】竞赛总分
题目描述 学生在我们USACO的竞赛中的得分越多我们越高兴。我们试着设计我们的竞赛以便人们能尽可能的多得分。 现在要进行一次竞赛,总时间T固定,有若干类型可选择的题目,每种类型题目可选入的数量不限,每种类型题目有一个si(解答…...
从零开始学Python游戏编程31-类3
2.6 run()方法 run()方法的作用是在while循环中调用以上方法,运行游戏。代码如图11所示。 图11 run()方法代码 其中,第43行控制while循环的是实例属性running,在图7所示的__init__()方法中定义;第44-46行代码分别调用了processI…...
Transformer 架构 - 解码器 (Transformer Architecture - Decoder)
一、解码器整体结构:多层堆叠设计 Transformer解码器由N个相同结构的解码器层堆叠而成(通常N=6),每层包含三个核心子模块(图1) 1 5 12 : 带掩码的多头自注意力层(Masked Multi-Head Self-Attention)编码器-解码器注意力层(Encoder-Deco…...
解锁健康生活:养生新主张
在生活节奏日益加快的当下,健康养生不再是中老年人的专属话题,越来越多的人开始意识到,它是维持生命活力、抵御疾病的重要保障。 中医养生讲究 “药食同源”,在饮食上,我们可以根据季节变化调整食谱。春天气候多变&…...
__call__ 方法
__call__ 是 Python 中的一个魔法方法,也称为类方法。 它的作用是将类的实例变成可调用对象,类似于像函数一样被调用。 __call__ 使用举例 class MyClass:def __call__(self, x, y):return x yobj MyClass() print(obj(1, 2)) 对比其他类/对象的使用…...
济南通过首个备案生活服务大模型,打造行业新标杆
近日,一则振奋人心的消息在人工智能领域传开:济南本土企业丽阳神州智能科技有限公司自主研发的 “丽阳雨露” 大模型成功通过国家网信办的备案。这一成果不仅是济南企业在科技创新道路上的重大突破,更标志着我国在生活服务领域的人工智能应用…...
UE5有些场景的导航生成失败解决方法
如果导航丢失,就在项目设置下将: 即可解决问题: 看了半个小时的导航生成代码发现,NavDataSet这个数组为空,导致异步构建导航失败。 解决 NavDataSet 空 无法生成如下: 当 NavDataSet 为空的化 如果 bAut…...