-
99%的程序员都在用Lombok,原理竟然这么简单?我也手撸了一个!|
所属栏目:[大数据] 日期:2021-05-21 热度:175
罗曼罗兰说过:世界上只有一种英雄主义,就是看清生活的真相之后依然热爱生活。 对于 Lombok 我相信大部分人都不陌生,但对于它的实现原理以及缺点却鲜为人知,而本文将会从 Lombok 的原理出发,手撸一个简易版的 Lombok,让你理解这个热门技术背后的执行原[详细]
-
面试突击 | Redis 如何从海量数据中查询出某一个 Key?附视频
所属栏目:[大数据] 日期:2021-05-21 热度:51
1 考察知识点 本题考察的知识点有以下几个: Keys 和 Scan 的区别 Keys 查询的缺点 Scan 如何使用? Scan 查询的特点 2 解答思路 Keys 查询存在的问题 Scan 的使用 Scan 的特点 3 Keys 使用相关 1)Keys 用法如下 2)Keys 存在的问题 此命令没有分页功能,我[详细]
-
用了自定义Banner后,SpringBoot瞬间变的高大上了...
所属栏目:[大数据] 日期:2021-05-21 热度:53
Spring?Boot?在启动的时候,我们或许想要把自己公司的?logo,或者是项目的?logo?放上去,我们可以试试本文的这些方法,可以让你快速制作一些?Spring?Boot?项目启动时的彩蛋,以提高项目的辨识度,或者是纯碎为了给枯燥的生活平添一些乐趣,那么本文这些内容[详细]
-
RocketMQ 可视化环境搭建和基础代码使用
所属栏目:[大数据] 日期:2021-05-21 热度:158
RocketMQ 是一款分布式消息中间件,最初是由阿里巴巴消息中间件团队研发并大规模应用于生产系统,满足线上海量消息堆积的需求, 在 2016 年底捐赠给 Apache 开源基金会成为孵化项目,经过不到一年时间正式成为了 Apache 顶级项目。 早期阿里曾经基于 ActiveM[详细]
-
这样终止线程,竟然会导致服务宕机?
所属栏目:[大数据] 日期:2021-05-21 热度:99
在开始之前,我们先来看以下代码会有什么问题? public class ThreadStopExample { public static void main(String[] args) throws InterruptedException { Thread t1 = new Thread(() - { try { System.out.println("子线程开始执行"); // 模拟业务处理 Th[详细]
-
史上最全的延迟任务实现方式汇总!附代码(强烈推荐)
所属栏目:[大数据] 日期:2021-05-21 热度:63
这篇文章的诞生要感谢一位读者,是他让这篇 优秀的文章 有了和大家见面的机会,重点是 优秀文章 ,哈哈。 事情的经过是这样的... 不用谢我,送人玫瑰,手有余香。 相信接下来的内容一定不会让你失望,因为它将是目前市面上最好的关于“延迟任务”的文章 ,这[详细]
-
Redis 中的过期元素是如何被处理的?视频+图文版给你答案——面
所属栏目:[大数据] 日期:2021-05-21 热度:170
本文以面试问题「Redis 中的过期元素是如何被处理的?」为切入点,用视频加图文的方式和大家聊聊 Redis 过期元素被处理的相关知识点。 涉及的知识点 过期删除策略有哪些? 这些过期策略有哪些优缺点? Redis 使用的是什么过期策略? Redis 是如何优化和执行[详细]
-
《Java面试全解析》505道面试题详解
所属栏目:[大数据] 日期:2021-05-21 热度:95
《Java面试全解析》是我在 GitChat 发布的一门电子书,全书总共有 15 万字和 505 道 Java 面试题解析,目前来说应该是最实用和最全的 Java 面试题解析了。 我本人是 2009 年参加编程工作的,一路上在技术公司摸爬滚打,前几年一直在上海,待过的公司有 360[详细]
-
限流的6大狠招,附详细代码和评测结果
所属栏目:[大数据] 日期:2021-05-21 热度:175
为了上班方便,去年我把自己在北郊的房子租出去了,搬到了南郊,这样离我上班的地方就近了,它为我节约了很多的时间成本,我可以用它来做很多有意义的事,最起码不会因为堵车而闹心了,幸福感直线上升。 但即使这样,生活也有其他的烦恼。南郊的居住密度比较[详细]
-
为什么建议你使用枚举?
所属栏目:[大数据] 日期:2021-05-21 热度:66
枚举是 JDK 1.5 新增的数据类型,使用枚举我们可以很好的描述一些特定的业务场景,比如一年中的春、夏、秋、冬,还有每周的周一到周天,还有各种颜色,以及可以用它来描述一些状态信息,比如错误码等。 枚举类型不止存在在 Java 语言中,在其它语言中也都能[详细]
-
Redis持久化的几种方式——深入解析RDB
所属栏目:[大数据] 日期:2021-05-21 热度:178
Redis?的读写都是在内存中,所以它的性能较高,但在内存中的数据会随着服务器的重启而丢失,为了保证数据不丢失,我们需要将内存中的数据存储到磁盘,以便 Redis 重启时能够从磁盘中恢复原有的数据,而整个过程就叫做 Redis 持久化。 Redis 持久化也是 Redis[详细]
-
Redis 6.0 正式版终于发布了!除了多线程还有什么新功能?
所属栏目:[大数据] 日期:2021-05-21 热度:95
Redis 6.0.1 于 2020 年 5 月 2 日正式发布了,如 Redis 作者 antirez 所说,这是迄今为止最“企业”化的版本,也是有史以来改动最大的一个 Redis 版本,同时也是参与开发人数最多的一个版本。 所以在使用此版本之前,建议各位开发者先进行深入的测试再考虑[详细]
-
String性能提升10倍的几个方法!(源码+原理分析)
所属栏目:[大数据] 日期:2021-05-21 热度:141
String 类型是我们使用最频繁的数据类型,没有之一。那么提高 String 的运行效率,无疑是提升程序性能的最佳手段。 我们本文将从 String 的源码入手,一步步带你实现字符串优化的小目标。 不但教你如何有效的使用字符串,还为你揭晓这背后的深层次原因 。 本[详细]
-
Redis中的键值过期操作
所属栏目:[大数据] 日期:2021-05-21 热度:147
1.过期设置 Redis 中设置过期时间主要通过以下四种方式: expire key seconds:设置 key 在 n 秒后过期; pexpire key milliseconds:设置 key 在 n 毫秒后过期; expireat key timestamp:设置 key 在某个时间戳(精确到秒)之后过期; pexpireat key milli[详细]
-
《吐血整理》Redis 性能优化的 13 条军规!史上最全
所属栏目:[大数据] 日期:2021-05-21 热度:96
Redis 是基于单线程模型实现的,也就是 Redis 是使用一个线程来处理所有的客户端请求的,尽管 Redis 使用了非阻塞式 IO,并且对各种命令都做了优化(大部分命令操作时间复杂度都是 O(1)),但由于 Redis 是单线程执行的特点,因此它对性能的要求更加苛刻,本[详细]
-
Spring Boot(十四)RabbitMQ延迟队列
所属栏目:[大数据] 日期:2021-05-21 热度:72
一、前言 延迟队列的使用场景:1.未按时支付的订单,30分钟过期之后取消订单;2.给活跃度比较低的用户间隔N天之后推送消息,提高活跃度;3.过1分钟给新注册会员的用户,发送注册邮件等。 实现延迟队列的方式有两种: 通过消息过期后进入死信交换器,再由交换[详细]
-
Java提高班(四)面试必备—你不知道的数据集合
所属栏目:[大数据] 日期:2021-05-21 热度:192
导读:Map竟然不属于Java集合框架的子集?队列也和List一样属于集合的三大子集之一?更有队列的正确使用姿势,一起来看吧! Java中的集合通常指的是Collection下的三个集合框架List、Set、Queue和Map集合,Map并不属于Collection的子集,而是和它平行的顶级[详细]
-
Spring Boot(十一)Redis集成从Docker安装到分布式Session共享
所属栏目:[大数据] 日期:2021-05-21 热度:177
一、简介 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API,Redis也是技术领域使用最为广泛的存储中间件,它是「Remote Dictionary Service」首字母缩写,也就是「远程字典服务」。 Re[详细]
-
解决SpringBoot多模块发布时99%的问题?SpringBoot发布的8个原则
所属栏目:[大数据] 日期:2021-05-21 热度:77
如果使用 SpringBoot 多模块发布到外部 Tomcat,可能会遇到各种各样的问题。本文归纳了以下 8 个原则和发布时经常出现的 4 个问题的解决方案,掌握了这些原则和解决方案,几乎可以解决绝大数 SpringBoot 发布问题。 SpringBoot 多模块发布的 8 大原则 1 在发[详细]
-
Java提高班(六)反射和动态代理(JDK Proxy和Cglib)
所属栏目:[大数据] 日期:2021-05-21 热度:77
反射和动态代理放有一定的相关性,但单纯的说动态代理是由反射机制实现的,其实是不够全面不准确的,动态代理是一种功能行为,而它的实现方法有很多。要怎么理解以上这句话,请看下文。 一、反射 反射机制是 Java 语言提供的一种基础功能,赋予程序在运行时[详细]
-
Java提高班(二)深入理解线程池ThreadPool
所属栏目:[大数据] 日期:2021-05-21 热度:139
本文你将获得以下信息: 线程池源码解读 线程池执行流程分析 带返回值的线程池实现 延迟线程池实现 为了方便读者理解,本文会由浅入深,先从线程池的使用开始再延伸到源码解读和源码分析等高级内容,读者可根据自己的情况自主选择阅读顺序和需要了解的章节。[详细]
-
Spring Boot(十二)单元测试JUnit
所属栏目:[大数据] 日期:2021-05-21 热度:147
一、介绍 JUnit是一款优秀的开源Java单元测试框架,也是目前使用率最高最流行的测试框架,开发工具Eclipse和IDEA对JUnit都有很好的支持,JUnit主要用于白盒测试和回归测试。 白盒测试:把测试对象看作一个打开的盒子,程序内部的逻辑结构和其他信息对测试人[详细]
-
Spring Boot(九)Swagger2自动生成接口文档和Mock模拟数据
所属栏目:[大数据] 日期:2021-05-21 热度:57
一、简介 在当下这个前后端分离的技术趋势下,前端工程师过度依赖后端工程师的接口和数据,给开发带来了两大问题: 问题一、后端接口查看难:要怎么调用?参数怎么传递?有几个参数?参数都代表什么含义? 问题二、返回数据操作难:数据返回不对或者不够怎么[详细]
-
Spring Boot(十)Logback和Log4j2集成与日志发展史
所属栏目:[大数据] 日期:2021-05-21 热度:168
一、简介 Java知名的日志有很多,比如:JUL、Log4j、JCL、SLF4J、Logback、Log4j2,那么这些日志框架之间有着怎样的关系?诞生的原因又是解决什么问题?下面一起来看。 1.1 JUL Java有自己的日志框架JUL(Java Util Logging)在java.util.logging下,因为对[详细]
-
Java提高班(三)并发中的线程同步与锁
所属栏目:[大数据] 日期:2021-05-21 热度:95
乐观锁、悲观锁、公平锁、自旋锁、偏向锁、轻量级锁、重量级锁、锁膨胀...难理解?不存的!来,话不多说,带你飙车。 上一篇介绍了线程池的使用,在享受线程池带给我们的性能优势之外,似乎也带来了另一个问题:线程安全的问题。 那什么是线程的安全问题呢?[详细]