自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 使用Spring Batch进行批量处理

Spring Batch是一个轻量级的批量处理框架,它基于Spring框架,提供了一套完整的批量处理解决方案。Spring Batch可以帮助我们处理大量的数据,支持事务管理、并发处理、错误处理等功能。使用Spring Batch进行批量处理可以帮助我们快速地实现批量处理的功能。在使用Spring Batch进行批量处理时,我们需要了解一些Spring Batch的核心概念,例如Job、Step、ItemReader、ItemProcessor和ItemWriter。

2023-06-06 16:37:34 975

转载 12.ThreadLocal的那点小秘密

ThreadLocal的内容到这里就结束了,使用方法,实现原理,包括内存泄漏都还是比较简单的。不过有一点比较难搞,因为有太多人去写“ThreadLocal通过拷贝共享变量的方式解决并发安全问题”,导致很多人认为这是ThreadLocal的核心功能,所以无法确认坐在对面的面试官是如何理解ThreadLocal的。

2023-05-30 15:09:04 212

转载 如果不知道这4种缓存模式,敢说懂缓存吗?

在系统架构中,缓存可谓提供系统性能的最简单方法之一,稍微有点开发经验的同学必然会与缓存打过交道,最起码也实践过。如果使用得当,缓存可以减少响应时间、减少数据库负载以及节省成本。但如果缓存使用不当,则可能出现一些莫名其妙的问题。在不同的场景下,所使用的缓存策略也是有变化的。如果在你的印象和经验中,缓存还只是简单的查询、更新操作,那么这篇文章真的值得你学习一下。在这里,为大家系统地讲解4种缓存模式以及它们的使用场景、流程以及优缺点。

2023-05-24 16:32:08 210

转载 对线面试官:浅聊一下 Java 虚拟机栈?

我们先来看栈的定义,我们这里的栈指的是 Java 虚拟机栈(Java Virtual Machine Stack)也叫做 JVM 栈,《Java虚拟机规范》对此区域的说明如下:§2.6以上内容翻译成中文的含义如下: Java 虚拟机栈是线程私有的区域,它随着线程的创建而创建。它里面保存的是局部变量表(基础数据类型和对象引用地址)和计算过程中的中间结果。Java 虚拟机的内存不需要连续,它只有两个操作:入栈和出栈。Java 虚拟机栈要么大小固定,要么根据计算动态的扩展和收缩。

2023-05-17 16:11:40 164

转载 一文搞定接口幂等性架构设计方案

现如今很多系统都会基于分布式或微服务思想完成对系统的架构设计。那么在这一个系统中,就会存在若干个微服务,而且服务间也会产生相互通信调用。那么既然产生了服务调用,就必然会存在服务调用延迟或失败的问题。当出现这种问题,服务端会进行重试等操作或客户端有可能会进行多次点击提交。如果这样请求多次的话,那最终处理的数据结果就一定要保证统一,如支付场景。此时就需要通过保证业务幂等性方案来完成。什么是幂等性幂等是一个数学与计算机学概念,即f(n) = 1^n。

2023-05-09 15:43:12 80

转载 SpringBoot 采用JsonSerializer和Aop 实现可控制的数据脱敏

最近在写一个功能,对用户敏感的数据进行脱敏,在网上看一圈基本上都是全局范围的,我觉得应该更加灵活,在不同场景,不同业务下进行脱敏更加合适。

2023-05-04 15:44:42 652

转载 SpringBoot定时任务@Scheduled的多线程使用

Scheduled是Spring框架中的一个注解,它可以用于配置定时任务,使得方法可以按照规定的时间间隔定时执行。在使用该注解时,我们可以指定任务的执行时间、循环周期、并发数等参数,从而实现定时任务的功能。在Spring Boot中,@Scheduled注解可以直接应用于方法上。通过以上的分析,我们可以了解到:虽然@Scheduled注解能够非常方便地实现定时任务的功能,但是它也存在一些多线程的问题。为此,需要注意到这些问题,并采取相应的措施来避免它们的出现。

2023-04-25 16:21:44 5688

转载 Java对象的序列化和反序列化

Java 对象的序列化是将 Java 对象转换成字节流的过程,可用于持久化数据,传输数据等。序列化是将 Java 对象的状态表示为字节序列的过程,可以通过网络传送,存储到文件中或者使用其他的持久化技术,如数据库等。序列化后的字节流可以被传输给远程系统,并在那里重新构造成原始对象。Java 序列化是一个将对象转化为字节流的过程。Java 对象的反序列化是将字节流重新恢复为原始对象的过程。反序列化是将字节流转化为对象的过程。反序列化是对象序列化的逆过程,通过反序列化操作能够在接收端恢复出与发送端相同的对象。

2023-04-18 17:12:16 594

转载 利用springboot初始化机制三种实现策略模式的应用

通过三种方式的对比,对于核心部分,其实就是几行代码的不同。无论是利用 Event 事件还是通过 Aware,本质都是拿到或利用 ApplicationContext 去解析接口,拿到实现类的实例,放入集合,然后在客户端(或其他)获取集合,根据枚举标识拿到对应的子类,执行对应的业务逻辑。

2023-04-12 16:27:19 196

转载 VM频繁GC内存溢出排查

以上方式推荐的还是jmap -histo和内存溢出时自动转储,对进程本身影响比较小。另外jmap -heap 可以看堆内存相关的JVM配置和堆内存整体分配。

2023-04-07 16:18:34 808

转载 利用Jackson序列化实现数据脱敏

所有标准序列化程序所使用的基类,这个是编写自定义序列化程序所推荐使用的基类。是Jackson 提供的另一个序列化相关的接口,它的作用是通过字段已知的上下文信息定制JsonSerializer。/*** 脱敏序列化器*/@Override//获取属性注解if (clazz!@Override= null) {try {} else {复制代码注:createContextual可以获得字段的类型以及注解。

2023-04-04 15:59:09 159

转载 Java项目是不是分布式,真有那么重要吗?

工作了之后,有的同事跳槽去了阿里/字节,我看他们简历也没写自己懂「微服务」「分布式」,也没见他们在简历上有Dubbo和SpringCloud这种技术栈,但这也没影响他们跳去字节和阿里这种公司。「微服务」「分布式」在我刚毕业的时候还是比较关注的,那时候还入门了一把SpringCloud,写了一篇很长的文章,还是很顶的,有不少的大号都给我转载了,在知乎又获得了很多的赞。回到正题上吧,最近「微服务」「分布式」这两个词又再次频繁出现在我的视线里,最主要的可能是我做了个开源项目「Austin」,听着听不难,对不对?

2023-03-28 15:38:51 122

原创 软件测试面试题及答案,免费的题库以及题目答案一一奉上

以上是部分的软件面试真题以及答案,是根据一个免费的软件测试面试题库整理出来的,大家如果想要刷更多的题库,可以自己去看看,叫柠檬班软件测试题库,是培训机构根据专业开发出来的一个免费题库,是一个小程序形式的,直接手机搜索就可,里面的题目包含有功能测试、自动化测试、性能测试等各个阶段软件测试面试问题。对于软件测试培训人员来说,除了掌握好专业的理论知识和技术,最重要的面试准备也是少不了的,毕竟面试可是大家正式进入软件行业的拦路虎,所以,在正式面试前,相关的软件测试面试题真题以及答案也一定要背一背!

2023-03-28 09:43:09 252

转载 大屏开发你需要知道哪些

再开发阶段需要直接使用对应得尺寸单位,或者利用postcss-px-to-viewport、postcss-pxtorem等postcss插件达到一个px得转换。

2023-03-22 16:49:49 636

转载 Spring Boot配置HTTPS,解决微信小程序上线问题

由于微信小程序在体验版和上线版本,需要用https连接,所以你需要申请一个域名,并为这个域名申请证书。怎么利用acme.sh免费申请证书在上篇文章有提到利用acme.sh免费建立https连接,这里就记录一下Spring Boot中配置HTTPS,再利用Docker进行部署。

2023-03-20 16:07:05 338

转载 Spring Boot | 集成MapStruct实现不同类型Java对象间的自动转换

— 引自MapStruct官网MapStruct是一个开源的代码生成器,极大地简化了从一种Java对象到另一种Java对象的转换过程。

2023-03-13 16:37:15 821

转载 既然有Map了,为什么还要有Redis?

代码更清晰,处理逻辑更简单;不用考虑各种锁的问题,不存在加锁和释放锁的操作,没有因为可能出现死锁而导致的性能问题;不存在多线程切换而消耗CPU;无法发挥多核CPU的优势,但可以采用多开几个Redis实例来完善;Redis是一个key-value存储系统,支持10种数据类型,总结了为何要用Redis替代map作为程序缓存、Redis为什么是单线程的、Redis的优缺点、Redis的常用场景,做了一次Redis的快速入门。

2023-03-10 16:38:58 284

转载 为啥一个 main 方法就能启动项目

在 Spring Boot 出现之前,我们要运行一个 Java Web 应用,首先需要有一个 Web 容器(例如 Tomcat 或 Jetty),然后将我们的 Web 应用打包后放到容器的相应目录下,最后再启动容器。在 IDE 中也需要对 Web 容器进行一些配置,才能够运行或者 Debug。而使用 Spring Boot 我们只需要像运行普通 JavaSE 程序一样,run 一下 main() 方法就可以启动一个 Web 应用了。这是怎么做到的呢?

2023-03-07 17:07:51 109

转载 JDK17会代替JDK8吗?

虽然JDK17跟JDK8相比较确实增加了很多新特性,不管是语法上、性能上,都在积极的吸取其他语言的特点,并且整个Java生态也在不断的升级为JDK17,但是对于公司而言,除非是新项目、新应用,不然是不太可能把现有项目升级到JDK17的。另外,JDK17是一个LTS(长期支持版),可以免费商用到2029年,JDK17本身在性能上也有优化,比如对于NIO的性能优化,至少提升了10%。俗话说:“它发认它发,我用Java8”。G1成为默认垃圾收集器。sealed 密封类。

2023-02-27 16:19:02 1425

转载 为什么很多公司都开始使用Go语言了?

最近和几个小伙伴们在写字节跳动第五届青训营后端组的大作业。接近尾期了,是时候做一些总结了,那从什么地方开始呢?那就从我们为什么要选择Go语言开始吧~🌐项目地址📝项目文档越来越多的互联网大厂开始使用Go语言了,譬如腾讯、美团、滴滴、百度、Google、bilibili...还有最初使用Python的字节跳动,甚至已经全面拥向Go了。这么多国内外首屈一指的公司,都在开始使用它了,它到底有什么优势呢?这就得谈谈它的一些优势了。

2023-02-22 17:22:08 236

原创 软件测试培训哪里好,培训出来的工资一般是多少?

一般来说,从事软件测试的初级工程师的薪资在7k-10k左右,中级工程师的薪资在10k-20k之间,高级工程师的薪资可以达到20k-30k甚至更高。尤其是柠檬班,它因为是主打的线上培训,学员可以更好地分配学习时间,能工作培训两手抓,并且最最关键的就是,线上培训由于没有相关的设备费用、场地费用,学费也能比线下场地培训少了近一半。总的来说,软件测试岗位IT行业中还是一项非常稳定和可靠的职业,且随着行业的发展和竞争的加剧,软件测试人员的薪资水平也在逐渐提升。那么在国内,软件测试培训哪里好呢?软件测试工资一般多少。

2023-02-21 10:46:29 308

转载 只改了五行代码接口吞吐量提升了10多倍

结果是好的,过程是曲折的。总的来说还是知识的欠缺,文章看起来还算顺畅,但都是事后诸葛亮,不对,应该是时候臭皮匠。基本都是边查资料边分析边操作,前后花费了4天时间,尝试了很多。Mysql : Buffer Pool 、Change Buffer 、Redo Log 大小、双一配置...代码 : 异步执行,线程池参数调整,tomcat 配置,Druid连接池配置...JVM : 内存大小,分配,垃圾收集器都想换...总归一通瞎搞,能想到的都试试。

2023-02-14 17:23:53 68

转载 select for update加了行锁还是表锁?

最近在开发需求的时候,用到了select......for update。在代码评审的时候,一位同事说,唯一索引+一个非索引字段,是否可能会锁全表呢?本文田螺哥将通过9个实验操作的例子,给大家验证select......for update到底加了什么锁,是表锁还是行锁。以下是本文的提纲哈:因为加锁是跟数据库的隔离级别息息相关的。而常用的数据库隔离级别也就RC(读已提交)和RR(可重复读),所以本文分别根据RC(读已提交) 和 RR(可重复读)隔离级别展开讲述。

2023-02-07 17:34:26 116

转载 CompletableFuture实现异步编排

为什么需要异步执行?场景:电商系统中获取一个完整的商品信息可能分为以下几步:①获取商品基本信息 ②获取商品图片信息 ③获取商品促销活动信息 ④获取商品各种类的基本信息等操作,如果使用串行方式去执行这些操作,假设每个操作执行1s,那么用户看到完整的商品详情就需要4s的时间,如果使用并行方式执行这些操作,可能只需要1s就可以完成。所以这就是异步执行的好处。JDK5的Future接口Future接口用于代表异步计算的结果。

2023-02-01 17:14:42 75

转载 加速开发流程的 Dockerfile 最佳实践

Docker 构建器将每个步骤的结果作为镜像层进行缓存的同时,缓存可能会无效,从而导致使缓存无效的步骤以及所有后续步骤都需要重新运行,并重新生成相应的层。通过使用 --target 标记构建特定的开发阶段的镜像,我们可以继续将容器用于我们的开发流程。我们的生产镜像只是一个 nginx 镜像,其中在前面的步骤中构建的文件被放置在了对应的位置。在我们这里的示例,我们可以指定我们的开发和生产镜像使用 alpine 版本。正如我们前面说的,使用特定的标签的构建步骤有助于使镜像的生成的唯一性。)构建完全相同的镜像。

2023-01-16 17:18:08 129

转载 真的看不下去了!!!字节的table组件写成啥了!

先不说别的,上两个arco design table的bug。本来是写react table组件,然后看源码学习思路,结果看的我真的很想吐槽。(其他组件我在学习源码上受益匪浅,尤其是工程化arco-cli那部分,我自己尝试写的轮子也是受到很多启发,这个吐槽并不是真的有恶意,我对arco和腾讯的tdeisgn是有期待的,因为ant一家独大太久了,很期待新鲜的血液)如果arco deisgn的团队看到这篇文章,请一定让写table的同学看一下!!!

2023-01-11 16:06:40 546

原创 有了这些软件测试面试话术,offer想不拿到都难

根据我以前的工作和学习经验,我认为做好工作首先要有一个良好的沟通,只有沟通无障碍了,才会有好的协作,才会有更好的效率。我觉得我的性格比较适合做测试工作,细心的我做测试是有一定优势的,而且我有很好的沟通、协调能力,当我们测试和开发人员发生不一致的见解时,容易沟通,问题更容易解决。回答:首先,仔细分析需求,阅读需求文档,前期多和SE沟通,吃透需求,站到用户的角度多考虑一些场景,保证用例的覆盖度;接下来跟着我的脚步一起来看看吧!我是XXX,今天来面试贵公司的软件测试工程师岗位,接下来,我介绍一下我自己。

2023-01-10 09:53:30 403

转载 Google Aviator——轻量级 Java 表达式引擎实战

Drools(JBoss Rules )是一个开源业务规则引擎,符合业内标准,速度快、效率高。业务分析师或审核人员可以利用它轻松查看业务规则,从而检验是否已编码的规则执行了所需的业务规则。

2023-01-09 15:55:50 1226

转载 怎么做登陆(单点登陆)功能?

【代码】怎么做登陆(单点登陆)功能?

2023-01-05 16:34:24 235

转载 为啥count(*)会这么慢?

本没想着写这篇文章的,因为我觉得这个东西大多数有经验的开发遇到过,肯定也了解过相关的原因,但最近我看到有几个关注的技术公众号在推送相关的文章。实在令我吃惊!

2023-01-03 16:41:38 1246

转载 代码中被植入了恶意删除操作,太狠了!

在交接的代码中做手脚进行删库等操作,之前只是网上听说的段子,没想到上周还真遇到了,并且亲自参与帮忙解决。

2022-12-30 16:24:49 44

转载 5种高大上的yml文件读取方式,你知道吗?

在Spring中有一个类Environment,它可以被认为是当前应用程序正在运行的环境,它继承了PropertyResolver接口,因此可以作为一个属性解析器使用。先创建一个yml文件,属性如下:

2022-12-28 16:35:00 1912

转载 Spring Boot3.0升级,踩坑之旅,附解决方案(二)

项目中使用了 com.github.whvcse包的easy-captcha 验证码依赖,升级至Jdk17后,验证码接口报错:Cannot invoke "javax.script.ScriptEngine.eval(String)" because "engine" is null,错误原因很明显脚本引擎执行脚本语句报错,因为执行引擎为空。查询相关资料Jdk8自带的JavaScript引擎 nashorn 再升级到Jdk9后就被移除了,从而导致报错

2022-12-26 15:44:12 1117

转载 Spring事务失效场景

如果@Transactional 没有特别指定,Spring 只会在遇到运行时异常RuntimeException或者error时进行回滚,而IOException等检查异常不会影响回滚。

2022-12-22 17:02:05 108

转载 S循环中使用async、await的正确姿势

由于for循环并非函数,而async、await需要在函数中使用,因此需要在for循环外套一层function

2022-12-15 16:04:21 361

原创 初级软件测试面试会问什么 掌握好这两几个方法,还怕拿捏不住hr?

回答这个问题时一定要小心,就算在前一个工作受到再大的委屈,对公司有多少的怨言,都千万不要表现出来,尤其要避免对公司本身主管的批评,避免面试官的负面情绪及印象。初级软件测试工程师大多为新入门的小白,在经历面试时,往往也是最忐忑的一部分人,为此,我特为大家整理了一些初级软件测试面试会问的问题,帮助你们在面试时能够从容不迫的回答出hr的问题,拿下offer!面试前了解清楚公司的主营业务,面试岗位的技术需求,发展情况,回答时可以说说公司的情况,根据公司的需求谈行业趋势及技术发展,不能无边际的泛泛而谈。

2022-12-12 13:30:50 313

转载 MySQL关于Count你知道多少

InnoDB 是索引组织表,主键索引树的叶子节点是数据,而普通索引树的叶子节点是主键值。所以,普通索引树比主键索引树小很多。对于 count(*) 这样的操作,遍历哪个索引树得到的结果逻辑上都是一样的。因此,MySQL 优化器会找到最小的那棵树来遍历。在保证逻辑正确的前提下,尽量减少扫描的数据量,是数据库系统设计的通用法则之一。

2022-12-08 15:47:38 238

转载 你知道 @Async 是怎么让方法异步执行的吗?

@Async 是通过注解标记来开启方法的异步执行的;对于注解的底层实现,除了 java 原生提供那种依赖编译期植入的之外,其他的基本都差不多,即运行时通过反射等方式拦截到打了注解的类或者方法,然后执行时进行横切拦截;另外这里还有一个点就是方法异步执行,所以对于 @Async 的剖析,就一定绕不开两个基本的知识点,就是代理和线程池。 在了解到这些之后,我们来拆解下 @Async 的基本原理。

2022-12-06 16:16:07 214

原创 软件测试面试技巧:如何提高面试通过率?这3点一定要做到

一定要根据岗位要求阐述,让面试官觉得你和公司的要求匹配) +最近做过的项目+结束语(以上是我目前的情况,面试官您还有什么想了解的吗?总之,面试多了之后就会发现,面试的问题都大同小异,如果刚开始比较紧张或者由于其他的原因取得的结果不是很理想,不妨做好复盘,面试时录个音,总结一下自己回答得不是很好的问题,并进行精进,好事多磨,总会有合适的工作等着你。对于想要进入到软件测试岗的新手人员来说,面试这一关是非常重要的,它直接关系着你的去留,也关系后续的期待遇问题,那么,有没有什么技巧可以帮忙提高面试通过率呢?

2022-11-30 09:51:46 348

转载 IOC 怎么逻辑回答

面试的时候如果这样回答这个问题 会感觉很干吧 也体现不出来你的能力 需要更有逻辑性的回答Ioc全称inversion of control,即控制反转,指将对象的创建、销毁等的控制权交由Spring框架的Ioc容器进行管理,以往的JavaEE程序设计的对象创建时通过new来完成的,需要我们主动去创建。而Ioc就是一个大工厂,现在不需要我们手动去new创建一个对象,需要时可以直接通过反射的机制来注入对象,同时也不需要我们主动去销毁对象,Spring框架帮我们进行了统一的管理。

2022-11-30 09:47:48 45

空空如也

空空如也

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

TA关注的人

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