springboot第52集:微服务分布式架构,统一验证,oauth,订单,地区管理周刊

在计算机领域中,FGC 通常代表 Full Garbage Collection,即全垃圾收集。垃圾收集是一种自动管理内存的机制,它负责回收不再被程序使用的内存,以便释放资源和提高程序性能。

当系统执行 Full Garbage Collection 时,它会检查整个堆内存,并尝试回收所有不再使用的对象。这个过程可能会导致一些系统暂时停止执行,特别是在大型内存堆上。因此,频繁的 Full Garbage Collection 可能会对系统性能产生影响。

"FGC增加 44次" 可能表示在一个时间段内进行了 44 次 Full Garbage Collection 操作。这可能表明系统在处理大量内存回收,可能是因为程序生成了大量的垃圾对象,需要频繁进行全堆垃圾收集。

考虑优化程序的内存使用,减少产生垃圾对象的频率,以降低 Full Garbage Collection 的次数,从而提高系统性能。

在 Java 虚拟机中,YGC 通常表示 Young Generation Garbage Collection,即年轻代垃圾收集。Java 堆被分为年轻代、老年代和持久代(在一些较新的 JVM 中可能不存在),而年轻代是 Java 对象的初始分配和短期存活的地方。

年轻代通常被划分为三个部分:

  1. Eden 区(伊甸园区): 这是对象的初始分配区域,大多数对象最初都在这里分配。

  2. Survivor 区(幸存者区): Survivor 区有两个,通常称为 S0 和 S1。它们用于存放在 Eden 区中经过一次垃圾收集后仍然存活的对象。

  3. 老年代(Old Generation): 如果对象在年轻代经历了一定次数的垃圾收集仍然存活,它将被晋升到老年代。

Young Generation Garbage Collection 就是指针对年轻代的垃圾收集操作。在年轻代,主要的垃圾收集算法是通过复制(Copying)和标记-清除(Mark-Sweep)结合的方式进行的。垃圾收集的目标是尽可能快速地清理掉那些很快就不再使用的对象,以提高程序的性能。

因此,YGC 的发生频率相对较高,通常不会影响整个系统的性能。相比之下,FGC(Full Garbage Collection)涉及到整个堆的垃圾收集,会导致更大的停顿时间,因此通常希望 YGC 的次数较多,FGC 的次数较少。

  • 配置中心&服务注册&发现:Nacos

  • API网关:Spring Cloud Gateway

  • 认证授权:Spring Security OAuth2 Authorization Server

  • 远程调用:Dubbo & Spring Cloud OpenFeign & OkHttp & HttpClient & WebClient

  • 负载均衡:Spring Cloud Loadbalancer & OpenResty

  • 服务熔断&降级&限流:Sentinel

  • 分库分表&读写分离:Mybatis Plus & ShardingSphere

  • 分布式事务:Seata & RocketMQ

  • 消息队列:RocketMQ & Kafka & MQTT

  • 服务监控:Spring Boot Admin & Prometheus

  • 链路跟踪:SkyWalking

  • 任务调度:XXL Job

  • 日志分析:EFK

  • 缓存&分布式锁:Redis & Redisson

  • 统计报表:MongoDB

  • 对象存储:Amazon S3

  • 自动化部署:Docker

  • 网络通讯:Netty

  • 持续集成&交付:Jenkins

  • 持久层框架:Mybatis Plus

  • JSON序列化:Jackson

  • 对象转换:MapStruct

  • 数据库:Mysql & Postgresql

  • 工作流:Flowable

  • 数据库迁移:Flyway

  • 微服务框架

    • [界面一览]

    • [产品简介]

    • [Docker启动基础服务]

    • [Nacos安装]

    • [Sentinel安装]

    • [导入Nacos配置]

    • [数据库导入]

    • [运行Cloud版本]

    • [告警部署]

    • [监控部署]

    • [前端部署]

    • [后端部署]

    • [对接准备]

    • [Jar模式对接]

<el-table-column> 中的 type="selection" 用于显示表格的选择列,允许用户选择表格中的行。在这个列上,你可以使用一些属性来定制选择的行为。在你提供的代码中,有两个属性被使用到:

  1. :selectable: 该属性接受一个函数,用于判断某一行是否可以被选择。这个函数将会接收表格当前行的数据作为参数,你可以在这个函数中编写逻辑来决定该行是否可以被选择。如果返回 true,则表示该行可以被选择,否则不可以。在你的代码中,这个属性被绑定到 selectable 变量,但你没有提供这个变量的定义。这个函数可以不传,默认为返回 true

  2. :reserve-selection: 该属性接受一个布尔值,表示是否保留用户之前所选的内容。如果设置为 true,则在切换分页时保留之前所选的项。在你的代码中,这个属性被设置为 true

这两个属性的使用可以帮助你在表格中实现选择行的功能。在用户选择行时,可以通过监听 selection-change 事件,获取用户选择的数据,并进行相关的处理。

统一验证

  • @NotNull 不能为null

  • @NotEmpty 不能为null、空字符串、空集合

  • @NotBlank 不能为null、空字符串、纯空格的字符串

  • @Min 数字最小值不能小于x

  • @Max 数字最大值不能大于x

  • @Email 字符串为邮件格式

  • @Max 数字最大值不能大于x

  • @Size 字符串长度最小为x、集合长度最小为x

  • @Pattern 正则表达式

public class SysUser implements Serializable {private static final long serialVersionUID = 1L;/*** 用户ID**/@TableIdprivate Long userId;/*** 用户名*/@NotBlank(message="用户名不能为空")@Size(min = 2,max = 20,message = "用户名长度要在2-20之间")private String username;/*** 密码*/@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)private String password;/*** 邮箱*/@NotBlank(message="邮箱不能为空")@Email(message="邮箱格式不正确")private String email;/*** 手机号*/@Pattern(regexp="0?1[0-9]{10}",message = "请输入正确的手机号")private String mobile;/*** 状态  0:禁用   1:正常*/private Integer status;/*** 用户所在店铺id*/private Long shopId;/*** 角色ID列表*/@TableField(exist=false)private List<Long> roleIdList;/*** 创建时间*/private Date createTime;}
@RestController
@RequestMapping("/sys/user")
public class SysUserController {/*** 保存用户*/@SysLog("保存用户")@PostMapping@PreAuthorize("@pms.hasPermission('sys:user:save')")public ResponseEntity<String> save(@Valid @RequestBody SysUser user){String username = user.getUsername();SysUser dbUser = sysUserService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUsername, username));if (dbUser!=null) {return ResponseEntity.badRequest().body("该用户已存在");}user.setShopId(SecurityUtils.getSysUser().getShopId());user.setPassword(passwordEncoder.encode(user.getPassword()));sysUserService.saveUserAndUserRole(user);return ResponseEntity.ok().build();}
}

当然,我们也要简单介绍下oauth的运行流程:

+--------+                               +---------------+|        |--(A)- Authorization Request ->|   Resource    ||        |                               |     Owner     ||        |<-(B)-- Authorization Grant ---|               ||        |                               +---------------+|        ||        |                               +---------------+|        |--(C)-- Authorization Grant -->| Authorization || Client |                               |     Server    ||        |<-(D)----- Access Token -------|               ||        |                               +---------------+|        ||        |                               +---------------+|        |--(E)----- Access Token ------>|    Resource   ||        |                               |     Server    ||        |<-(F)--- Protected Resource ---|               |+--------+                               +---------------+

订单

Order,订单。一次下单,生成一条订单记录,即使多种商品。

/*** 订单ID*/@TableIdprivate Long orderId;/*** 店铺id*/private Long shopId;/*** 订购流水号*/private String orderNumber;/*** 订单状态 1:待付款 2:待发货 3:待收货 4:待评价 5:成功 6 交易失败*/private Integer status;/*** 订购时间*/private Date createTime;/*** 订单更新时间*/private Date updateTime;/*** 付款时间*/private Date payTime;/*** 发货时间*/private Date dvyTime;/*** 完成时间*/private Date finallyTime;/*** 取消时间*/private Date cancelTime;
b52a77352c9f4cc92833eddd45f0dd8d.png
image.png

商品信息

/*** 产品名称,多个产品将会以逗号隔开*/private String prodName;/*** 总值*/private Double total;/*** 实际总值*/private Double actualTotal;/*** 订单商品总数*/private Integer productNums;/*** 优惠总额*/private Double reduceAmount;

买家信息

/*** 订购用户ID*/private String userId;/*** 订单备注*/private String remarks;
  • userId ,买家用户编号。

  • remarks ,买家购买备注。

image.png
  • total :商品总价。该字段通过 OrderItem的 price 求和计算。

  • freightAmount :运费总价。该字段通过 OrderItem的商品的运费价格求和计算。

  • reduceAmount:交易优惠金额。注意,TradeOrder 的

    • total = 100 ,reduceAmount = 72 ,actualTotal = 18 。

    • total = 100 ,reduceAmount = 10 ,actualTotal = 90 。

    • 购买的商品参加 折扣活动,原价 100 元,折扣价 10 元。那么数据如下(我们会看到折扣活动跟着 商品走):

    • 购买的商品使用优惠劵,在上面例子的基础上,优惠劵打 2 折。那么数据如下(我们会看到优惠劵跟着 Trade 走):

  • actualTotalactualTotal = total + freightAmount - reduceAmount

物流

/*** 配送类型*/private String dvyType;/*** 配送方式ID*/private Long dvyId;/*** 物流单号*/private String dvyFlowId;

收货人信息UserAddrOrder

public class UserAddrOrder implements Serializable {/*** ID*/@TableIdprivate Long addrOrderId;/*** 地址ID*/private Long addrId;/*** 用户ID*/private String userId;/*** 收货人*/private String receiver;/*** 省*/private String province;/*** 城市*/private String city;/*** 区*/private String area;/*** 地址*/private String addr;/*** 邮编*/private String postCode;/*** 省ID*/private Long provinceId;/*** 城市ID*/private Long cityId;/*** 区域ID*/private Long areaId;/*** 手机*/private String mobile;/*** 建立时间*/private Date createTime;/*** 版本号*/private Integer version;}

结算信息OrderSettlement

public class OrderSettlement implements Serializable {/*** 支付结算单据ID*/@TableIdprivate Long settlementId;/*** 用户系统内部的订单号*/private String payNo;/*** 外部订单流水号*/private String bizPayNo;/*** 订单号*/private String orderNumber;/*** 支付方式 0 手动代付 1 微信支付 2 支付宝*/private Integer payType;/*** 支付金额*/private Double payAmount;/*** 用户ID*/private String userId;/*** 是否清算 0:否 1:是*/private Integer isClearing;/*** 创建时间*/private Date createTime;/*** 清算时间*/private Date clearingTime;/*** 支付状态*/private Integer payStatus;/*** 版本号*/private Integer version;/*** 支付方式名称*/private String payTypeName;}
  • orderNumber :关联订单的订单号

  • payNo: 支付时的支付订单号,根据雪花算法生成

  • payAmount:实付金额。

  • bizPayNo:外部交易编号。比如,如果支付方式是微信支付,就是财付通的交易单号。

订单项 OrderItem

每个订单都会有多个商品,每个商品就是一个订单项。

/*** 订单项ID*/@TableId(type = IdType.AUTO)private Long orderItemId;private Long shopId;/*** 订单orderNumber*/private String orderNumber;/*** 产品ID*/private Long prodId;/*** 产品SkuID*/private Long skuId;/*** 购物车产品个数*/private Integer prodCount;/*** 产品名称*/private String prodName;/*** sku名称*/private String skuName;/*** 产品主图片路径*/private String pic;/*** 产品价格*/private Double price;/*** 用户Id*/private String userId;/*** 商品总金额*/private Double productTotalAmount;/*** 购物时间*/private Date recTime;/*** 评论状态: 0 未评价  1 已评价*/private Integer commSts;/*** 推广员使用的推销卡号*/private String distributionCardNo;/*** 加入购物车的时间*/private Date basketDate;
  • orderNumber :订单编号,指向 Order.orderNumber 。

  • prodId:商品id

  • 冗余商品字段:

    • prodName ,商品标题。

    • pic ,商品主图片地址。

  • skuId ,商品 SKU 编号,指向 ItemSku.id 。

  • 冗余商品 SKU 字段:

    • skuName ,SKU的值,即:商品的规格。如:机身颜色:黑色;手机套餐:官方标配。

  • num ,购买数量。

地区管理

96bbd81eef4a75fe519d3f4a94a2d54f.png
image.png
model实体类:
@Data
@TableName("tz_area")
public class Area implements Serializable {private static final long serialVersionUID = -6013320537436191451L;@TableId@ApiModelProperty(value = "地区id",required=true)private Long areaId;@ApiModelProperty(value = "地区名称",required=true)private String areaName;@ApiModelProperty(value = "地区上级id",required=true)private Long parentId;@ApiModelProperty(value = "地区层级",required=true)private Integer level;@TableField(exist=false)private List<Area> areas;
}
  • areaId ,地区id

  • areaName,地区名称

  • level,级别,根据上面所说的地区枚举

  • parentId ,地区上级id

model实体类:
运费模板类(tz_transport)
@Data
@TableName("tz_transport")
public class Transport{/*** 运费模板id*/@TableId@ApiModelProperty(value = "运费模板id",required=true)private Long transportId;/*** 运费模板名称*/@ApiModelProperty(value = "运费模板名称",required=true)private String transName;/*** 店铺id*/@ApiModelProperty(value = "店铺id",required=true)private Long shopId;/*** 参考 TransportChargeType* 收费方式(0 按件数,1 按重量 2 按体积)*/@ApiModelProperty(value = "收费方式(0 按件数,1 按重量 2 按体积)",required=true)private Integer chargeType;/*** 是否包邮 0:不包邮 1:包邮*/@ApiModelProperty(value = "是否包邮 0:不包邮 1:包邮",required=true)private Integer isFreeFee;/*** 是否含有包邮条件*/@ApiModelProperty(value = "是否含有包邮条件",required=true)private Integer hasFreeCondition;/*** 创建时间*/@ApiModelProperty(value = "创建时间",required=true)private Date createTime;
}
  • transportId ,运费模板id

  • transName,运费模板名称,存在多个运费模板时,方便商家选择更好的运费模板

  • shopId,店铺id,可扩展为B2B2C模式

  • isFreeFee,是否包邮,如果商家选择了包邮,则不需要后面的其他操作

  • chargeType,收费方式可分为按件数、按重量 、按体积,影响运费项表中firstPiececontinuousFee的单位

  • hasFreeCondition,是否包含包邮条件,勾选后,商家可以设定指定包邮的地区与条件

运费项(tz_transfee)
@Data
@TableName("tz_transfee")
public class Transfee {/*** 运费项id*/@TableId@ApiModelProperty(value = "运费项id",required=true)private Long transfeeId;/*** 运费模板id*/@ApiModelProperty(value = "运费模板id",required=true)private Long transportId;/*** 续件数量*/@ApiModelProperty(value = "续件数量",required=true)private Double continuousPiece;/*** 首件数量*/@ApiModelProperty(value = "首件数量",required=true)private Double firstPiece;/*** 续件费用*/@ApiModelProperty(value = "续件费用",required=true)private Double continuousFee;/*** 首件费用*/@ApiModelProperty(value = "首件费用",required=true)private Double firstFee;}
运费项关联城市表(tz_transcity)
@Data
@TableName("tz_transcity")
public class Transcity implements Serializable {@TableIdprivate Long transcityId;/*** 运费项id*/private Long transfeeId;/*** 城市id*/private Long cityId;
}

运费项可以根据需求指定特定区域的进行设置,运费项表与运费项关联城市表之间为一对多的关系,设定的区域优先于所有地区。

  • transcityId , 模板项关联城市ID

  • transfeeId ,关联的模板项目ID

  • cityId , 关联亚米商城系统中的区域管理模块

指定条件包邮项表(tz_transfee_free)
@Data
@TableName("tz_transfee_free")
public class TransfeeFree {/*** 指定条件包邮项id*/@TableId@ApiModelProperty(value = "指定条件包邮项id",required=true)private Long transfeeFreeId;/*** 运费模板id*/@ApiModelProperty(value = "运费模板id",required=true)private Long transportId;/*** 包邮方式 (0 满x件/重量/体积包邮 1满金额包邮 2满x件/重量/体积且满金额包邮)*/@ApiModelProperty(value = "包邮方式 (0 满x件/重量/体积包邮 1满金额包邮 2满x件/重量/体积且满金额包邮)",required=true)private Integer freeType;/*** 需满金额*/@ApiModelProperty(value = "需满金额",required=true)private Double amount;/*** 包邮x件/重量/体积*/@ApiModelProperty(value = "包邮x件/重量/体积",required=true)private Double piece;
}
@Data
public class ShopCartOrderMergerDto implements Serializable{@ApiModelProperty(value = "实际总值", required = true)private Double actualTotal;@ApiModelProperty(value = "商品总值", required = true)private Double total;@ApiModelProperty(value = "商品总数", required = true)private Integer totalCount;@ApiModelProperty(value = "订单优惠金额(所有店铺优惠金额相加)", required = true)private Double orderReduce;@ApiModelProperty(value = "地址Dto", required = true)private UserAddrDto userAddr;@ApiModelProperty(value = "每个店铺的购物车信息", required = true)private List<ShopCartOrderDto> shopCartOrders;@ApiModelProperty(value = "整个订单可以使用的优惠券列表", required = true)private List<CouponOrderDto> coupons;
}
yum remove docker \ > docker-client \ > docker-client-latest \ > docker-common \ > docker-latest \ > docker-latest-logrotate \ > docker-logrotate \ > docker-selinux \ > docker-engine-selinux \ > docker-engine

这段命令是在卸载 Docker 相关的软件包。它先使用 yum remove 命令移除了以下 Docker 相关的软件包:

  • container-selinux

  • docker

  • docker-client

  • docker-common

然后,它输出了一些关于仓库的信息,包括签名和主要数据库的下载进度。在这之后,它列出了所有将要被移除的软件包及其版本和大小,然后询问用户是否继续。用户选择了 y 表示同意进行卸载操作。

最后,它给出了一个提示,如果用户希望回滚上述操作,可以使用 yum load-transaction 命令。这个命令会加载之前保存的事务信息,从而可以回滚到之前的状态。

5fbd2ea167d304a314ca46960d36dcc0.png
image.png
88acdfdaaf057e1b9cd312d8dbd8e3fa.png
image.png
48b1cbae54edb88b21ab3a8b8845dd9c.png
image.png
c43d3a5f9c3d3626a55bba36eb7a050d.png
image.png
7fdff3ad872ba82732bb27fe6719c8d9.png
image.png

dump下来的文件大约1.8g,用jvisualvm查看,发现用char[]类型的数据占用了41%内存,同时另外一个com.alibaba.druid.stat.JdbcSqlStat类型的数据占用了35%的内存,也就是说整个堆中几乎全是这两类数据。

加群联系作者vx:xiaoda0423

仓库地址:https://github.com/webVueBlog/JavaGuideInterview

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/649453.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【代码随想录-数组】二分查找

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

Android源码设计模式解析与实战第2版笔记(三)

第三章 自由扩展你的项目–Builder 模式 Builder 模式的定义 将一个复杂对象的构建与它的表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。 Builder 模式的使用场景 相同的方法&#xff0c;不同的执行顺序&#xff0c;产生不同的事件结果时 多个部件或零件&…

【驱动系列】C#获取电脑硬件显卡核心代号信息

欢迎来到《小5讲堂》&#xff0c;大家好&#xff0c;我是全栈小5。 这是《驱动系列》文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识点…

msvcp140.dll丢失,有什么好的解决方法?

msvcp140.dll 是 Microsoft Visual C Redistributable Package 的一部分&#xff0c;这是一个由微软开发并发布的运行时库文件。具体而言&#xff1a; 功能与用途&#xff1a; msvcp140.dll 是动态链接库&#xff08;DLL&#xff09;文件&#xff0c;包含了 C 标准库的实现和…

CSS3如何实现从右往左布局的按钮组(固定间距)

可以通过下方CSS实现&#xff0c;下面的CSS表示按钮从右往左布局&#xff0c;且间距为10px: .right-btn {position: relative;float: right;margin-right: 10px; }类似这种&#xff1a; 这种&#xff1a; 注意&#xff1a; 不能使用right:10px代替margin-right:10px&#x…

STM32第三节——点亮第一个LED灯

1 STM32CubeMX新建工程 如果是第一次打开STM32CubeMX&#xff0c;软件会自动下载一些组件&#xff0c;等待下载完成即可。 1.2 点击ACCESS TO MCU SELECTOR 选择CPU型号&#xff0c;我用的是STM32F103ZET6&#xff0c;选择 STM32F103ZETx&#xff0c;可以点击旁边的收藏图标…

husky结合commitlint审查commit信息

commintlint是一个npm包用来规范化我们的commit信息&#xff0c;当然这个行为的操作时期是在git的commit-msg生命周期期间&#xff0c;这一点当然是有husky来控制&#xff0c;需要注意的是commit-msg作为一个git生命周期会被git commit和git merge行为唤醒&#xff0c;并且可以…

flutter tab页面切换练手,手势滑动、禁止滑动、page切换动画,禁止切换动画。

1&#xff1a;AppBar、TabBar、TabBarView实现页面切换&#xff0c;点击tab后tabBarView有左右切换动画&#xff0c;滑动page联动tabBar class DevicePage extends StatefulWidget {const DevicePage({super.key});overrideState<DevicePage> createState() > _Devic…

OpenGL 入门(一)— 创建窗口

文章目录 前言创建一个窗口视口动态调整输入控制渲染 完整代码 前言 关键词介绍&#xff1a; OpenGL&#xff1a; 一个定义了函数布局和输出的图形API的正式规范。GLFW&#xff1a;一个专门针对OpenGL的C语言库&#xff0c;它提供了一些渲染物体所需的最低限度的接口。它允许…

2024美赛数学建模思路 - 案例:最短时间生产计划安排

文章目录 0 赛题思路1 模型描述2 实例2.1 问题描述2.2 数学模型2.2.1 模型流程2.2.2 符号约定2.2.3 求解模型 2.3 相关代码2.4 模型求解结果 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 模型…

【doghead】2: 数据产生及pacing发送

默认采用fake的数据生产者 FakeDataProducer也可以读取h264文件生成:H264FileDataProducerUSE_FAKE_DATA_PRODUCER G:\CDN\BWE-DEV\Bifrost\worker\src\bifrost\bifrost_send_algorithm\bifrost_pacer.cpp FakeDataProducer 生产制造rtp包 ExperimentDumpData : 可用带宽、发…

【C/C++】详解程序环境和预处理(什么是程序环境?为什么要有程序环境?如何理解程序环境?)

目录 一、前言 二、 什么是程序环境&#xff1f; 三、 为什么要有程序环境&#xff1f; 四、如何理解程序环境&#xff1f; &#x1f34e; ANSI C 标准 &#x1f350; 翻译环境和执行环境 五、详解翻译环境和执行环境 &#x1f347;翻译环境&#xff08;重点&#xff01…

3ds Max宣传片怎么提升渲染速度?从硬件升级到云渲染,全面提升你的渲染速度!

在3ds Max中&#xff0c;渲染是一项耗时的任务&#xff0c;尤其是对于大型场景和复杂的动画。然而&#xff0c;通过一些优化策略和技巧&#xff0c;你可以显著加速渲染过程。以下是一些建议和技巧&#xff0c;帮助你提高3ds Max的渲染速度&#xff1a; 1.升级硬件&#xff1a; …

leetcode88合并两个有序数组

力扣&#xff08;LeetCode&#xff09;-合并两个有序数组 方法一 | 合并后排序 题目要求将两个有序数组合并并保证合并后的数组仍然有序。 观察题目可以看出&#xff0c;nums1的容量大小总是 mn&#xff0c;所以 nums2能够合并到 nums1中。 那就将 nums1中未赋值的地方赋上 …

AI Agents系列—— 探究大模型的推理能力,关于Chain-of-Thought的那些事儿

一、写在前面&#xff1a;关于AI Agents与CoT 本文是2023.07.24发表在同名公众号「陌北有棵树」上的一篇文章&#xff0c;个人观点是基础理论的学习现在仍是有必要的&#xff0c;所以搬运过来。 今天要读的论文是《Chain-of-Thought Prompting Elicits Reasoning in Large La…

ABAP SQL CDSView Entity中使用正则RegEx表达式(Regular Expressions)

1. 正则表达式测试程序 DEMO_REGEXDEMO_REGEX_TOY 2. ABAP SQL & CDSView Entity支持正则语法的场景 SQL函数语法作用执行逻辑返回类型CDS View EntitiesABAP SQLLIKE_REGEXPRLIKE_REGEXPR( PCRE pcre, VALUE sql_exp1[, CASE_SENSIT…

Ubuntu系统服务器安装宝塔面板,可一键部署幻兽帕鲁服务端且可调整游戏参数

本来腾讯云服务器&#xff08;Windows系统和Ubuntu系统&#xff09;的一键运行命令即可部署安装幻兽帕鲁功能&#xff0c;让很多多轻松搭建了自己专属的服务器&#xff0c;这也是腾讯云服务器远远甩开阿里云服务器和华为云服务器及其他品牌服务器的原因&#xff0c;没想到现在其…

ANN论文总结

本文主要是个人笔记&#xff0c;记录与存储相关的ANN工作&#xff0c;想着写都写了不如发出来与大家分享&#xff0c;大多写得比较简单有些稍微详细一点&#xff0c;内容仅供参考。 CognitiveSSD S. Liang, Y. Wang, Y. Lu, et al. Cognitive SSD: A Deep Learning Engine for…

原生图数据库实现原理解析

目录 前言1 实现原理&#xff1a;免索引邻接1.1 免索引邻接构建1.2 查询性能保障 2. 物理存储实现2.1 节点存储文件2.2 关系边存储文件2.3 属性数据的存储处理 3. RDF图模型和属性图模型的比较3.1 RDF图模型3.2 属性图模型 4. 查询语言比较4.1. SPARQL4.2 Cypher4.3 Gremlin4.4…

基于密码技术的身份认证——基于对称密码体制的身份认证

一、符号说明&#xff1a; A→B&#xff1a;表示通信实体A向通信实体B发送消息&#xff1b; Ek(x)&#xff1a;表示用认证双方共享的密钥K对x进行加密&#xff1b; Text1&#xff0c;Text2&#xff0c;……&#xff0c;Text n属于可选项&#xff1b; ||&#xff1a;表示比特…