- 博客(80)
- 收藏
- 关注
原创 分布式事务与Seata
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和XA 事务模式,为用户打造一站式的分布式解决方案。AT模式是阿里首推的模式,阿里云上有商用版本的GTS(Global Transaction Service 全局事务服务)。Seata的三大角色:TC (Transaction Coordinator) - 事务协调者:维护全局和分支事务的状态,驱动全局事务提交或回滚。
2025-03-23 16:42:58
832
原创 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
665
原创 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
154
原创 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
827
原创 垃圾回收算法(面经 之 垃圾回收算法)
算法名称优点缺点适用范围标记-清除1. 不需要移动对象,实现相对简单。2 可以处理各种复杂的对象关系。1. 标记和清除过程效率相对较低,特别是对象数量众多时。2.会产生内存碎片,可能导致后续内存分配效率降低。老年代(在老年代内存碎片问题可以通过一些策略缓解,如分配大对象时先整理碎片)标记-整理1. 简单高效,在存活对象较少的情况下,复制操作成本较低。2.不会产生内存碎片,内存分配简单快速。1. 内存利用率较低,需要预留一半的空间用于复制存活对象。新生代(对象存活率低
2024-12-08 00:42:45
216
原创 位运算在Java中的运用
LCR177-撞色搭配 链接 :https://leetcode.cn/problems/shu-zu-zhong-shu-zi-chu-xian-de-ci-shu-lcof/description/。
2024-12-05 17:23:16
298
原创 不是,力扣,谁叫你这么出题的??
来,力扣,你告诉我target =11,nums =[1,2,3,4,5],这个怎么才能得到连续的数组,还是3,或者,你要不自己看看你的定义的子数组是什么意思?然后我们仔细的看看力扣自己对于子数组的定义是:“子数组 是数组中连续的 非空 元素序列。
2024-11-25 01:09:51
329
原创 for循环判断 以及 if判断
而,在for循环上判断却是在每次迭代前,如果条件不成立,则跳过这个迭代(for循环),所以在面对一些情况时,会直接Break出循环。在力扣的322题中,我的程序一直通过不了,明明我和官方想的状态方程一模一样,怎么会我的就过不了了呢?一直以来我都认为两者其实差别不大,也没有深究这个问题。明明两者都是一样的思想,为什么他能对,而我却不能成功?if判断 是在我进入for循环后,才进行的判断,是在迭代后。前者是在循环中判断条件,后者是在for循环上判断,
2024-10-28 23:40:58
248
1
原创 Java中的一些名词概念
Entity层中的类大多数是数据方面的,例如数据库中有负责登陆的User表(ID、UserName,Password),在Entity层就需要用private关键字定义与数据库中一样的字段(ID、UserName,Password)以及这些字段的get、set方法(方法可以Override)。Util是utiliy的缩写,是一个多功能、基于工具的包。因为 Java 只有值传递,所以,对于 == 来说,不管是比较基本数据类型,还是引用数据类型的变量,其本质比较的都是值,只是引用类型变量存的值是对象的地址。
2024-10-19 15:26:46
817
原创 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
355
原创 分布式 事务
ACID特性 :原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)由于订单、购物车、商品分别在三个不同的微服务,而每个微服务都有自己独立的数据库,因此下单过程中就会跨多个数据库完成业务。而每个微服务都会执行自己的本地事务:交易服务:下单事务购物车服务:清理购物车事务库存服务:扣减库存事务整个业务中,各个本地事务是有关联的。因此每个微服务的本地事务,也可以称为。多个有关联的分支事务一起就组成了。
2024-10-19 15:11:45
952
原创 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
1027
原创 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
1389
原创 解决端口被占用
第一步 : netstat -ano| # -ano 是查看所有端口的情况。第四步 : tasklist|findstr # 查出你要查询的进程号,是做什么的。第二步 :netstat -ano|findstr #查询具体的端口号。第三步 : tasklist #列举出我当前所有的进程。最后是你要查询的进程号, 我这里是8684。重启解决80%的问题。
2024-09-30 22:08:53
1243
原创 登录态记录多方式 (面经篇 之 登录校验)
首先 , 我们大多数知道的都是Token(JWT) , 和 session AND cookie 的两种保持登录态的方式。最原生的他们, 也就JWT 还能更上时代一点 , session在分布式, 基本上只有 在项目里吃灰, 但,session也可以变为适用于分布式,。1。我们都知道Redis 不仅可以用于作为缓存 和 分布式锁 之外, 其实 , 它还可以用户记录登录态。我。
2024-09-19 19:47:54
921
原创 Java操控Redis (面经之 使用Redis)
StringRedisTemplate:ReactiveStringRedisTemplate:, , , , 等等都是 或 对象中的方法,它们分别用于操作 Redis 中不同数据类型的键值对。以下是一些常见的 Java 数据结构以及 MySQL 数据类型与 Redis 数据类型的对应关系:Value(字符串):Set:List:Hash:Sorted Set(有序集合): 需要注意的是,在 Redis 中存储的数据都是二进制安全的字符串,即使你存储的是数字或者布尔值,它们也会以字符串的
2024-09-15 11:42:56
757
原创 JVM——Java虚拟机内存初识(面经篇之JVM内存)
动态链接信息(Dynamic link information)。方法返回地址(Return address for methods)。
2024-09-07 01:16:41
785
原创 TCP 之 三次握手 (面经计网篇)
在前面我们知道了什么是TCP 连接用于保证可靠性和流量控制维护的某些状态信息,这些信息的组合,包括Socket、序列号和窗口大小称为连接。所以,重要的是为什么三次握手才可以初始化 Socket、序列号和窗口大小并建立 TCP 连接。三次握手才可以阻止重复历史连接的初始化(主要原因)三次握手才可以同步双方的初始序列号三次握手才可以避免资源浪费 (面经是这样的,但我个人感觉 , 1 和 3 是可以合并的,具体讲到了,再说)、原因一:避免历史连接。
2024-09-01 22:49:49
1683
原创 面经の目录
都非常重要, 大部分是需要特意花时间去 总结, 整理的 , 但其中一些是只需要看到了就 总结一点。例如: Linux指令 , 数据库 底层原理 就是只需要日常总结即可 或 看面经时总结一下就好, 又例如:计网 , OS,JVM等 就是需要特地花时间。13 . 函数式编程 Lambda表达式, stream流, Optional, 函数式接口。这是我需要补足的基础知识的一个提纲 , 大纲 , 总要。3 . 数据库 { mysql , redis}6 . Java 集合, 并发。8 . 常见的设计模式。
2024-08-30 20:58:53
372
原创 分布式的 服务保护
Sentinel是阿里巴巴开源的一款服务保护框架,目前已经加入SpringCloudAlibaba中。超详细的Sentinel入门-阿里云开发者社区。
2024-08-30 00:40:03
891
原创 Commons Lang库中,StringUtils.isBlank()和StringUtils.isEmpty()区别
这个方法除了检查字符串是否为null或者长度为0外,还会检查字符串中的字符是否全为空白字符(包括空格、制表符、换页符等等)。如果字符串中有非空白字符,那么这个方法就会返回false。: 这个方法会返回true当字符串为null或者长度为0时。也就是说,只要字符串没有内容,无论是空字符串("")还是null,都会被认定为空。方法都是用来判断字符串是否为空或者空白的。它们的主要区别在于处理空格的方式上。在Apache Commons Lang库中,
2024-08-27 17:15:43
230
原创 Maven的常用命令(面试篇之Maven) 以及 idea 的小窍门
即可完成大部分任务,因为这些命令会自动触发多个插件的相应目标。在Maven中,插件是用于执行特定任务的工具,它们在。在实际开发过程中,通常只需要执行。请注意,大部分插件的命令都可以通过。
2024-07-22 21:51:42
514
1
原创 为什么在二叉树遍历题目中Java和指针语言的返回不同
在做类似二叉树遍历等题目时, 发现怎么java都是新建一个list集合,而不是新建一个二叉树,返回 , 但怎么C语言,golang这些语言都是返回指针呢?这就引起了我的不爽,我Java何时才能站起来。
2024-07-18 10:44:22
183
原创 Java版本迭代的过程(Java面经)
Java 5: 泛型与注解泛型:使得Web应用可以编写更加类型安全的代码,特别是在处理各种数据结构时,如集合框架的使用。 注解:极大地简化了配置管理,Spring框架的崛起得益于Java 5的注解支持,使得依赖注入和AOP等特性可以更简洁地实现,减少了XML配置的负担。Java 6: 更多的Web支持引入了脚本引擎API,这为在服务器端使用动态语言提供了可能,虽然不是直接针对Web开发,但它开启了混合使用多种语言的可能性。 改进了国际化和本地化支持,这对于面向全球用户的Web应用非常重要。J
2024-07-05 23:53:09
486
原创 锁之Syncronized(java面经)
锁升级的目的是在低竞争情况下使用更轻量的锁,而在高竞争情况下使用更重的锁,以达到平衡锁的性能和资源消耗的目的。锁升级是自动的,由JVM根据锁的竞争程度动态决定。关键字在JVM层面上是基于监视器锁(monitor)实现的。锁在不同的竞争程度下自动变化其锁的级别,以减少锁带来的开销。当一个线程试图获取锁时,它会尝试获取该对象的。的状态设置为“已锁定”,并将线程的引用存储在。未被其他线程持有,当前线程就会获得锁,并将。其他线程将会被阻塞,直到锁被释放。对象实现的,每个对象都有一个与之关联的。
2024-07-04 21:23:25
337
原创 数据结构底层之HashMap(面经篇1)
1 . 讲一下hashmap的数据结构HashMap是一种基于哈希表实现的数据结构,通常用于关联键值对,其中键是唯一的,而值可以重复。在Java中,HashMap是接口的一个实现,它提供了快速的查找、插入和删除操作。
2024-07-04 21:12:37
380
原创 求问Leetcoede142
求问,我这代码有什么逻辑错误吗,为什么样例过不了呢?有没有,大佬能帮我看看 , 这是哪里的问题啊?而且,我应该和官方的代码的思路一样啊。
2024-06-21 23:40:34
273
原创 计网的交换机和RabbitMQ的交换机概念是不同的
在计网中交换机是网络层的东西 , 是对应设备与设备间信息传输` , 交换机是用来在局域网内部传递数据包帧 , 他根据MAC地址,学习和转发数据包 ,在RabbitMQ中交换机 是用来接受消息 , 并根据路由规则将 消息发往 一个或多个 组件中。
2024-06-16 23:28:58
133
原创 java的System的复制函数的比较
这意味着它是在 JVM 的底层实现中用 C 或 C++ 编写的,而 C 和 C++ 语言允许更接近硬件级别的优化,因此执行效率更高。有特殊的优化策略,例如,它可以利用 SIMD(单指令多数据)指令来并行处理多个数据元素,进一步加速数组拷贝过程。是两种不同的机制,它们分别用于不同类型的数据拷贝任务,因此它们的效率比较需要放在具体的场景下讨论。在方法调用时仅进行一次边界检查,然后就连续复制元素,避免了多次边界检查的开销。:for 循环中的迭代涉及到条件判断和循环控制结构,如比较和跳转指令,而。
2024-06-07 10:20:32
755
原创 事务详讲(本地及分布式)
因为在分布式服务中,难免一个接口中会有很多调用远程服务的情况,这个就非常容易出现问题,以下是一个详细的例子: 例如,你为了保证事物的一致性等要求,所以,你方法上只写了@Transactional,但你的业务中又需要调用其他微服务的方法(Feign),这时就容易出现问题了,当你的远程服务调用时因为一些缘故 , 可能时间过长,timeout挂了, 异常等等 ,挂了需要回滚事务时 , 就会出现问题 为什么呢? 这是因为已经执行的远程服务是不会回滚的, 这是分布式的一个特性,不同的微服务讲会有不同的数据库,所以
2024-06-03 21:50:37
714
原创 幂等性讲解
插入数据,应该按照唯一索引进行插入,比如订单号,相同的订单就不可能有两条记录插入。果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结。据处理,我们就可以加分布式锁,锁定此数据,处理完成后释放锁。这里要注意的是,去重表和业务表应该在同一库中,这样就保证了在同一个。事务,即使业务操作失败了,也会把去重表的数据回滚。这个很好的保证了数据一致性。后删除可能导致,业务处理成功,但是服务闪断,出现超时,没有删除。做为去重表的唯一索引,把唯一索引插入去重表,再进行业务操作,且。
2024-06-02 16:22:57
770
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人