自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 收藏
  • 关注

原创 实习期间遇到整数溢出错误

打竞赛的同学应该一下就知道,这其实是有整数溢出的错误情况的。在我实习的商城售后部分中工单统计,我采用了这种方式,但在统计数量时,就出现了整数溢出问题,这是公司的屎山代码导致的问题,我们大概日均工单量可达数万,月累计超过100万,本来是用的Long,但有一部分使用的Integer,在我新增功能时,就遇到了该问题,在生成仪表盘,做数据处理时遇到的问题,记录一下。1. 先问问 “Arrays.sort(points,(o1,o2)->Integer.compare(o1[0],o2[0]));

2025-07-13 17:19:16 136

原创 Spring的事务控制——学习历程

1. 事务是干什么的?2. 事务的特性?3. 事务控制的传播方式(传播行为)4. 事务的隔离级别5. 事务是如何实现的?6. 事务的回滚方式7. 事务失效场景。

2025-07-12 00:09:37 490

原创 JVM——学习路线

1.JVM的内存模型(只有知道这个,学到下面的GC相关知识,你才能将知识串联起来)2.常考的GC垃圾回收器3.四种垃圾回收算法、

2025-07-09 15:09:23 581

原创 Java的各种各样的生命周期——思考历程

1.我需要了解到常见的生命周期,有Spring的Bean的生命周期,类的生命周期,对象的生命周期,线程的生命周期。2.知道这些常见的生命周期有什么作用呢?

2025-07-06 16:13:13 845

原创 线程池——学习的思考过程

该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(ready)。:停止所有正在执行的线程,不在处理在池中任务(应该是包含线程正在执行的和在队列中的),但一般,他要等所有线程停止后,线程池才结束。是一个平台线程可以在不同的时间执行不同的虚拟线程,当虚拟线程被阻塞或等待时,平台线程可以切换到执行另一个虚拟线程。是JDK的,由 JVM 调度,许多虚拟线程共享同一个操作系统线程,虚拟线程的数量可以远大于操作系统线程的数量。1.Java中存在哪些线程:虚拟线程和平台线程,

2025-07-02 19:37:42 795

原创 分布式锁——学习流程

1.什么是分布式锁2.分布式锁的应用场景3.怎么实现分布式锁4.分布式锁是如何运作的回答1.在微服务应用中,为了保证最终一致性,我们一般采用分布式事务,分布式锁,其中分布式锁就是在 分布式系统多线程、多进程并且分布在不同机器上,使的原单机部署情况下的并发控制锁策略失效,单纯的应用并不能提供分布式锁的能力。为了解决这个问题就需要一,这就是。

2025-07-01 16:54:06 588

原创 设计模式6大原则

当子类的方法实现父类的方法(重写、重载或实现抽象方法)时,方法的后置条件(即方法的输出或返回值)要比父类的方法更严格或与父类的方法相等。如果需要开发的一个功能需求不是一次性的,而且随着业务发展的不断变化而变化,那么当一个Class责任超过两个及以上的职位时。·当子类的方法重载父类的方法时,方法的前置条件(即方法的输入参数)要比父类的方法更宽松。要求程序员尽量将臃肿庞大的接口拆分成更小的和更具体的接口,让接口中只包含客户感兴趣的方法。·子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。

2025-06-16 13:51:46 299

原创 分布式事务与Seata

Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和XA 事务模式,为用户打造一站式的分布式解决方案。AT模式是阿里首推的模式,阿里云上有商用版本的GTS(Global Transaction Service 全局事务服务)。Seata的三大角色:TC (Transaction Coordinator) - 事务协调者:维护全局和分支事务的状态,驱动全局事务提交或回滚。

2025-03-23 16:42:58 874

原创 Docker安装,并pullMySQL和redis

sudo docker pull mysql:5.7 Docker images 确认 启动镜像: sudo docker run -p 3306:3306 --name mysql \。https://download.docker.com/linux/centos/docker-ce.repo 安装Docker。Docker pull redis 创建目录文件: mkdir -p /mydata/redis/conf。镜像设置有问题: sudo vim /etc/docker/daemon.json。

2025-03-19 11:46:44 697

原创 Linux服务器部署

后端,安转Web相关:nginx(这个看你), tomcat,apache。3.复制下载链接,curl下载 (curl -o <名称> 下载链接)5.打包项目文件,上传服务器/ git clone <仓库地址>6. 打包:mvn package -DskipTests。1安装 nginx:(前后端在一个服务器,就需要)7.结束:java -jar <你的jar包位置>tar -zxvf <压缩包名称>curl -o <文件名> 地址。2. 本地下载,上传到服务器。2. 添加Path路径。

2025-03-19 11:46:05 181

原创 centos7-mini-2009下载docker

重装系统后,装docker真是bug一堆,总结一下,不掉同一坑。

2025-02-07 13:21:06 377

原创 初识Go语言

变量:Go是强变量类型的语言。

2025-01-21 21:48:43 202

原创 Git的基本命令以及其原理(公司小白学习)

修改之后,我们通过git log查看会发现两者的名称已经变了,再tree git查看也可以看到Object文件里多了一个commit文件,意味着就会有两份文件,一个修改前,一个修改后,儿修改前的文件的ref会转移到修改后的全新文件上,没有ref的old文件,就被成为悬空文件。假如我们先 touch readme.md添加文件,在tree .git文件会发现创建了,却无法找到,这就是因为创建的文件放在了工作区,你需要git add readme.md才会将这份文件上传到暂存区,tree .git可以查看。

2025-01-15 23:32:27 855

原创 Java项目打包,找不到主清单

二:如果你有插件,那么看看你的false是否为false。

2024-12-14 18:49:02 295

原创 垃圾回收算法(面经 之 垃圾回收算法)

算法名称优点缺点适用范围标记-清除1. 不需要移动对象,实现相对简单。2 可以处理各种复杂的对象关系。1. 标记和清除过程效率相对较低,特别是对象数量众多时。2.会产生内存碎片,可能导致后续内存分配效率降低。老年代(在老年代内存碎片问题可以通过一些策略缓解,如分配大对象时先整理碎片)标记-整理1. 简单高效,在存活对象较少的情况下,复制操作成本较低。2.不会产生内存碎片,内存分配简单快速。1. 内存利用率较低,需要预留一半的空间用于复制存活对象。新生代(对象存活率低

2024-12-08 00:42:45 241

原创 位运算在Java中的运用

LCR177-撞色搭配 链接 :https://leetcode.cn/problems/shu-zu-zhong-shu-zi-chu-xian-de-ci-shu-lcof/description/​。

2024-12-05 17:23:16 313

原创 不是,力扣,谁叫你这么出题的??

来,力扣,你告诉我target =11,nums =[1,2,3,4,5],这个怎么才能得到连续的数组,还是3,或者,你要不自己看看你的定义的子数组是什么意思?然后我们仔细的看看力扣自己对于子数组的定义是:“子数组 是数组中连续的 非空 元素序列。

2024-11-25 01:09:51 340

原创 for循环判断 以及 if判断

而,在for循环上判断却是在每次迭代前,如果条件不成立,则跳过这个迭代(for循环),所以在面对一些情况时,会直接Break出循环。在力扣的322题中,我的程序一直通过不了,明明我和官方想的状态方程一模一样,怎么会我的就过不了了呢?一直以来我都认为两者其实差别不大,也没有深究这个问题。明明两者都是一样的思想,为什么他能对,而我却不能成功?if判断 是在我进入for循环后,才进行的判断,是在迭代后。前者是在循环中判断条件,后者是在for循环上判断,

2024-10-28 23:40:58 279 1

原创 JAVA中符号概念

" :: "** :方法引用符。

2024-10-19 15:27:25 166

原创 Java中的一些名词概念

Entity层中的类大多数是数据方面的,例如数据库中有负责登陆的User表(ID、UserName,Password),在Entity层就需要用private关键字定义与数据库中一样的字段(ID、UserName,Password)以及这些字段的get、set方法(方法可以Override)。Util是utiliy的缩写,是一个多功能、基于工具的包。因为 Java 只有值传递,所以,对于 == 来说,不管是比较基本数据类型,还是引用数据类型的变量,其本质比较的都是值,只是引用类型变量存的值是对象的地址。

2024-10-19 15:26:46 840

原创 IDEA中我常用的快捷键

查找方法 : Ctrl + N / Ctrl + F12。格式化 : Shift + Ctrl + Alt + L。项目结构 :Shift + Ctrl +Alt + S。回到之前所在 : Ctrl + Alt + <--创建方法 : Ctrl + Alt + M。多选:Ctrl + Alt + 鼠标左键。代码上移:shift+alt +方向键上。代码下移:shift+alt +方向键下。导入插件 :Alt + InsScrLk。完整对象 Ctrl + Alt + V。转型:Ctrl + Alt + B。

2024-10-19 15:24:51 372

原创 分布式 事务

ACID特性 :原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)由于订单、购物车、商品分别在三个不同的微服务,而每个微服务都有自己独立的数据库,因此下单过程中就会跨多个数据库完成业务。而每个微服务都会执行自己的本地事务:交易服务:下单事务购物车服务:清理购物车事务库存服务:扣减库存事务整个业务中,各个本地事务是有关联的。因此每个微服务的本地事务,也可以称为。多个有关联的分支事务一起就组成了。

2024-10-19 15:11:45 962

原创 git查看自己代码提交量

AI项目 : xyy added lines: 2829, removed lines: 544, total lines: 2285。绿蚁新酿 added lines: 6, removed lines: 0, total lines: 6。

2024-10-19 15:08:23 1130

原创 Neo4j CQL语句 使用教程

创建 CREATE (cc:CreditCard{id:“5001”,number:“1234567890”,cvv:“888”,expiredate:“20/17”})例如 : CREATE (p1:Profile1)-[r1:LIKES]->(p2:Profile2)使用 CREATE (m:Movie:Cinema:Film:Picture)使用 MATCH (dept:Dept) return dept 可以得到。使用 MATCH (dept: Dept)Neo4j CQL REMOVE命令用于。

2024-10-04 00:19:22 1441

原创 解决端口被占用

第一步 : netstat -ano| # -ano 是查看所有端口的情况。第四步 : tasklist|findstr # 查出你要查询的进程号,是做什么的。第二步 :netstat -ano|findstr #查询具体的端口号。第三步 : tasklist #列举出我当前所有的进程。最后是你要查询的进程号, 我这里是8684。重启解决80%的问题。

2024-09-30 22:08:53 1494

原创 登录态记录多方式 (面经篇 之 登录校验)

首先 , 我们大多数知道的都是Token(JWT) , 和 session AND cookie 的两种保持登录态的方式。最原生的他们, 也就JWT 还能更上时代一点 , session在分布式, 基本上只有 在项目里吃灰, 但,session也可以变为适用于分布式,。1。我们都知道Redis 不仅可以用于作为缓存 和 分布式锁 之外, 其实 , 它还可以用户记录登录态。我。

2024-09-19 19:47:54 960

原创 Java操控Redis (面经之 使用Redis)

StringRedisTemplate:ReactiveStringRedisTemplate:, , , , 等等都是 或 对象中的方法,它们分别用于操作 Redis 中不同数据类型的键值对。以下是一些常见的 Java 数据结构以及 MySQL 数据类型与 Redis 数据类型的对应关系:Value(字符串):Set:List:Hash:Sorted Set(有序集合): 需要注意的是,在 Redis 中存储的数据都是二进制安全的字符串,即使你存储的是数字或者布尔值,它们也会以字符串的

2024-09-15 11:42:56 777

原创 JVM——Java虚拟机内存初识(面经篇之JVM内存)

动态链接信息(Dynamic link information)。方法返回地址(Return address for methods)。

2024-09-07 01:16:41 815

原创 TCP 之 三次握手 (面经计网篇)

在前面我们知道了什么是TCP 连接用于保证可靠性和流量控制维护的某些状态信息,这些信息的组合,包括Socket、序列号和窗口大小称为连接。所以,重要的是为什么三次握手才可以初始化 Socket、序列号和窗口大小并建立 TCP 连接。三次握手才可以阻止重复历史连接的初始化(主要原因)三次握手才可以同步双方的初始序列号三次握手才可以避免资源浪费 (面经是这样的,但我个人感觉 , 1 和 3 是可以合并的,具体讲到了,再说)、原因一:避免历史连接。

2024-09-01 22:49:49 1738

原创 面经の目录

都非常重要, 大部分是需要特意花时间去 总结, 整理的 , 但其中一些是只需要看到了就 总结一点。例如: Linux指令 , 数据库 底层原理 就是只需要日常总结即可 或 看面经时总结一下就好, 又例如:计网 , OS,JVM等 就是需要特地花时间。13 . 函数式编程 Lambda表达式, stream流, Optional, 函数式接口。这是我需要补足的基础知识的一个提纲 , 大纲 , 总要。3 . 数据库 { mysql , redis}6 . Java 集合, 并发。8 . 常见的设计模式。

2024-08-30 20:58:53 382

原创 分布式的 服务保护

Sentinel是阿里巴巴开源的一款服务保护框架,目前已经加入SpringCloudAlibaba中。超详细的Sentinel入门-阿里云开发者社区。

2024-08-30 00:40:03 900

原创 Commons Lang库中,StringUtils.isBlank()和StringUtils.isEmpty()区别

这个方法除了检查字符串是否为null或者长度为0外,还会检查字符串中的字符是否全为空白字符(包括空格、制表符、换页符等等)。如果字符串中有非空白字符,那么这个方法就会返回false。: 这个方法会返回true当字符串为null或者长度为0时。也就是说,只要字符串没有内容,无论是空字符串("")还是null,都会被认定为空。方法都是用来判断字符串是否为空或者空白的。它们的主要区别在于处理空格的方式上。在Apache Commons Lang库中,

2024-08-27 17:15:43 283

原创 Maven的常用命令(面试篇之Maven) 以及 idea 的小窍门

即可完成大部分任务,因为这些命令会自动触发多个插件的相应目标。在Maven中,插件是用于执行特定任务的工具,它们在。在实际开发过程中,通常只需要执行。请注意,大部分插件的命令都可以通过。

2024-07-22 21:51:42 529 1

原创 为什么在二叉树遍历题目中Java和指针语言的返回不同

在做类似二叉树遍历等题目时, 发现怎么java都是新建一个list集合,而不是新建一个二叉树,返回 , 但怎么C语言,golang这些语言都是返回指针呢?这就引起了我的不爽,我Java何时才能站起来。

2024-07-18 10:44:22 193

原创 Java版本迭代的过程(Java面经)

Java 5: 泛型与注解泛型:使得Web应用可以编写更加类型安全的代码,特别是在处理各种数据结构时,如集合框架的使用。 注解:极大地简化了配置管理,Spring框架的崛起得益于Java 5的注解支持,使得依赖注入和AOP等特性可以更简洁地实现,减少了XML配置的负担。Java 6: 更多的Web支持引入了脚本引擎API,这为在服务器端使用动态语言提供了可能,虽然不是直接针对Web开发,但它开启了混合使用多种语言的可能性。 改进了国际化和本地化支持,这对于面向全球用户的Web应用非常重要。J

2024-07-05 23:53:09 507

原创 锁之Syncronized(java面经)

锁升级的目的是在低竞争情况下使用更轻量的锁,而在高竞争情况下使用更重的锁,以达到平衡锁的性能和资源消耗的目的。锁升级是自动的,由JVM根据锁的竞争程度动态决定。关键字在JVM层面上是基于监视器锁(monitor)实现的。锁在不同的竞争程度下自动变化其锁的级别,以减少锁带来的开销。当一个线程试图获取锁时,它会尝试获取该对象的。的状态设置为“已锁定”,并将线程的引用存储在。未被其他线程持有,当前线程就会获得锁,并将。其他线程将会被阻塞,直到锁被释放。对象实现的,每个对象都有一个与之关联的。

2024-07-04 21:23:25 355

原创 数据结构底层之HashMap(面经篇1)

1 . 讲一下hashmap的数据结构HashMap是一种基于哈希表实现的数据结构,通常用于关联键值对,其中键是唯一的,而值可以重复。在Java中,HashMap是接口的一个实现,它提供了快速的查找、插入和删除操作。

2024-07-04 21:12:37 388

原创 求助LeetCode141

我这代码,样例都过了 , 是 "head = 【1,2】 pos = -1" 这个点没过。

2024-06-21 23:43:28 130

原创 求问Leetcoede142

求问,我这代码有什么逻辑错误吗,为什么样例过不了呢?有没有,大佬能帮我看看 , 这是哪里的问题啊?而且,我应该和官方的代码的思路一样啊。

2024-06-21 23:40:34 279

原创 计网的交换机和RabbitMQ的交换机概念是不同的

在计网中交换机是网络层的东西 , 是对应设备与设备间信息传输` , 交换机是用来在局域网内部传递数据包帧 , 他根据MAC地址,学习和转发数据包 ,在RabbitMQ中交换机 是用来接受消息 , 并根据路由规则将 消息发往 一个或多个 组件中。

2024-06-16 23:28:58 137

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除