前言 Rust系列-简单认识下Rust,与c/c++ ,java .net 等对比下。Rust能干啥,有没有学习的必要性?看了以下内容再作决定也不迟~~ 一、Rust Rust是一种系统级编程语言,由Mozilla开发并在2010年首次发布。它的设计目标是为了提供比C和C++更高的内存安全性和并发性,同时保持与这两种传统语言的高性能和底层控制能力。 Rust的特点 Rust的语法借鉴了C和C++,但也引入了一些新的概念和特性。它的类型系统非常强大,支持静态类型检查和类型推断。它还引入了所有权
2024-11-22一、Sentinel核心源码分析 Sentinel是分布式系统的防御系统。以流量为切入点,通过动态设置的流量控制、服务熔断等手段达到 保护系统的目的,通过服务降级增强服务被拒后用户的体验。 在 Sentinel 里面,所有的资源都对应一个资源名称以及一个 Entry。Entry 可以通过对主流框架的适配自动创建,也可以通过注解的方式或调用SphU API 显式创建;每一个 Entry 创建的时候,同时也会创建一系列功能插槽(slot chain)。这些插槽有不同的
2024-11-22SpringBoot防抖方案(防止表单重复提交) 1.应用场景(什么是防抖) 所谓防抖,一是防用户手抖,二是防网络抖动。在Web系统中,表单提交是一个非常常见的功能,如果不加控制,容易因为用户的误操作或网络延迟导致同一请求被发送多次,进而生成重复的数据记录。要针对用户的误操作,前端通常会实现按钮的loading状态,阻止用户进行多次点击。而对于网络波动造成的请求重发问题,仅靠前端是不行的。为此,后端也应实施相应的防抖逻辑,确保在网络波动的情况下不会接收并处理同一请求多次。 2.思路分析 哪一类
2024-11-22Lua开发基础 Lua是一个可扩展的轻量级脚本语言,Lua的设计目是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua的代码简洁优美,几乎在所有操作系统和平台上都可以编译和运行。 Lua脚本需要通过Lua解释器来解释执行,除了Lua官方的默认解释器外,目前使用广泛的Lua解释器叫作LuaJIT。 LuaJIT是采用C语言编写的Lua脚本解释器。LuaJIT被设计成全兼容标准Lua 5.1,因此LuaJIT代码的语法和标准Lua的语法没多大区别。LuaJIT和Lua的一个区别是,L
2024-11-22前两天上班摸鱼刷b站的时候,发现一个野生技术UP主,看视频内容判断此人应该是腾讯员工,职级好像还不低,也不知道是T几。他经常会吐槽一些程序员圈子里面的现象,其最多的无非就是程序员技术种类和流派之间的撕逼,因为其言辞犀利,而且也风趣幽默,居然吸引了不少的粉丝。 并且这个up主还是个热心肠的主,粉丝私信问他技术相关的问题他也愿意解答,我用了点小手段加到了他的微信,向他请教了不少问题,听完之后有一种茅塞顿开的感觉。 后来我问他,为什么愿意不厌其烦的回答一些在他看来特别低级的问题,他是这么说的:
2024-11-22Robin Milner 1991年图灵奖得主 贡献领域: LCF、ML编程语言、并发理论(CCS) 中文一般译作"罗宾·米尔纳", 1934年1月13日-2010年3月20日 生于英国,曾入伍并获少尉军衔。1952年入读剑桥大学国王学院(1954年毕业于国王学院的图灵自杀),但当时他没听说过图灵。 1991年获图灵奖,是继威尔克斯(M.V.Wilkes, 1967)、威尔金森(J.H.Wilkinson, 1970)和霍尔(C.ARHoare, 1980)之后第四位获此殊荣的英国计算机
2024-11-22(1)概念:所有功能全部打包在一起,应用大部分是一个war包或jar包。 (2)好处:容易开发、测试、部署,适合项目初期试错。 (3)坏处: 随着项目越来越复杂,团队不断扩大。坏处就显现出来了。复杂性高:代码多,十万行,百万行级别,如果加一个小功能,会带来其他功能的隐患,因为它们在一起。 技术债务:人员流动,不坏不修,因为不敢修。 持续部署困难:由于是全量应用,改一个小功能,全部部署,会导致无关的功能暂停使用。编译部署上线耗时长,不敢随便部署,导致部署频率低,进而又导致两次部署之间功能修改多,
2024-11-22在Spring Boot中给图片加水印通常可以通过使用Java的图形处理库来实现。一个常用的库是Java的AWT(Abstract Window Toolkit)和ImageIO库。以下是一个简单的示例,演示如何在Spring Boot中给图片加水印: 首先,确保在你的pom.xml文件中包含了spring-boot-starter-web以及spring-boot-starter-thymeleaf(如果你使用Thymeleaf作为模板引擎): <!-- 添加依赖 --> <dependenc
2024-11-22malloc free void* malloc (size_t size); void free (void* ptr); 这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。 如果开辟成功,则返回一个指向开辟好空间的指针。 如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。 返回值的类型是 void* ,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己 来决定。 如果参数 size 为0,malloc的行为是标准是未定义的,取
2024-11-22在 Spring Boot 项目开发中,异常处理是一个非常重要的环节。良好的异常处理不仅能提高应用的健壮性,还能提升用户体验。本文将介绍如何在 Spring Boot 项目中实现统一异常处理。 统一异常处理有以下几个优点: 使用 @ControllerAdvice 和 @ExceptionHandler 实现统一异常处理 Spring 提供了 @ControllerAdvice 注解用于集中处理控制器层的全局异常。@ExceptionHandler 注解用于定义具体的异常处理方法。下面是一个基
2024-11-22