Java
cluster模式问题以及解决
1.1 分布式和集群 分布式一定是集群,但是集群不一定是分布式。 单体应用:所有服务写在一个机器上。(用户、支付、物流、商品)。 分布式:各个子系统是一个服务。(拆分系统) 集群:多个实例一起工作。 分布式一定是集群,集群不一定是分布式 1.2 一致性Hash算法 HD5(加密) 普通hash算法存在的问题 浪费空间 相同内容,存不了同样的数据 改进: 1,6,7,
Rust的Cell、RefCell和OnceCell:灵活且安全的内部可变性
这一系列文章的创作目的主要是帮助我自己深入学习Rust,同时也为已经具备一定Rust编程经验,但还没有深入研究过语言和标准库的朋友提供参考。对于正在入门Rust的同学,我更建议你们看《Rust圣经》或者《The Book》,而不是这种晦涩难懂的文章。 终于拿到了某量化公司的offer,继续系列文章的更新。今天没有复杂的开场白,在开始前我们先回顾一下Rust的内存安全机制对引用的限制: 数据争用
第二次作业--论文查重
这个作业属于哪个课程 软件工程 这个作业要求在哪里 个人项目 这个作业的目标 完成个人项目,运用psp流程完成编程, 灵活使用测试工具和性能分析工具 项目GetHub PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 30 30 Estimate 估计这个
doris集群环境部署
环境:OS:Centos 7DB:doris 2.1.1 192.168.1.101 fe be broker192.168.1.103 fe be broker192.168.1.105 fe be broker 说明:doris2.0开始fe、be、brokser都是使用同一个安装包,解压后分别有fe、be、broker目录 1.获取安装介质https://doris.apach
Mybatis20_mybatis核心配置文件深入7
一、typeHandler概述 无论是 MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时, 都会用类型处理器将获取的值以合适的方式转换成 Java 类型。下表描述了一些默认的类型处理器(截取部分)。 你可以重写类型处理器或创建你自己的类型处理器来处理不支持的或非标准的类型。具体做法为:实现 org.apache.ibatis.
Vite为什么这么快?
1.前言 对比之前,我们先要搞懂,vite与webpack的定位以及关系才可以。 那前端社区中常谈到的这些工具webpack、rollup、parcel、esbuild、vite、vue-cli、create-react-app、umi他们之间的关系: webpack、rollup、parcel、esbuild都是打包工具,代码写好之后,我们需要对代码进行压缩、合并、转换、分割、打包等操作,这些
ReentrantLock 使用
ReentrantLock 介绍 ReentrantLock 是 Java 中的一个可重入锁,它提供了与 synchronized 关键字类似的功能,但相比 synchronized,ReentrantLock 提供了更多的灵活性和功能。 定义:ReentrantLock 是一个可重入且独占式的锁,它具有与使用 synchronized 监视器锁相同的基本行为和语义,但与 synchronize
找出消失的已引入的类库
最近使用软件加密的时候用到了一个密码库,顺手从Maven Repository上,把对应的坐标给粘贴下来,引入后,项目也更新了。但是发现用不了对应的库里面的函数。 对应的Maven Repository的坐标信息如下。 一开始的时候,以为是类库没有下载成功。去到本地路径,找了下,地区是在的也是完整的。 然后删除类库,重新下载,重新导入项目。发现还是没法引用到对应的项目。 最后用了最原始的办法,
跟着GPT学设计模式之桥接模式
说明 桥接模式,也叫作桥梁模式,英文是 Bridge Design Pattern。在 GoF 的《设计模式》一书中,桥接模式是这么定义的:“Decouple an abstraction from its implementation so that the two can vary independently。”翻译成中文就是:“将抽象和实现解耦,让它们可以独立变化。” 桥接模式通过将一个类的
Servlet的实现
继承HttpServlet类 这是最常用的一种方式 实现Servlet抽象类 需要把所有抽象类里面所有的方法都重写 如何访问到我们写的这个类呢? 这有两种方式 注解@WebServlet("/s01") 这是最简单的方式,直接用注解 原始的方法 配置web.xml文件 通过url知道name,然后通过name找到具体在那个包的那个类里面
玩转Vue3之shallowRef和shallowReactive
前言 Vue3 作为一款现代的 JavaScript 框架,引入了许多新的特性和改进,其中包括 shallowRef 和 shallowReactive。这两个功能在Vue 3中提供了更加灵活和高效的状态管理选项,尤其适用于大型和复杂的应用程序。 Vue 3 的响应式系统 Vue3 引入了新的响应式系统,与 Vue2相比,它具有更好的性能和更多的功能。这个新系统基于 Proxy,为开发者提供了更直
DevOps软件开发管理模式、CICD概念及其Jenkins使用
一、什么是DevOps DevOps是Develop与Operations的缩写,是开发和运营维护的总称。它是企业内开发、技术运营和质量保障这三方面工作的融合,用于促进开发、技术运营和质保部门之间的沟通、协作与整合。为巩固软件设计与开发结果,将开发、运维与测试结合一起,形成了DevOps软件开发管理模式。 在很多企业中,应用程序发布是一项涉及多个团队、压力很大、风险很高的活动。然而在具备D
记录解决HttpServletResponse在参数报错的问题
下载excel功能需要用到HttpServletResponse,注入一直报错,java.lang.IllegalStateException: getOutputStream() has already been called for this response @Resource HttpServletResponse httpServletResponse; 使用注入的方
线上机器 swap 过高导致告警
哈喽大家好,我是咸鱼。 今天收到了一个告警,说有台服务器上的 swap 过高,已经用了 50% 以上了。 登录机器查看一下内存以及 swap 的使用情况。 可以看到还有 2.9G 的空闲物理内存,但是系统已经开始使用 swap 了,初步判断是机器上面的程序内存需求比较大,但物理内存不够用所以开始使用 swap 来存储部分数据。 什么是 swap swap 顾名思义指的是 Linux 上的交换分
前后端联调-前端返回包含数组导致后端无法接收~解决
问题: .HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.String` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.
springBean的三种实例化
spring容器创建javaBean的实例,有三种方式。 分别是通过构造方法、 静态工程方法、 实例工厂方法。 前言: 1.构造方法实例化方式: 我的理解: 通过bean标签结合property调用set方法;通过bean标签结合constructor-arg调用构造方法;通过@Componen、@Repository、@Service、@Controller注解; 都属于调用构造方法对对象进行
[Javascript] Class & Prototypes
Create a new User instance would create a new login function in memory each time? class User { constructor(username) { this.username = username; } login() {...} } const user1 = ne
JUC 源码讲解:sleep()
JUC 源码讲解:sleep() 抛出问题 sleep() 能使线程进入 TIMED_WAITING 状态,那么,在使用sleep()会不会释放锁?被中断了会不会抛出异常?在线程使用sleep()时,CPU会不会被释放?我们在源码中和实战中看看答案吧! 查看源码 进入 sleep() 源码,可以看到它是一个 native 方法,但是注释很详细,让我们拆开分析一下: 我们看到,这个 sleep()
隐式提交的引申之DB/SAP LUW
1、写在前面 之前发表过《聊聊更新表时的隐式提交》一文,向大家介绍隐式提交,对于数据库操作的作用。 有粉丝看过后,提出了自己的疑问: 首先解释一下,该粉丝大致的问题和代码含义为: 在创建销售订单增强中,当因为错误需要拦截单据创建时,需要用commit work记录日志数据到自建表。而由于使用了commit work,导致更新自建表的同时,将生成单据的事务也提交,导致拦截失败,单据一同被创建出来。
HttpServletRequest对象
HttpServletRequest对象是Java Servlet API中的一个重要接口,它代表了客户端(如Web浏览器)向服务器发送的HTTP请求。当Servlet容器(如Tomcat)接收到一个HTTP请求时,它会创建一个HttpServletRequest对象,并将其传递给Servlet的service()方法或相应的doGet()、doPost()等方法,以便Servlet能够处理该请
JUC源码讲解:wait()
JUC源码讲解:wait() 抛出问题 在线程调用 wait() 时,是否会释放锁?线程的状态是什么样的?会对异常敏感吗?此时CPU资源是否会被释放呢?我们在源码中找找答案吧! 分析源码 进入 wait() 函数,可以看到这样一段代码: 里面还有一个 wait(0) ,我们点进去看看 这是一个 native 方法 看到了有异常被抛出,证明是对异常敏感的 至于会不会释放锁,看看注释吧! 有这样一
JUC源码讲解:逐步解析 join()
JUC源码讲解:逐步解析 join() 问题抛出 join() 在源码中其实是使用了 wait() 方法的, 因此, wait() 的特性 join() 都能继承过来, 我们知道wait()有什么特性呢? wait()的特性: 会释放锁 对中断异常敏感 会释放CPU时间片 可是, join() 真的会释放锁吗? 为什么一些例子中, 使用join() 后其他线程仍然被阻塞住了?join()
Java反射和注解基本用法
Java注解和反射 Java注解 什么是注解 Annotation是从JDK5.0开始引入的新技术 Annotation作用: 不是程序本身,可以对程序做出解释 可以被其他程序(比如编译器)读取 Annotation格式: 注解是以@注解名在代码中存在的,还可以添加一些参数值,例如:@Service(value="") Annotation在哪些地方使用? package、c
Java 异常处理与正则表达式详解,实例演练及最佳实践
Java 异常 - Try...Catch 在 Java 代码执行期间,可能会发生各种错误,包括程序员编码错误、用户输入错误以及其他不可预料的状况。 当错误发生时,Java 通常会停止并生成错误消息,这个过程称为抛出异常。 try...catch 语句 try 语句允许您定义一段代码块,并在其中测试是否发生错误。 catch 语句允许您定义一段代码块,当 try 块中发生错误时执行该代码块。 tr
21_Java循环模式
循环结构 while 循环 do…while 循环 for 循环 在Java5中引入了一种主要用于数组的增强型for循环。 while 循环 while是最基本的循环 结构: 要求: 只要布尔表达式为true,循环就会一直执行下去 多数情况会让循环停止下来,需要一个让表达式失效的方式来结束循环。 少部分情况需要循环一直执行,比如服务器的请求响应监听等。 循环条件一直为true就会
Redis 八种常用数据类型详解
夯实基础,这篇文章带着大家回顾一下 Redis 中的 8 种常用数据类型: 5 种基础数据类型:String(字符串)、List(列表)、Set(集合)、Hash(散列)、Zset(有序集合)。 3 种特殊数据类型:HyperLogLog(基数统计)、Bitmap (位图)、Geospatial (地理位置)。 Redis 5 种基本数据类型 Redis 共有 5 种基本数据类型:String
LeetCode[题解] 2864. 最大二进制奇数
题目 给你一个 二进制 字符串 s ,其中至少包含一个 '1' 。 你必须按某种方式 重新排列 字符串中的位,使得到的二进制数字是可以由该组合生成的 最大二进制奇数 。 以字符串形式,表示并返回可以由给定组合生成的最大二进制奇数。 注意 返回的结果字符串 可以 含前导零。 示例 1: 输入:s = "010" 输出:"001" 解释:因为字符串 s 中仅有一个 '1' ,其必须出现在最后一位上。所