Fork me on GitHub
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 27 下一页
摘要: 这篇文章的诞生要感谢一位读者,是他让这篇 优秀的文章 有了和大家见面的机会,重点是 优秀文章 ,哈哈。 事情的经过是这样的... 不用谢我,送人玫瑰,手有余香。 相信接下来的内容一定不会让你失望,因为它将是目前市面上最好的关于“延迟任务”的文章 ,这也一直是我写作追求的目标,让我的每一篇文章都比市面 阅读全文
posted @ 2020-04-14 10:52 磊哥|www.javacn.site 阅读(9844) 评论(4) 推荐(9) 编辑
摘要: IDEA 2020.1 经过了漫长的打磨终于发布正式版了,而这次的版本不止直接支持 Java 14,还带来了两个重量级的功能,官方中文版支持和 JDK 直接下载。 在之前的开发中,当我们需要下载 JDK 时,通常的步骤是这样的:首先去 Oracle 的官网,查到相关的版本下载地址,然后输入用户输入密 阅读全文
posted @ 2020-04-12 09:53 磊哥|www.javacn.site 阅读(35930) 评论(16) 推荐(8) 编辑
摘要: 为什么要阅读源码?这是一个有趣的问题,类似的问题还有,为什么要看书?为什么要爬山? 这也是一个哲学问题,我想每个人都有不同的答案,下面我是对阅读源码好处的一些思考。 (PS:也欢迎你在评论区留言补充) 阅读源码的好处 1.知其然知其所以然 这是一句 IT 人都很熟悉的话,在开源软件越来越多,并且升级 阅读全文
posted @ 2020-04-09 21:51 磊哥|www.javacn.site 阅读(5381) 评论(0) 推荐(0) 编辑
摘要: 在开始之前,我们先来看以下代码会有什么问题? 或许你已经发现了,上面这段代码使用了 来终止线程,在 Java 程序中是不允许这样终止线程的。什么?你问为什么不能这样? 首先来说 IDE 都会鄙视你了,它会阻止你使用 ! 什么?你不信。那么来看这张图: 好吧,那为什么不能这样用呢?总得给我一个敷衍的理 阅读全文
posted @ 2020-04-06 21:12 磊哥|www.javacn.site 阅读(819) 评论(0) 推荐(5) 编辑
摘要: 罗曼罗兰说过:世界上只有一种英雄主义,就是看清生活的真相之后依然热爱生活。 对于 Lombok 我相信大部分人都不陌生,但对于它的实现原理以及缺点却鲜为人知,而本文将会从 Lombok 的原理出发,手撸一个简易版的 Lombok,让你理解这个热门技术背后的执行原理,以及它的优缺点分析。 简介 在讲原 阅读全文
posted @ 2020-03-30 12:21 磊哥|www.javacn.site 阅读(8149) 评论(6) 推荐(4) 编辑
摘要: 前面我们讲了 "《Redis 性能优化的 13 条军规!》" ,其中最重要的一条就是使用 Redis 的集群功能,那么本文我们就来看看,如何用 1s 钟的时间来创建一个 Redis 集群。 Redis Cluster 是 Redis 3.0 版本推出的 Redis 集群方案,它将数据分布在不同的服务 阅读全文
posted @ 2020-03-27 17:14 磊哥|www.javacn.site 阅读(598) 评论(0) 推荐(0) 编辑
摘要: Redis 是基于单线程模型实现的,也就是 Redis 是使用一个线程来处理所有的客户端请求的,尽管 Redis 使用了非阻塞式 IO,并且对各种命令都做了优化(大部分命令操作时间复杂度都是 O(1)),但由于 Redis 是单线程执行的特点,因此它对性能的要求更加苛刻,本文我们将通过一些优化手段, 阅读全文
posted @ 2020-03-27 17:12 磊哥|www.javacn.site 阅读(751) 评论(0) 推荐(1) 编辑
摘要: Java 14 在 2020.3.17 日发布正式版了,但现在很多公司还在使用 Java 7 或 Java 8,每当看到 Java 又发布新版本心里就慌得一匹。不过此版本并不是 LTS (长期支持版) 版本,所以不要慌,我们先来了解一下好了,等 LTS 版本发布后再用也不迟。 版本说明 现在 Jav 阅读全文
posted @ 2020-03-22 17:57 磊哥|www.javacn.site 阅读(1419) 评论(0) 推荐(0) 编辑
摘要: 因为我说:volatile 是轻量级的 synchronized,面试官让我回去等通知! volatile 是并发编程的重要组成部分,也是面试常被问到的问题之一。不要向小强那样,因为一句:volatile 是轻量级的 synchronized,而与期望已久的大厂失之交臂。 volatile 有两大特 阅读全文
posted @ 2020-03-18 09:03 磊哥|www.javacn.site 阅读(1228) 评论(2) 推荐(4) 编辑
摘要: 面试问题 Redis 如何实现查询附近的人? 涉及知识点 1. Redis 中如何操作位置信息? 2. GEO 底层是如何实现的? 3. 如何在程序实现查询附近的人? 4. 在实际使用中需要注意哪些问题? 视频答案 视频地址:https://www.bilibili.com/video/av8936 阅读全文
posted @ 2020-03-09 13:48 磊哥|www.javacn.site 阅读(896) 评论(3) 推荐(0) 编辑
摘要: 本文以面试问题「Redis 中的过期元素是如何被处理的?」为切入点,用视频加图文的方式和大家聊聊 Redis 过期元素被处理的相关知识点。 涉及的知识点 1. 过期删除策略有哪些? 2. 这些过期策略有哪些优缺点? 3. Redis 使用的是什么过期策略? 4. Redis 是如何优化和执行过期策略 阅读全文
posted @ 2020-03-03 11:53 磊哥|www.javacn.site 阅读(654) 评论(1) 推荐(2) 编辑
摘要: 1 考察知识点 本题考察的知识点有以下几个: 1. Keys 和 Scan 的区别 2. Keys 查询的缺点 3. Scan 如何使用? 4. Scan 查询的特点 2 解答思路 1. Keys 查询存在的问题 2. Scan 的使用 3. Scan 的特点 3 Keys 使用相关 1)Keys 阅读全文
posted @ 2020-02-27 19:05 磊哥|www.javacn.site 阅读(1844) 评论(0) 推荐(3) 编辑
摘要: Redis 的读写都是在内存中,所以它的性能较高,但在内存中的数据会随着服务器的重启而丢失,为了保证数据不丢失,我们需要将内存中的数据存储到磁盘,以便 Redis 重启时能够从磁盘中恢复原有的数据,而整个过程就叫做 Redis 持久化。 Redis 持久化也是 Redis 和 Memcached 的 阅读全文
posted @ 2019-11-17 22:45 磊哥|www.javacn.site 阅读(3064) 评论(2) 推荐(2) 编辑
摘要: 1.过期设置 Redis 中设置过期时间主要通过以下四种方式: expire key seconds:设置 key 在 n 秒后过期; pexpire key milliseconds:设置 key 在 n 毫秒后过期; expireat key timestamp:设置 key 在某个时间戳(精确 阅读全文
posted @ 2019-11-12 19:08 磊哥|www.javacn.site 阅读(3538) 评论(1) 推荐(0) 编辑
摘要: 作为关系型数据库中一项非常重要的基础功能——事务,在 Redis 中是如何处理并使用的? 1.前言 事务指的是提供一种将多个命令打包,一次性按顺序地执行的机制,并且保证服务器只有在执行完事务中的所有命令后,才会继续处理此客户端的其他命令。 事务也是其他关系型数据库,所必备的一项非常重要的能力。以支付 阅读全文
posted @ 2019-10-28 21:00 磊哥|www.javacn.site 阅读(1533) 评论(0) 推荐(0) 编辑
摘要: 《Java面试全解析》是我在 GitChat 发布的一门电子书,全书总共有 15 万字和 505 道 Java 面试题解析,目前来说应该是最实用和最全的 Java 面试题解析了。 我本人是 2009 年参加编程工作的,一路上在技术公司摸爬滚打,前几年一直在上海,待过的公司有 360 和游久游戏,因为 阅读全文
posted @ 2019-10-23 20:00 磊哥|www.javacn.site 阅读(2178) 评论(0) 推荐(1) 编辑
摘要: 在开始学习深克隆和浅克隆之前,我们先来看下面代码,有什么问题? 程序执行结果: 可以看出,如果使用等号复制时,对于值类型来说,彼此之间的修改操作是相对独立的,而对于引用类型来说,因为复制的是引用对象的内存地址,所以修改其中一个值,另一个值也会跟着变化,原理如下图所示: 因此为了防止这种问题的发生,就 阅读全文
posted @ 2019-09-18 09:31 磊哥|www.javacn.site 阅读(874) 评论(0) 推荐(0) 编辑
摘要: RocketMQ 是一款分布式消息中间件,最初是由阿里巴巴消息中间件团队研发并大规模应用于生产系统,满足线上海量消息堆积的需求, 在 2016 年底捐赠给 Apache 开源基金会成为孵化项目,经过不到一年时间正式成为了 Apache 顶级项目。早期阿里曾经基于 ActiveMQ 研发消息系统, 随 阅读全文
posted @ 2019-07-03 19:20 磊哥|www.javacn.site 阅读(7619) 评论(3) 推荐(2) 编辑
摘要: 如果使用 SpringBoot 多模块发布到外部 Tomcat,可能会遇到各种各样的问题。本文归纳了以下 8 个原则和发布时经常出现的 4 个问题的解决方案,掌握了这些原则和解决方案,几乎可以解决绝大数 SpringBoot 发布问题。 SpringBoot 多模块发布的 8 大原则 1 在发布模块 阅读全文
posted @ 2019-06-20 15:45 磊哥|www.javacn.site 阅读(2482) 评论(0) 推荐(2) 编辑
摘要: JVM(Java 虚拟机)算是面试必问的问题的了,而但凡问 JVM 一定会问的第一个问题就是:讲一讲 JVM 的组成?那本文就注重讲一下 JVM 的组成。 首先来说 JVM 的组成分为,整体组成部分和运行时数据区组成部分,一般开发者关注的和面试官问的都是后者,但本文会详细讲解以上两个组成部分。 一、 阅读全文
posted @ 2019-04-10 09:01 磊哥|www.javacn.site 阅读(3569) 评论(0) 推荐(4) 编辑
摘要: 本文会使用排除法的手段,来讲解新生代的区域划分,从而让读者能够更清晰的理解分代回收器的原理,在开始之前我们先来整体认识一下分代收集器。 分代收集器会把内存空间分为:老生代和新生代两个区域,而新生代又会分为:Eden 区和两个 Survivor区(From Survivor、To Survivor), 阅读全文
posted @ 2019-02-22 09:25 磊哥|www.javacn.site 阅读(2361) 评论(0) 推荐(1) 编辑
摘要: 全文共 2195 个字,读完大约需要 8 分钟。 如果垃圾回收的算法属于内存回收的方法论的话,那本文讨论的垃圾回收器就属于内存回收的具体实现。 因为不同的厂商(IBM、Oracle),实现的垃圾回收器各不相同,而本文要讨论的是 Oracle 的 HotSpot 虚拟机所使用的垃圾回收器。 常用垃圾回 阅读全文
posted @ 2019-02-13 09:53 磊哥|www.javacn.site 阅读(1681) 评论(1) 推荐(2) 编辑
摘要: 全文共 1890 个字,读完大约需要 6 分钟。 上一篇我们讲了垃圾标记的一些实现细节和经典算法,而本文将系统的讲解一下垃圾回收的经典算法,和Hotspot虚拟机执行垃圾回收的一些实现细节,比如安全点和安全区域等。 因为各个平台的虚拟机操作内存的方法各不相同,且牵扯大量的程序实现细节,所以本文不会过 阅读全文
posted @ 2019-01-25 08:09 磊哥|www.javacn.site 阅读(1051) 评论(1) 推荐(2) 编辑
摘要: 好的文章是能把各个知识点,通过逻辑关系串连起来,让人豁然开朗的同时又记忆深刻。 导读:对象除了生死之外,还有其他状态吗?对象真正的死亡,难道只经历一次简单的判定?如何在垂死的边缘“拯救”一个将死对象?判断对象的生死存活都有那些算法?本文带你一起找到这些答案。 在正式开始之前,我们先来了解一下垃圾回收 阅读全文
posted @ 2019-01-21 09:29 磊哥|www.javacn.site 阅读(986) 评论(0) 推荐(1) 编辑
摘要: 实现效果图: 上图合成了2个人视频,中途有1个人先离开之后又重新加入了房间。 一、业务场景 业务场景是这样的:多个用户(2 4人)直播的视频,合成为一个视频,这期间要满足2个条件:首先,录制途中可能有一个或多个用户不定次数的离线、重进(网络差和人为操作)的情况;第二,要保证合成的视频和录制的效果是一 阅读全文
posted @ 2019-01-16 19:13 磊哥|www.javacn.site 阅读(1307) 评论(4) 推荐(3) 编辑
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 27 下一页