随笔分类 - 技术
技术不等于价格
摘要:在高并发、高性能的质量要求不断提高时,我们首先会想到的就是利用缓存予以应对。
第一次请求时把计算好的结果存放在缓存中,下次遇到同样的请求时,把之前保存在缓存中的数据直接拿来使用。
但是,缓存的空间一般都是有限,不可能把所有的结果全部保存下来。那么,当缓存空间全部被占满再有新的数据需要被保存,就要决定删除原来的哪些数据。如何做这样决定需要使用缓存淘汰算法。
常用的缓存淘汰算法有:FIFO、LRU、LFU,下面我们就逐一介绍一下。
阅读全文
摘要:Java实现Kafka生产者和消费者的示例
阅读全文
摘要:一个长头发、穿着清爽的小姐姐,拿着一个崭新的Mac笔记本向我走来,看着来势汹汹,我心想着肯定是技术大佬吧!但是我也是一个才华横溢的人,稳住我们能赢。
阅读全文
摘要:在Spring MVC或者Spring Boot中的RESTful接口中,有大量的@PathVariable注解,也就是把参数放在URL里。但是在Sentinel中把每一次请求的URL作为唯一的资源名,进行匹配和流量控制的,这就造成了一个接口是一个资源却被当作多个资源看待,无法达到流量控制的目的。
阅读全文
摘要:一个大腹便便,穿着格子衬衫的中年男子,拿着一个贴满Logo的Mac向我走来,看着稀少的头发,我心想着肯定是顶级技术大牛吧!但是我也是一个才华横溢的人,稳住我们能赢。
阅读全文
摘要:理解和掌握Redis的持久机制,对于Redis的日常开发和运维都有很大帮助,也是在大厂面试经常被问到的知识点。
阅读全文
摘要:当Redis客户端出现请求超时的时候,需要检查该时间点是否有慢查询,从而分析出由于慢查询导致的命令级联阻塞。
阅读全文
摘要:无论你是Java、PHP开发者,还是运维人员,只要从事互联网行业,面试时都可能被问到HTTP协议相关知识。
阅读全文
摘要:JDK不仅提供的这些函数式接口,其中一些接口还为我们提供了实用的默认方法,这次我们来介绍一下Consumer、Predicate、Function复合。
阅读全文
摘要:JDK不仅提供的这些函数式接口,其中一些接口还为我们提供了实用的默认方法,这次我们来介绍一下Comparator复合。
阅读全文
摘要:在Java8支持Lambda表达式以后,为了满足Lambda表达式的一些典型使用场景,JDK为我们提供了大量常用的函数式接口。它们主要在 java.util.function 包中,下面简单介绍几个其中的接口及其使用示例。
阅读全文
摘要:在之前的文章中介绍了Lambda表达式的基本语法和正确使用姿势,这次介绍如何写出更简洁、更易懂的Lambda表达式。
阅读全文
摘要:在面试时,避免不了的会遇到一些数据结构的面试题,今天我们就来了解一下二叉树的经典面试题:
阅读全文
摘要:只需要五分钟,你就可以了解到事务及其ACID特性,并且真正地理解MySQL事务隔离级别:未提交读、提交读、可重复读、可串行化,还有什么是脏读、不可重复读、幻读。
阅读全文
摘要:布隆过滤器(Bloom Filter)是由Howard Bloom在1970年提出的一种比较巧妙的概率型数据结构,它可以告诉你某种东西一定不存在或者可能存在。它可以更高效地插入和查询,并且占用空间更少。
阅读全文
摘要:栈帧是Java虚拟机中的虚拟机栈的基本元素,它也是用于支持Java虚拟机进行方法调用和方法执行背后的数据结构,了解了它就可以更好地理解Java虚拟机执行引擎是如何运行的。
阅读全文
摘要:一个头发稀少、穿着格子衬衣的中年男子走了进来,把手里拿的MAC放在桌子上,对我说:“我会用电脑记录面试过程,你不介意吧?”
阅读全文
摘要:Redis提供更加丰富的数据结构,如:字符串、列表、集合、有序集合、哈希、位图、HyperLogLogs,你都真正了解嘛?
阅读全文
摘要:要想深入了解JVM,双亲委托模型是绕不过的,也是中高级开发面试时经常问到的。了解了它,你就会对JDBC、SPI、OSGi等的类加载机制有更深一层的理解。
阅读全文
摘要:深度解析了JVM的内存结构,图文并茂,生动形象。并编写多个示例代码,展示了JDK中各个不同的内存结构,详细讲解了不同版本JDK对内存结构实现的区别。
阅读全文