自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java 拟引入全新语法:再见空指针!

ava 语言在处理null引用方面一直让开发者头疼。尽管许多开发者在编码时假设某些变量永远不会是null,但在现有的 Java 语法中却无法明确表达这一意图,导致潜在的空指针异常(NullPointerException)无处不在。为了解决这一痛点,Java 正在引入一项新的预览特性——Null-Restricted 和 Nullable 类型。[1]这项特性旨在让开发者能够在类型定义中明确指出该类型是否允许null值,从而在编译时和运行时提供更强的类型安全和检测机制。Foo!

2024-08-22 14:09:14 344

原创 MySQL用limit为什么会影响性能?

MySQL的LIMIT看上去是个很简单的东西,用它可以限制查询返回的记录数,比如SELECT * FROM orders LIMIT 10,乍一看挺好——一次查10条数据,结果集小,速度应该快吧?因为要排序,你让MySQL先从数据库中挑出符合条件的所有数据,然后再按你指定的顺序排序,再返回指定数量的记录。说实话,这里有几个不错的技巧,学会了以后,MySQL对你来说就是战场,而你则是指挥官。不过,通过优化索引、使用覆盖索引、分页优化、避免不必要的排序,以及在排序中使用堆排序,我们可以大大改善这些性能瓶颈。

2024-08-22 14:08:19 772

原创 为什么Java中 “1000==1000” 为false,而 “100==100” 为true

这就是它有趣的地方了。如果你看去看 Integer.java 类,你会发现有一个内部私有类,IntegerCache.java,它缓存了从-128到127之间的所有的整数对象。基本知识:我们知道,如果两个引用指向同一个对象,用==表示它们是相等的。如果两个引用指向不同的对象,用==表示它们是不相等的,即使它们的内容相同。合乎逻辑的理由是,在此范围内的“小”整数使用率比大整数要高,因此,使用相同的底层对象是有价值的,可以减少潜在的内存占用。所以事情就成了,所有的小整数在内部缓存,然后当我们声明类似。

2024-08-21 09:17:49 253

原创 10 个 Java Stream 顶级技巧,大量简化代码

Java Stream API对于 Java 开发人员来说就像一把瑞士军刀 — 它用途广泛、结构紧凑,并且可以轻松处理各种任务。它为开发人员提供了一种函数式和声明式的方式来表达复杂的数据转换和操作,使代码更加简洁和富有表现力。但能力越大,责任越大,有效地使用Stream API需要对最佳实践和常见陷阱有深入的了解。今天,我们将探讨使用Java Stream API的一些最佳实践,并展示如何释放这个神奇工具的全部潜力。

2024-08-21 09:15:45 318

原创 高性能、无侵入的 Java 性能监控神器

随着所在公司的发展,应用服务的规模不断扩大,原有的垂直应用架构已无法满足产品的发展,几十个工程师在一个项目里并行开发不同的功能,开发效率不断降低。无法知道每个服务的运行情况,例如,某一台服务它目前的 QPS 是多少?它的平均延迟是多少,99% 的延迟是多少,99.9% 的延迟又是多少?如何评估服务的容量,随着服务的调用量越来越大,这个服务需要多少机器来支撑?采用内存复用的方式,整个生命周期只产生极少的临时对象,不影响应用程序的GC。当服务出现抖动时,如何判断是 DB、Cache 还是下游服务引起的?

2024-08-20 09:30:32 308

原创 SpringCloud远程调用为啥要采用HTTP,而不是RPC?

1. 首先SpringCloud开启Web服务依赖于内部封装的Tomcat容器,而今信息飞速发展,适应大流量的微服务,采用Tomcat处理HTTP请求,开发者编写Json作为资源传输,服务器做出相应的响应,可以更加的灵活处理业务数据,而HTTP协议是跨平台的,符合微服务B/C数据交互的方式,可以的一套服务器对应移动H5、App、小程序提供服务。灵活性方面:HTTP更灵活,不需要关系实现的细节,可以跨平台,跨语言。HTTP方式更加灵活,没有规定API和语言,跨语言,跨平台。首先,两者十分相似,有请求有响应。

2024-08-20 09:27:01 817

原创 SpringBoot 整合 Excel 轻松实现数据自由导入导出

在实际的业务系统开发过程中,操作 Excel 实现数据的导入导出基本上是个非常常见的需求。之前,我们有介绍一款非常好用的工具:EasyPoi,有读者提出在数据量大的情况下,EasyPoi 会占用内存大,性能不够好,严重的时候,还会出现内存异常的现象。今天我给大家推荐一款性能更好的 Excel 导入导出工具:EasyExcel,希望对大家有所帮助!

2024-08-19 09:30:15 654

原创 ISBN书号API接口

示例:https://data.isbn.work/openApi/book/page?appKey=ae1718d4587744b0b79f940fbef69e77&bookName=我们¤t=1。

2024-08-19 09:28:24 1285

原创 追踪团贷网第1968天:重磅!派生科技的股权准备拍卖!合计8.51亿

340亿左右总待收,100亿左右已经发还给出借人,125亿真标坏账,还差了115亿左右。换句说,如果小唐当初把这些股票在高位全部套现,然后再把坏账催收得好点的话,搞不好。派生科技的股票合计分成了62份,合计有1.87亿股,起拍价合计约8.51亿。派生科技的股价,在2019年3月28日出事前,大概已经涨到了52元/股。小唐被抓后,股价一路下跌,跌到现在只剩下4.5元/股,缩水超过11倍。这周又有重大进展,派生科技的股权与股票,终于要开始拍卖了。这还是查出来的,没查出来,究竟还有多少,无从得知。

2024-08-17 10:21:48 376

原创 ISBN书号API接口

快速查询ISBN书号基础信息

2024-08-17 10:06:19 461

原创 线程池中线程异常后,销毁还是复用?

提交到线程池并在执行过程中抛出异常时,如果这个异常没有在任务内被捕获,那么该异常会导致当前线程终止,并且异常会被打印到控制台或日志文件中。线程池会检测到这种线程终止,并创建一个新线程来替换它,从而保持配置的线程数不变。提交的任务,如果在任务执行中发生异常,这个异常不会直接打印出来。相反,异常会被封装在由。在这种情况下,线程不会因为异常而终止,它会继续存在于线程池中,准备执行后续的任务。提供更灵活的错误处理机制,因为它允许调用者决定如何处理异常,而。时,未捕获异常导致线程终止,线程池创建新线程替代;

2024-06-27 15:19:22 242

原创 面试官:为什么 Redis 不立刻删除已经过期的数据?

Redis 给缓存数据设置过期时间有什么用?Redis 是如何判断数据是否过期的呢?Redis 过期 key 删除策略了解么?大量 key 集中过期怎么办?

2024-06-27 15:18:05 927

原创 Spring Boot 性能太差?试试这几招

默认 Tomcat 容器改为 Undertow(Jboss 下的服务器,Tomcat 吞吐量 5000,Undertow 吞吐量 8000)线程池中执行,而这个线程池中的所有线程都是 Daemon(守护)线程,所以,当主线程结束时,这些线程无论执行完毕都会退出系统。实例就可以作为这次调用的契约,在将来任何场合,用于获得最终的计算结果。方法中,它会在一个新线程中,执行传入的参数。方法,这个方法可能是比较慢的,但这并不影响。这两个方法如果在不指定线程池的情况下,都是在。在该示例中,启动一个线程,此时。

2024-06-25 16:05:46 363

原创 一张长图透彻理解SpringBoot 启动原理,架构师必备知识,不为应付面试!

下图代码说明了,Spring在初始化全部 单例Bean以后,会执行 SmartInitializingSingleton 接口。SpringBoot 会在Spring完全启动完成后,才开启Http流量。应该在Spring启动完成后开启入口流量。Rpc和 MQ流量 也应该如此,所以建议大家 在 SmartLifecype 或者 ContextRefreshedEvent 等位置 注册服务,开启流量。

2024-06-25 16:04:58 985

原创 为什么一些团队反对使用Lombok?

Java,作为一款非常热门的编程语言,尽管它有着非常丰富的语言特性,完全面向对象编程,编程高度规范化,但是也有一个最受大家诟病的一个缺点:啰嗦,尤其是当你开发了很多年之后,你会明显的感受到,相比动态语言,java 定义变量之前,要先创建类,然后定义变量类型,每个类要写很多的等等方法。尤其是当一个实体类,高达几十个变量时,写完get、set方法之后,一个实体类的长度快接近一千行。为了避免写这些“罗嗦。

2024-06-24 16:31:56 845

原创 ISBN查询图书api接口

"bookDesc": "《超级漫画素描技法:头身比篇素描》中强调素描要在一开始的时候就做好决定。要把什么东西画成什么样子呢?“把这个东西画成这个样子。"bookName": "超级漫画素描技法.基础篇","author": "林晃,松本刚彦,森田和明","clcName": "素描、速写技法","format": "16开-胶版纸","press": "中国青年出版社","pressPlace": "北京","binding": "平装","pages": "416页",伽v 809137232。

2024-06-24 16:25:19 1253

原创 面试必备:10种分布式ID的生成方案

日常工作中,我们开发的系统、或者中间件,都是分布式部署的。比如你的订单数据库,做了分库分表,这时候,你需要一个唯一的ID来标记一条数据。这时候,就需要分布式ID。分布式ID是在分布式系统下使用的ID,用于在多个节点中生成全局唯一的标识符。

2024-06-24 16:24:20 992

原创 MySQL 中 Varchar(50) 和 varchar(500) 区别是什么?

其实sort_merge_passes对应的就是MySQL做归并排序的次数,也就是说,如果sort_merge_passes值比较大,说明sort_buffer和要排序的数据差距越大,我们可以通过增大sort_buffer_size或者让填入sort_buffer_size的键值对更小来缓解sort_merge_passes归并排序的次数。我发现86%的时花在数据传输上,接下来我们看状态部分,关注Created_tmp_files和sort_merge_passes。存储空间上是一样的,真的是这样吗?

2024-06-14 10:47:49 1340

原创 如何实现一个合格的分布式锁

在多线程的环境下,为了保证一个代码块在同一时间只能由一个线程访问,Java中我们一般可以使用语法和去保证,这实际上是本地锁的方式。而在如今分布式架构的热潮下,如何保证不同节点的线程同步执行呢?实际上,对于分布式场景,我们可以使用分布式锁,分布式锁是用于分布式环境下并发控制的一种机制,用于控制某个资源在同一时刻只能被一个应用所使用。综上所述,基于 Redis 节点实现分布式锁时,我们至少需要实现以下需求:加锁/解锁包括了读取锁变量、检查锁变量值和设置锁变量值三个操作,但需要以原子操作的方式完成;

2024-06-14 10:43:53 349

原创 如何设计一个秒杀系统?

如何从整体角度,去设计一个秒杀系统。秒杀系统主要有这几个特征:瞬时间的流量特别高。过了秒杀的时间,流量就会瞬时结束大批量用户同时请求极少数商品在秒杀时间前,可能会有很多请求过来。比如在11点抢票开始,10点59分你可能会提前去刷新页面请求。所以特意写篇文章给大家说说。

2024-06-12 11:05:42 977

原创 @Transactional 中使用线程锁导致了锁失效,震惊我一整年!

很多小伙伴使用Spring事务时,为了省事都喜欢使用。但是配合锁,会导致一些预期之外的问题!在此举例说明。

2024-06-12 10:24:27 279 1

原创 Spring Boot 分片上传、断点续传、大文件上传、秒传,应有尽有

分片上传,就是将所要上传的文件,按照一定的大小,将整个文件分隔成多个数据块(我们称之为Part)来进行分别上传,上传完之后再由服务端对所有上传的文件进行汇总整合成原始的文件。断点续传是在下载或上传时,将下载或上传任务(一个文件或一个压缩包)人为的划分为几个部分,每一个部分采用一个线程进行上传或下载,如果碰到网络故障,可以从已经上传或下载的部分开始继续上传或者下载未完成的部分,而没有必要从头开始上传或者下载。本文的断点续传主要是针对断点上传场景。

2024-06-11 09:27:09 1536

原创 ISBN查询图书api接口

"bookDesc": "《超级漫画素描技法:头身比篇素描》中强调素描要在一开始的时候就做好决定。而绘画中的素描草图,就是从最初决定的基点到最后完成作品必须要走的一条路。"bookName": "超级漫画素描技法.基础篇","author": "林晃,松本刚彦,森田和明","clcName": "素描、速写技法","format": "16开-胶版纸","press": "中国青年出版社","pressPlace": "北京","binding": "平装","pages": "416页",

2024-06-11 09:22:10 1290

原创 公司禁止在 SpringBoot 中使用 @Autowired 注解,为什么?

我们已经看到,基于字段的注入应该尽可能地避免,因为它有许多缺点,无论它看起来多么优雅。推荐的方法是使用基于构造函数和基于setter的依赖注入。对于必需的依赖,建议使用基于构造函数的注入,设置它们为不可变的,并防止它们为 null。对于可选的依赖项,建议使用基于 setter 的注入。

2024-06-11 09:17:58 1025

原创 还在用WebSocket实现实时消息推送?

消息中间件应用越来越广泛,不仅可以实现可靠的异步通信,还可以实现即时通讯,掌握一个消息中间件还是很有必要的。如果没有特殊业务需求,客户端或者前端直接使用 MQTT 对接消息中间件即可实现即时通讯,有特殊需求的时候也可以使用 SpringBoot 集成 MQTT 的方式来实现,总之消息中间件是实现即时通讯的一个好选择!

2024-05-30 20:59:47 1078

原创 把 Spring Boot 项目从 18.18M 瘦身到 0.18M,部署超级快

SpringBoot部署起来虽然简单,如果服务器部署在公司内网,速度还行,但是如果部署在公网(阿里云等云服务器上),部署起来实在头疼:编译出来的 Jar 包很大,如果工程引入了许多开源组件(SpringCloud等),那就更大了。这个时候如果想要对线上运行工程有一些微调,则非常痛苦。

2024-05-30 20:58:55 307

原创 循环增删 ArrayList ,小心有坑

因为它在循环第二次的时候,也remove成功了,但是第三次判断next的时候cursor的值为2导致不等于现在的size 1,所以执行了next方法,最重要的来了,之前remove的操作导致ArrayList的modCount值加1,然后Itr类中的expectedModCount保持不变,所以会抛出异常。因为它在remove元素1之后,它的size-1变成1,然后Itr内部的cursor变量由0变成1,此时1=1,循环结束,所以成功了。其实它只循环了一次,所以成功了。

2024-05-29 16:09:33 325

原创 SpringBoot的自动装配

Spring Boot 的自动装配(Auto-Configuration)是指 Spring Boot 会根据项目中添加的依赖和其他因素,自动配置你的 Spring 应用程序。这一特性使得开发者在创建 Spring 应用程序时,可以省去大量的手动配置工作,从而快速启动和运行应用程序。

2024-05-29 16:08:11 895

原创 Spring如何管理Bean的生命周期呢?

首先,你需要在Spring的配置文件(如XML配置文件或Java配置类)中定义Bean。这包括指定Bean的类名、作用域、初始化方法、销毁方法以及可能的依赖关系等。Spring容器会读取这些配置,并将Bean定义信息存储在其内部的数据结构中,通常是BeanDefinition对象。

2024-05-28 09:44:55 1202 1

原创 别再用 BeanUtils 了,这款 PO VO DTO 转换神器不香么?

关于lombok和mapstruct的版本兼容问题多说几句,maven插件要使用3.6.0版本以上、lombok使用1.16.16版本以上,另外编译的lombok mapstruct的插件不要忘了加上。介绍一个开源项目 mapstruct ,可以轻松优雅的进行转换,简化你的代码。实体类是开发过程少不了的,就算是用工具生成肯定也是要有的,需要手写的部分就是这个Mapper的接口,编译完成后会自动生成相应的实现类。mapper可以进行字段映射,改变字段类型,指定格式化的方式,包括一些日期的默认处理。

2024-05-28 09:44:02 149

原创 ISBN查询图书api接口

"bookDesc": "《超级漫画素描技法:头身比篇素描》中强调素描要在一开始的时候就做好决定。而绘画中的素描草图,就是从最初决定的基点到最后完成作品必须要走的一条路。"bookName": "超级漫画素描技法.基础篇","author": "林晃,松本刚彦,森田和明","clcName": "素描、速写技法","format": "16开-胶版纸","press": "中国青年出版社","pressPlace": "北京","binding": "平装","pages": "416页",

2024-05-27 08:50:11 1669

原创 Java如何根据历史数据预测下个月的数据?

现在在 AI 的大环境当中,有很多人解除到关于预测模型,而且现在的客户接触到了 AI 这块的内容之后,也不管现在的项目是什么样子的,就开始让我们开发去做关于预测的的相关内容,今天了不起就来带大家看看如何使用 Java 代码来做预测。

2024-05-27 08:48:38 605

原创 使用缓存,踩过的7个坑

缓存在我们日常工作中,经常会使用,但如果用不好坑也挺多的。这篇文章总结了我工作中使用缓存遇到过的7个坑,还是非常有参考价值得,希望对你会有所帮助。

2024-05-25 09:47:11 631

原创 居然还有人不知道如何在 IDEA 中生成 Maven 依赖关系图?

IDEA提供了查看依赖关系的方式,但是使用起来目前的IDE都还不是很方便,还只能是一个简单的辅助,拖动起来查看太麻烦。不过有IDEA插件可以更方便的做依赖关系冲突排查。

2024-05-25 09:42:45 402

原创 如何优雅的实现在线人数统计功能?

zadd命令有三个参数key:有序集合的名称。score1、score2 等:分数值,可以是整数值或双精度浮点数。member1、member2 等:要添加到有序集合的成员。

2024-05-25 09:41:54 288

原创 10个高级的 SQL 查询技巧

如果您注意到,CTE很有用,因为您可以将代码分解为较小的块,但它们也很有用,因为它允许您为每个CTE分配变量名称(即。递归CTE尤其有用,它涉及查询组织结构图,文件系统,网页之间的链接图等的分层数据,尤其有用。示例问题:给定下面的员工表,写出一个SQL查询,了解员工的工资,这些员工比其管理人员工资更多。例如,如果您有一个月列,并且您希望为每个月创建一个单个列,则可以使用语句追溯数据的情况。示例问题:给定天气表,写一个SQL查询,以查找与其上一个(昨天)日期相比的温度较高的所有日期的ID。

2024-05-24 09:11:47 814

原创 浅谈 Java 反射技术

反射 (Reflection) 是 Java 的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性。Oracle 官方对反射的解释是:简而言之,通过反射,我们可以在运行时获得程序或程序集中每一个类型的成员和成员的信息。程序中一般的对象的类型都是在编译期就确定下来的,而 Java 反射机制可以动态地创建对象并调用其属性,这样的对象的类型在编译期是未知的。所以我们可以通过反射机制直接创建对象,即使这个对象的类型在编译期是未知的。

2024-05-23 09:03:57 489

原创 为什么不推荐在Spring Boot中使用@Value加载配置

比如,同一个配置,可能背多个Service或者Controller使用,当我们再要修改它的时候,就会存在一个遗漏的风险。注解相信很多Spring Boot的开发者都已经有接触了,通过使用该注解,我们可以快速的把配置信息加载到Spring的Bean中。其他Service或者Controller要使用这些配置的时候,就通过注入。另外,在这里,其实还可以增加对配置的校验,主要在pom.xml中引入。这个注解可以说非常的好用!来分类和加载各种配置信息,比如,我要加载关于。这就轻松实现配置的校验了,是不是很方便呢?

2024-05-23 09:02:58 138

原创 Spring Boot中的 6 种API请求参数读取方式

使用Spring Boot开发API的时候,读取请求参数是服务端编码中最基本的一项操作,Spring Boot中也提供了多种机制来满足不同的API设计要求。接下来,就通过本文,为大家总结6种常用的请求参数读取方式。如果你发现自己知道的不到6种,那么赶紧来查漏补缺一下。如果你知道的不止6种,那么告诉大家,一起互相学习一下吧~

2024-05-23 09:02:10 490 1

原创 用了Stream,代码丑爆了!姿势不对,别喷!

stream和parallelStream的简单区分:stream是顺序流,由主线程按顺序对流执行操作,而parallelStream是并行流,内部以多线程并行执行的方式对流进行操作,但前提是流中的数据处理没有顺序要求。Java 8 是一个非常成功的版本,这个版本新增的Stream,配合同版本出现的 Lambda ,给我们操作集合(Collection)提供了极大的便利。Stream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行操作,比如:筛选、排序、聚合等。

2024-05-21 09:46:02 805

《中国图书馆图书分类法》(第五版)详表(中图分类号查询表)

《中国图书馆图书分类法》(第五版)详表(中图分类号查询表)

2024-06-07

ISBN图书基础数据资源12

图书基础数据,包含字段(ISBN、书名、作者、封面、中图法分类、价格、版次、页数、出版社、出版日期、装订、语言、字数、开本等等)

2024-04-25

ISBN图书基础数据资源11

图书基础数据,包含字段(ISBN、书名、作者、封面、中图法分类、价格、版次、页数、出版社、出版日期、装订、语言、字数、开本等等) ,

2024-04-25

ISBN图书基础数据资源10

图书基础数据,包含字段(ISBN、书名、作者、封面、中图法分类、价格、版次、页数、出版社、出版日期、装订、开本等等) 表格中含1w条图书数据

2023-07-20

ISBN图书基础数据资源9

图书基础数据,包含字段(ISBN、书名、作者、封面、中图法分类、价格、版次、页数、出版社、出版日期、装订、开本等等) 表格中含1w条图书数据

2023-07-20

ISBN图书基础数据资源8

图书基础数据,包含字段(ISBN、书名、作者、封面、中图法分类、价格、版次、页数、出版社、出版日期、装订、开本等等) 表格中含1w条图书数据

2023-07-20

ISBN图书基础数据资源7

图书基础数据,包含字段(ISBN、书名、作者、封面、中图法分类、价格、版次、页数、出版社、出版日期、装订、开本等等) 表格中含1w条图书数据

2023-07-20

ISBN图书基础数据资源6

图书基础数据,包含字段(ISBN、书名、作者、封面、中图法分类、价格、版次、页数、出版社、出版日期、装订、开本等等) 表格中含1w条图书数据

2023-07-20

ISBN图书基础数据资源5

图书基础数据,包含字段(ISBN、书名、作者、封面、中图法分类、价格、版次、页数、出版社、出版日期、装订、开本等等)

2023-07-20

ISBN图书基础数据资源4

图书基础数据,包含字段(ISBN、书名、作者、封面、中图法分类、价格、版次、页数、出版社、出版日期、装订、开本等等)

2023-07-20

ISBN图书基础数据资源3

图书基础数据,包含字段(ISBN、书名、作者、封面、中图法分类、价格、版次、页数、出版社、出版日期、装订、开本等等)

2023-07-20

ISBN图书基础数据资源2

图书基础数据,包含字段(ISBN、书名、作者、封面、中图法分类、价格、版次、页数、出版社、出版日期、装订、开本等等)

2023-07-20

ISBN图书基础数据资源1

图书基础数据,包含字段(ISBN、书名、作者、封面、中图法分类、价格、版次、页数、出版社、出版日期、装订、开本等等)

2023-07-20

空空如也

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

TA关注的人

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