Fork me on GitHub
摘要:哈喽,亲爱的小伙伴们,技术学磊哥,进步没得说!欢迎来到新一期的性能解读系列,我是磊哥。 今天给大家带来的是关于阿里巴巴《Java开发手册》泰山版(最新)中关于集合初始化时的性能建议。 阿里巴巴《Java开发手册》第 1 章编程规范,第 6 节集合处理的第 17 条规定如下: 【推荐】集合初始化时,指 阅读全文
posted @ 2020-05-29 12:30 Java中文社群 阅读(338) 评论(0) 推荐(0) 编辑
摘要:生活中的尴尬无处不在,有时候你只是想简单的装一把,但某些“老同志”总是在不经意之间,给你无情的一脚,踹得你简直无法呼吸。 但谁让咱年轻呢?吃亏要趁早,前路会更好。 喝了这口温热的鸡汤之后,咱们来聊聊是怎么回事。 事情是这样的,在一个不大不小的项目中,小王写下了这段代码: 本来是用它来替代下面这段代码 阅读全文
posted @ 2020-05-22 15:48 Java中文社群 阅读(615) 评论(0) 推荐(1) 编辑
摘要:为了上班方便,去年我把自己在北郊的房子租出去了,搬到了南郊,这样离我上班的地方就近了,它为我节约了很多的时间成本,我可以用它来做很多有意义的事,最起码不会因为堵车而闹心了,幸福感直线上升。 但即使这样,生活也有其他的烦恼。南郊的居住密度比较大,因此停车就成了头痛的事,我租的是路两边的非固定车位,每次 阅读全文
posted @ 2020-05-18 09:57 Java中文社群 阅读(539) 评论(0) 推荐(3) 编辑
摘要:Redis 6.0.1 于 2020 年 5 月 2 日正式发布了,如 Redis 作者 antirez 所说,这是迄今为止最“企业”化的版本,也是有史以来改动最大的一个 Redis 版本,同时也是参与开发人数最多的一个版本。 所以在使用此版本之前,建议各位开发者先进行深入的测试再考虑投产,毕竟生产 阅读全文
posted @ 2020-05-03 13:23 Java中文社群 阅读(819) 评论(0) 推荐(0) 编辑
摘要:随着 JDK 1.8 Streams API 的发布,使得 HashMap 拥有了更多的遍历的方式,但应该选择那种遍历方式?反而成了一个问题。 本文 先从 HashMap 的遍历方法讲起,然后再从性能、原理以及安全性等方面,来分析 HashMap 各种遍历方式的优势与不足 ,本文主要内容如下图所示: 阅读全文
posted @ 2020-04-29 17:38 Java中文社群 阅读(120) 评论(0) 推荐(0) 编辑
摘要:String 类型是我们使用最频繁的数据类型,没有之一。那么提高 String 的运行效率,无疑是提升程序性能的最佳手段。 我们本文将从 String 的源码入手,一步步带你实现字符串优化的小目标。 不但教你如何有效的使用字符串,还为你揭晓这背后的深层次原因 。 本文涉及的知识点,如下图所示: 在看 阅读全文
posted @ 2020-04-29 17:37 Java中文社群 阅读(72) 评论(0) 推荐(0) 编辑
摘要:if else 是我们写代码时,使用频率最高的关键词之一,然而有时过多的 if else 会让我们感到脑壳疼,例如下面这个伪代码: 是不是很奔溃?虽然他是伪代码,并且看起来也很夸张,但在现实中,当我们无数次 review 别人代码时,都会发现类似的场景,那么我们本文就来详细聊聊,有没有什么方法可以让 阅读全文
posted @ 2020-04-29 17:33 Java中文社群 阅读(1174) 评论(3) 推荐(4) 编辑
摘要:Spring Boot 在启动的时候,我们或许想要把自己公司的 logo,或者是项目的 logo 放上去,我们可以试试本文的这些方法,可以让你快速制作一些 Spring Boot 项目启动时的彩蛋,以提高项目的辨识度,或者是纯碎为了给枯燥的生活平添一些乐趣,那么本文这些内容能很好的帮助到你。 本文知 阅读全文
posted @ 2020-04-20 11:38 Java中文社群 阅读(369) 评论(0) 推荐(0) 编辑
摘要:我想所有 Java 程序员都曾被这个 new String 的问题困扰过,这是一道高频的 Java 面试题,但可惜的是网上众说纷纭,竟然找不到标准的答案。有人说创建了 1 个对象,也有人说创建了 2 个对象,还有人说可能创建了 1 个或 2 个对象,但谁都没有拿出干掉对方的证据,这就让我们这帮吃瓜群 阅读全文
posted @ 2020-04-20 11:37 Java中文社群 阅读(487) 评论(0) 推荐(3) 编辑
摘要:这篇文章的诞生要感谢一位读者,是他让这篇 优秀的文章 有了和大家见面的机会,重点是 优秀文章 ,哈哈。 事情的经过是这样的... 不用谢我,送人玫瑰,手有余香。 相信接下来的内容一定不会让你失望,因为它将是目前市面上最好的关于“延迟任务”的文章 ,这也一直是我写作追求的目标,让我的每一篇文章都比市面 阅读全文
posted @ 2020-04-14 10:52 Java中文社群 阅读(1034) 评论(4) 推荐(5) 编辑
摘要:IDEA 2020.1 经过了漫长的打磨终于发布正式版了,而这次的版本不止直接支持 Java 14,还带来了两个重量级的功能,官方中文版支持和 JDK 直接下载。 在之前的开发中,当我们需要下载 JDK 时,通常的步骤是这样的:首先去 Oracle 的官网,查到相关的版本下载地址,然后输入用户输入密 阅读全文
posted @ 2020-04-12 09:53 Java中文社群 阅读(4567) 评论(16) 推荐(6) 编辑
摘要:为什么要阅读源码?这是一个有趣的问题,类似的问题还有,为什么要看书?为什么要爬山? 这也是一个哲学问题,我想每个人都有不同的答案,下面我是对阅读源码好处的一些思考。 (PS:也欢迎你在评论区留言补充) 阅读源码的好处 1.知其然知其所以然 这是一句 IT 人都很熟悉的话,在开源软件越来越多,并且升级 阅读全文
posted @ 2020-04-09 21:51 Java中文社群 阅读(394) 评论(0) 推荐(0) 编辑
摘要:在开始之前,我们先来看以下代码会有什么问题? 或许你已经发现了,上面这段代码使用了 来终止线程,在 Java 程序中是不允许这样终止线程的。什么?你问为什么不能这样? 首先来说 IDE 都会鄙视你了,它会阻止你使用 ! 什么?你不信。那么来看这张图: 好吧,那为什么不能这样用呢?总得给我一个敷衍的理 阅读全文
posted @ 2020-04-06 21:12 Java中文社群 阅读(233) 评论(0) 推荐(5) 编辑
摘要:罗曼罗兰说过:世界上只有一种英雄主义,就是看清生活的真相之后依然热爱生活。 对于 Lombok 我相信大部分人都不陌生,但对于它的实现原理以及缺点却鲜为人知,而本文将会从 Lombok 的原理出发,手撸一个简易版的 Lombok,让你理解这个热门技术背后的执行原理,以及它的优缺点分析。 简介 在讲原 阅读全文
posted @ 2020-03-30 12:21 Java中文社群 阅读(1607) 评论(4) 推荐(2) 编辑
摘要:前面我们讲了 "《Redis 性能优化的 13 条军规!》" ,其中最重要的一条就是使用 Redis 的集群功能,那么本文我们就来看看,如何用 1s 钟的时间来创建一个 Redis 集群。 Redis Cluster 是 Redis 3.0 版本推出的 Redis 集群方案,它将数据分布在不同的服务 阅读全文
posted @ 2020-03-27 17:14 Java中文社群 阅读(66) 评论(0) 推荐(0) 编辑
摘要:Redis 是基于单线程模型实现的,也就是 Redis 是使用一个线程来处理所有的客户端请求的,尽管 Redis 使用了非阻塞式 IO,并且对各种命令都做了优化(大部分命令操作时间复杂度都是 O(1)),但由于 Redis 是单线程执行的特点,因此它对性能的要求更加苛刻,本文我们将通过一些优化手段, 阅读全文
posted @ 2020-03-27 17:12 Java中文社群 阅读(115) 评论(0) 推荐(1) 编辑
摘要:Java 14 在 2020.3.17 日发布正式版了,但现在很多公司还在使用 Java 7 或 Java 8,每当看到 Java 又发布新版本心里就慌得一匹。不过此版本并不是 LTS (长期支持版) 版本,所以不要慌,我们先来了解一下好了,等 LTS 版本发布后再用也不迟。 版本说明 现在 Jav 阅读全文
posted @ 2020-03-22 17:57 Java中文社群 阅读(340) 评论(0) 推荐(0) 编辑
摘要:因为我说:volatile 是轻量级的 synchronized,面试官让我回去等通知! volatile 是并发编程的重要组成部分,也是面试常被问到的问题之一。不要向小强那样,因为一句:volatile 是轻量级的 synchronized,而与期望已久的大厂失之交臂。 volatile 有两大特 阅读全文
posted @ 2020-03-18 09:03 Java中文社群 阅读(812) 评论(2) 推荐(4) 编辑
摘要:面试问题 Redis 如何实现查询附近的人? 涉及知识点 1. Redis 中如何操作位置信息? 2. GEO 底层是如何实现的? 3. 如何在程序实现查询附近的人? 4. 在实际使用中需要注意哪些问题? 视频答案 视频地址:https://www.bilibili.com/video/av8936 阅读全文
posted @ 2020-03-09 13:48 Java中文社群 阅读(434) 评论(3) 推荐(0) 编辑
摘要:本文以面试问题「Redis 中的过期元素是如何被处理的?」为切入点,用视频加图文的方式和大家聊聊 Redis 过期元素被处理的相关知识点。 涉及的知识点 1. 过期删除策略有哪些? 2. 这些过期策略有哪些优缺点? 3. Redis 使用的是什么过期策略? 4. Redis 是如何优化和执行过期策略 阅读全文
posted @ 2020-03-03 11:53 Java中文社群 阅读(355) 评论(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 Java中文社群 阅读(543) 评论(0) 推荐(3) 编辑
摘要:多年前曾看过一个关于黄磊的采访,其中大部分的内容已经忘记的差不多了,其中有一句话一直记忆深刻,他说:“人生有很多阶段,每一个阶段都有它的快乐和苦涩,但这些你无法跨过去也不能退回来,你要做的就是享受每一个阶段所特有的快乐”,那一刻犹如醍醐灌顶,让我记忆至今。 29 岁之后,开始觉得人生没有方向,不知道 阅读全文
posted @ 2019-12-22 22:05 Java中文社群 阅读(1008) 评论(5) 推荐(8) 编辑
摘要:Redis 的读写都是在内存中,所以它的性能较高,但在内存中的数据会随着服务器的重启而丢失,为了保证数据不丢失,我们需要将内存中的数据存储到磁盘,以便 Redis 重启时能够从磁盘中恢复原有的数据,而整个过程就叫做 Redis 持久化。 Redis 持久化也是 Redis 和 Memcached 的 阅读全文
posted @ 2019-11-17 22:45 Java中文社群 阅读(935) 评论(2) 推荐(1) 编辑
摘要:1.过期设置 Redis 中设置过期时间主要通过以下四种方式: expire key seconds:设置 key 在 n 秒后过期; pexpire key milliseconds:设置 key 在 n 毫秒后过期; expireat key timestamp:设置 key 在某个时间戳(精确 阅读全文
posted @ 2019-11-12 19:08 Java中文社群 阅读(699) 评论(0) 推荐(0) 编辑
摘要:作为关系型数据库中一项非常重要的基础功能——事务,在 Redis 中是如何处理并使用的? 1.前言 事务指的是提供一种将多个命令打包,一次性按顺序地执行的机制,并且保证服务器只有在执行完事务中的所有命令后,才会继续处理此客户端的其他命令。 事务也是其他关系型数据库,所必备的一项非常重要的能力。以支付 阅读全文
posted @ 2019-10-28 21:00 Java中文社群 阅读(659) 评论(0) 推荐(0) 编辑