本文主要内容为seata的实践篇,理论知识不懂的请参考前文: 我还不懂什么是分布式事务 主要介绍两种最常用的TCC和AT模式。 环境信息: mysql:5.7.32 seata-server:1.4.1 SpringCloud:Hoxton.SR10 SpringBoot:2.3.8.RELEASE
你不懂分布式还怎么进大厂
引言一直以来,Java都被认为是一种面向对象的编程语言,“万事万物皆对象”的思想已经深入人心。但随着Java8的发布,一切看起来似乎有些改变。Lambda表达式和Stream的引入,让Java焕发了新的活力,它允许人们可以用函数式编程思维思考问题。本文主要介绍了函数式编程思想在Java中的应用。指令式还是声明式?先看一段代码:计算商品价格的最大值。我们一般会这样实现:javaintmax=0;fo
今日题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入:strs="flower","flow","flight"输出:"fl"示例2:输入:strs="dog","racecar","car"输出:""解释:输入不存在公共前缀。提示:1<=strs.length<=2000<=strsi.length<=200strsi仅由小写英文字母组成思路公
今天题目罗马数字包含以下七种字符:I,V,X,L,C,D和M。bash字符数值I1V5X10L50C100D500M1000例如,罗马数字2写做II,即为两个并列的1。12写做XII,即为X+II。27写做XXVII,即为XX+V+II。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如4不写做IIII,而是IV。数字1在数字5的左边,所表示的数等于大数5减小数1得到的数值4。同样
今日题目1罗马数字包含以下七种字符:I,V,X,L,C,D和M。bash字符数值I1V5X10L50C100D500M1000例如,罗马数字2写做II,即为两个并列的1。12写做XII,即为X+II。27写做XXVII,即为XX+V+II。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如4不写做IIII,而是IV。数字1在数字5的左边,所表示的数等于大数5减小数1得到的数值4。同
今日题目给你一个字符串s和一个字符规律p,请你来实现一个支持'.'和''的正则表达式匹配。'.'匹配任意单个字符''匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串s的,而不是部分字符串。示例1:输入:s="aa"p="a"输出:false解释:"a"无法匹配"aa"整个字符串。示例2:输入:s="aa"p="a"输出:true解释:因为''代表可以匹配零个或多个前面的那一个元素,在这里
前言今天的题目按照顺序的话应该是第8题字符串转换整数(atoi)(https://leetcodecn.com/problems/stringtointegeratoi),但是这道题完全是对字符串的边界转换考察,个人认为并没有什么算法思想,所以这次跳过第8题。今日题目1给你一个整数x,如果x是一个回文整数,返回true;否则,返回false。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的
题目给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。如果反转后整数超过32位的有符号整数的范围−231,231−1,就返回0。假设环境不允许存储64位整数(有符号或无符号)。示例1:输入:x=123输出:321示例2:输入:x=123输出:321示例3:输入:x=120输出:21示例4:输入:x=0输出:0思路看到这道题目的时候,首先想到的是转换成字符串,然后翻转,所以迅速写完第一
今日题目将一个给定字符串s根据给定的行数numRows,以从上往下、从左到右进行Z字形排列。比如输入字符串为"PAYPALISHIRING"行数为3时,排列如下:bashPAHNAPLSIIGYIR之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。请你实现这个将字符串进行指定行数变换的函数:stringconvert(strings,intnumRo
在日常开发中,我们经常会遇到需要调用外部服务和接口的场景。外部服务对于调用者来说一般都是不可靠的,尤其是在网络环境比较差的情况下,网络抖动很容易导致请求超时等异常情况,这时候就需要使用失败重试策略重新调用API接口来获取。重试策略在服务治理方面也有很广泛的使用,通过定时检测,来查看服务是否存活。Spring异常重试框架SpringRetrySpringRetry支持集成到Spring或者Sprin
引言先从一个例子开始,看看为什么在Java8中要引入流(Stream)?比如实现这么一个需求:在学生集合中查找男生的数量。传统的写法为:javapubliclonggetCountsOfMaleStudent(List<Studentstudents){longcount=0;for(Studentstudent:students){if(student.isMale()){count;}}ret
新的语言特性常常让现存的编程模式或设计黯然失色。比如Java5中引入了foreach循环,由于它的稳健性和简洁性,已经替代了很多显式使用迭代器的情形。Java7中推出的菱形操作符(<)在创建实例时无需显式使用泛型,一定程度上推动了Java程序员们采用类型接口(typeinterface)进行程序设计。对设计经验的归纳总结被称为设计模式。设计软件时,如果愿意,可以复用这些方式方法来解决一些常见问题。
今日题目给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。示例1:输入:nums1=1,3,nums2=2输出:2.00000解释:合并数组=1,2,3,中位数2示例2:输入:nums1=1,2,nums2=3,4输出:2.50000解释:合并数组=1,2,3,4,中位数(2+3)/2=2.5示例3:输入:nums1=0,0,nums2=0
骚操作疫情期间很多公司开始远程办公,但是远程办公后如何获取员工的活跃度(看看是不是在划水),很多公司已经开始使用云操作系统,或者安装了一些安全监控软件,可能会检测鼠标、键盘等等的活跃度,这事,我们该如何合理的工作(摸鱼),又不被检测出来活跃度不够呢?当然你可以使用鼠标精灵等软件,本文介绍一种Java的实现方案。简介Robot类用于模拟鼠标、键盘事件,生成本机系统输入事件。Robot的主要用于自动化
前文讲了一个利用滑动窗口思想的题目“无重复字符的最长子串”今天试着总结归纳一下这类题目的共性和解法滑动窗口什么是滑动窗口?滑动:指的是窗口是移动的,按照一定的方向来移动窗口:指的是一定范围内,这个范围可以固定也可以是变化的实例常见的滑动窗口思想的实例有以下两个TCP协议中的滑动窗口协议,用于网络数据传输时的流量控制,以避免拥塞的发生限流算法,滑动窗口限流,一定时间内允许对小窗口进行限流!image
这是我参与更文挑战的第25天,活动详情查看:更文挑战(https://juejin.cn/post/6967194882926444557)参加过校园招聘机试的你,在CSDN、牛客网上做过编程题目的你,肯定都有过在一个web页面输入代码,得到执行结果的经历。聪明如你,有没有想过这种在线编程系统(OJ)是怎么实现的呢?最近,笔者要做的一项工作是,编写各种demo程序、辅以各种JVM参数测试给出JDK
一、使用线程池在流量突发期间能够平滑地服务降级很多场景下应用程序必须能够处理一系列传入请求,简单的处理方式是通过一个线程顺序的处理这些请求,如下图:!(https://s4.51cto.com/images/blog/202112/23000625_61c34d015727f97127.png?xossprocess=image/watermark,size_14,text_QDUxQ1RP5Y2
0、前言开发中做了一个导出CSV功能,本地通过wps测试都没有问题,但是测试人员测试的时候发现用excel打开中文表头会出现乱码现象,很奇怪的现象,用nodePad工具打开看也是正常的,但是用excel打开就是中文乱码,通过查找资料了解到是因为csv文件是utf8编码的,但是没有增加bom头,这样就会导致在window环境下一些软件会用默认编码打开文件从而导致乱码问题,本文详细介绍从前端下载、后端
常用并发容器前几天和同事xhf、zm走查代码,功能是为了减少频繁你创建FTP开销用线程notify和wait实现了一个FTP池子,当时提的建议就是用java自带的线程集合实现可能更高效,本文整理下JDK自带线程安全的集合,不考虑多线程并发的情况下,容器类一般使用ArrayList、HashMap等线程不安全的类,效率更高。在并发场景下,常会用到ConcurrentHashMap、ArrayBloc
java方法参数的前世今生1、问题最近结对开发中同事遇到了以下代码问题:privatevoidcheckRequest(TempNbrRequesttempNbrRequest)throwsCommonException{checkNeType(tempNbrRequest.getNeType());checkProduct(tempNbrRequest.getProducts());checkE
一个Getter引发的血案需求最近做一了个需求,调用其他服务的REST接口,感觉很简单,于是迅速就搞起来了构造Request类javapublicclassUser{privateStringname;privateIntegerage;publicUser(Stringname,Integerage){this.name=name;this.age=age;}}啪,我上来就一newjavaser
事务定义事务:一个最小的不可再分的工作单元;一个事务通常对应一个完整的业务,例如银行账户转账业务,该业务就是一个最小的工作单元一个完整的业务需要一组的DML(insert、update、delete)语句共同联合完成事务只和DML语句有关,或者说DML语句才有事务。这个和业务逻辑有关,业务逻辑不同,DML语句的个数不同事务特性一个事务都必须包含四条基本特性,这四条特性一般称为ACID(Atomic
IO模型IO是Input/Output的缩写。Linix网络编程中有五种IO模型:blockingIO(阻塞IO)nonblockingIO(非阻塞IO)IOmultiplexing(多路复用IO)signaldrivenIO(信号驱动IO)asynchronousIO(异步IO)简介Java.io包基于流模型实现,提供File抽象、输入输出流等IO的功能。交互方式是同步、阻塞的方式,在读取输入流
由于疫情,从今天开始在家远程办公,虽然远程看似不需要出门,但是还是又很多不便吃饭是个大问题,以前在公司食堂吃,到点去吃,现在要么自己做,要么外卖都是很麻烦工作时间变长,在公司十到点就去赶班车,在家都没有时间概念,同时感觉任务也更多大家都在加班,内卷更严重了唉,抽出时间刷题太难了刷了又不会,会了也记不住,记住了新题型还是不会,好要不要刷题呢?今日题目给定一个字符串s,请你找出其中不含有重复字符的最长
---------- ### 0、前言 ### ES是一个基于Lucene的分布式全文搜索服务器,和SQL Server的全文索引(Fulltext Index)有点类似,都是基于分词和分段的全文搜索引擎,具有分词,同义词,词干查询的功能,但是ES天生具有分布式和实时的属性。 例:多用于搜索引擎自动补全功能 ![](https://img-blog.csdnimg.cn/2019083014240
泛型是 Java 的高级特性之一,如果想写出优雅而高扩展性的代码,或是想读得懂一些优秀的源码,泛型是绕不开的槛。本文介绍了什么是泛型、类型擦除的概念及其实现,最后总结了泛型使用的最佳实践。引子想写一下关于 Java 一些高级特性的文章,虽然这些特性在平常实现普通业务时可能用不到,但如果想写出优雅而高扩展性的代码,或是想读得懂一些优秀的源码,这些特性又是不可避免的。 如果对这些特性不了解,不熟悉特
## 刷题两天小结 很多题目还是直接没有思路,如果只是暴力解法又没有什么作用,有的题目思考很长时间也是做不出来, 刷题顺序也没有什么规律,看到拿到刷哪个,搜了下资料,刷题比较少的可以最开始从头开始刷,目前先按照这个规律刷150题左右 > 1、建议未刷过题的新人按着顺序来。前 150 题覆盖了很多经典题目和知识点,指针法类如『3 sum』系列,动规类如『regex matching』,搜索类题
一、问题应用场景应用中通过框架发送异步命令时,不能立刻返回命令的执行结果,而是异步返回命令的执行结果。 那么,问题来了,针对应用中这种异步调用,能不能像同步调用一样立刻获取到命令的执行结果,如何实现异步转同步?二、分析首先,解释下同步和异步同步,就是发出一个调用时,在没有得到结果之前,该调用就不返回或继续执行后续操作。异步,当一个异步过程调用发出后,调用者在没有得到结果之前,就可以继续执行后续操
为什么要使用Lambda表达式先看几段Java8以前经常会遇到的代码:创建线程并启动// 创建线程public class Worker implements Runnable { @Override public void run() { for (int i = 0; i < 100; i++) { doWork(); }
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号