• 2024-06-23Java常见的本地存储方式
    1、HashMap1.1特点K-V形式线程不安全查询效率快通过线程不安全的特点,表现了HashMap的应用场景局限于单线程(没有线程并发问题的场景)1.2基础操作Map<Object,Object>map=newHashMap<>();//添加元素map.put("key","value");//获取元素map.get("key");//删除元
  • 2024-06-23设计模式-观察者模式
    观察者模式观察者模式(ObserverPattern),又叫发布-订阅(Publisher/Subscribe)模式,模型-视图模式,源-监听器模式或从属者模式。定义一种一对多的依赖关系,一个主题对象可以同时被多个监听者同时监听,使得每当主题对象状态发生变化时,所有依赖于它的对象都会得到通知并被自动更新。属于行为
  • 2024-06-08另一个Java基于阻塞的定时消费内存队列(依赖guava)
    本文的代码是对一个Java基于阻塞的定时消费内存队列-Jackie_JK-博客园(cnblogs.com)方法的改进,完善了包装以及部分细节,非jdk21可能需要更换线程池类型。消费类型:@Getter@AllArgsConstructorpublicenumPushType{ELASTIC,SQL,;}队列参数枚举:@Getter@AllAr
  • 2024-06-04为何我建议你学会抄代码
    抄代码,是一个国际习俗。学习Java8年了,我一直坚定不移地“抄”代码:“抄”同事“抄”框架“抄”GPT有黑子会问,你天天自吹技术专家了,天天就知道抄?对此,我只想说,是的,咋滴?初级程序员和高级程序员最大的区别在哪里?:1为啥就知道抄?“抄”,听起来让人不舒服?技术人嘛,咋能叫抄呢,
  • 2024-04-25guava-SmoothRateLimiter代码
     //定义为volatile变量privatevolatileObjectmutexDoNotUseDirectly;//已存储许可证数量doublestoredPermits;//最大许可证数量doublemaxPermits;//间隔时间doublestableIntervalMicros;//上一次获取许可证时间戳privatelong
  • 2024-04-12guava-retrying
    https://github.com/rholder/guava-retrying ##Whatisthis?Theguava-retryingmoduleprovidesageneralpurposemethodforretryingarbitraryJavacodewithspecificstop,retry,andexceptionhandlingcapabilitiesthatareenhancedbyGuava'spredi
  • 2024-03-26Redis发布订阅模式解决Guava Cache本地缓存刷新问题
    为什么要用本地缓存可以加快资源访问速度,减少第三方IO延迟,也避免了网络调用的开销,将数据存储在本地jvm内存中可以减少外部系统的压力,可以将频繁访问、且更新场景较少的数据缓存起来,降低对远程服务或者数据库的请求次数,降低外部系统负载,提供系统整体的稳定性缺点:但是同时也得
  • 2024-02-21guava中eventbus用法
    ​ google的event事件机制可以用于解耦,类似于spring的事件机制,可以同步也可以异步。定时事件(类型随意,guava调度的时候会根据对应的类型调对应的handler)packagegoogle.event;importlombok.AllArgsConstructor;importlombok.Data;@Data@AllArgsConstructorpublic
  • 2024-02-05浅谈LocalCache | 京东云技术团队
    1、什么是LocalCache?本地缓存是一种将数据存储在应用程序内存中的机制,用于提高数据访问的性能和响应速度。它通过在内存中维护一个键值对的存储结构,允许应用程序快速检索和访问数据,而无需每次都从慢速的数据源(如数据库或网络)获取数据。2、LocalCache优缺点1)优点•快速访问:Loca
  • 2024-02-05浅谈LocalCache | 京东云技术团队
    1、什么是LocalCache?本地缓存是一种将数据存储在应用程序内存中的机制,用于提高数据访问的性能和响应速度。它通过在内存中维护一个键值对的存储结构,允许应用程序快速检索和访问数据,而无需每次都从慢速的数据源(如数据库或网络)获取数据。2、LocalCache优缺点1)优点•快速访问:LocalCach
  • 2024-01-11缓存之美——如何选择合适的本地缓存?
    1、简介小编最近在使用系统的时候,发现尽管应用已经使用了redis缓存提高查询效率,但是仍然有进一步优化的空间,于是想到了比分布式缓存性能更好的本地缓存,因此对领域内常用的本地缓存进行了一番调研,有早期的Guava缓存、在Guava上进一步传承的Caffine以及自称在Java中使用最广泛的EhC
  • 2024-01-11缓存之美——如何选择合适的本地缓存?
    1、简介小编最近在使用系统的时候,发现尽管应用已经使用了redis缓存提高查询效率,但是仍然有进一步优化的空间,于是想到了比分布式缓存性能更好的本地缓存,因此对领域内常用的本地缓存进行了一番调研,有早期的Guava缓存、在Guava上进一步传承的Caffine以及自称在Java中使用最广泛的EhCac
  • 2023-12-26Google Guava:EventBus
    EventBus是Guava中对于事件发布订阅功能的实现,是设计模式中的发布/订阅模式的一种实现方案。功能概括:通过eventBus.register注册订阅者,通过eventBus.post方法发布事件,然后根据发布事件的类型(classType),执行所有订阅者中被@Subcribe注解标记的且参数类型一致的方法,从而实现发布、订阅
  • 2023-12-22Guava中的多值映射Multimap的深入分析
    第1章:引言今天小黑要重点介绍的是Guava中超实用的一个工具:Multimap。Multimap这个东西,其实可以看作是Map的一个加强版。在Java标准库中,一个key只能对应一个value,但在实际开发中,我们经常会遇到一个key对应多个value的情况,这时候就有点力不从心了。比如,假设咱们要管理一个学校的
  • 2023-12-22Guava的TypeToken在泛型编程中的应用
    第1章:引言在Java世界里,泛型是个相当棒的概念,能让代码更加灵活和类型安全。但是,泛型也带来了一些挑战,特别是当涉及到类型擦除时。这就是TypeToken大显身手的时候!作为Java程序员的咱们,都知道泛型可以让代码更加通用,但同时也可能会导致一些类型信息在运行时丢失,这就是所谓的类型擦
  • 2023-12-21Guava自加载缓存LoadingCache使用指南
    第1章:引言大家好,我是小黑,今天我们来聊聊缓存。在Java世界里,高效的缓存机制对于提升应用性能、降低数据库负担至关重要。想象一下,如果每次数据请求都要跑到数据库里取,那服务器岂不是要累趴了?这时候,缓存就显得尤为重要了。那么,怎么实现一个既高效又好用的缓存呢?别急,咱们今天的主
  • 2023-12-18Java异常处理神器:Guava Throwables类
    第一章:Guava库简介Guava由Google开发,它提供了大量的核心Java库,例如:集合、缓存、原生类型支持、并发库、通用注解、字符串处理和I/O操作等。这些功能在日常的Java开发中超级常用,而且Guava的设计哲学是简洁高效,这让咱们的代码不仅更加优雅,而且更加易于维护和阅读。尤其是在异常处
  • 2023-12-18Google Guava:EventBus
    EventBus是Guava中对于事件发布订阅功能的实现,是设计模式中的发布/订阅模式的一种实现方案。功能概括:通过eventBus.register注册订阅者,通过eventBus.post方法发布事件,然后根据发布事件的类型(classType),执行所有订阅者中被@Subcribe注解标记的且参数类型一致的方法,从而实现发布、
  • 2023-12-12Guava的注解处理机制
    第1章:引言Guava不仅仅是一个工具库,它更像是Java程序员的瑞士军刀,提供了一系列强大的功能,从集合操作到函数式编程,再到今天咱们要深入探讨的——注解处理机制。注解(Annotations),在Java世界里,它们就像是给代码加的小便签,既能标记信息,又能影响程序的运行。Guava对注解处理的方式,不仅
  • 2023-12-11Guava Retryer(重试组件)
    pom.xml<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>RELEASE</version><scope>compile</scope></dep
  • 2023-12-07优雅提效:Guava的字符串处理工具
    第1章:引言大家好,我是小黑,今天咱们要聊一聊GoogleGuava这个超棒的Java库,尤其是它的字符串处理工具。对于Java程序员来说,字符串处理是日常工作的一部分,而Guava在这方面提供了非常强大的支持。使用Guava处理字符串不仅可以提高效率,而且代码会更简洁、更优雅。Guava库由Google开发
  • 2023-12-07Guava本地环境设置
    Guava本地环境设置这部分指导如何下载和设置Java在机器上。请按照以下步骤来设置环境。JavaSE免费提供链接:下载Java。所以,根据操作系统下载对应版本。按照说明下载java和运行.exe在机器上,并按说明安装Java。一旦机器上安装了Java,还需要设置环境变量指向正确的JAVA安装目录:Wi
  • 2023-12-06并发设计类分析(Guava/Netty)
    1.限流器1.1限流器常见限流算法:计数器算法计数器算法是一种简单的限流方法,通过对请求进行计数,当请求达到一定的阈值时,进行限制。这种方法适用于简单场景,但不够灵活。容易出现临界时间点限流失效问题。滑动窗口算法滑动窗口算法维护一个时间窗口内的请求数量,通过动态调
  • 2023-12-06Guava中的函数式编程
    第1章:引言大家好!今天小黑要和咱们聊聊,在Java中使用Guava来进行函数式编程。首先,让我们来聊聊什么是函数式编程。简单来说,函数式编程是一种编程范式,它将计算视为函数的评估,避免使用程序状态和可变数据。在函数式编程中,函数是“一等公民”,意味着它们可以像任何其他数据一样被传递
  • 2023-12-06Guava Preconditions类的各种用法
    公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享。GuavaPreconditions类提供静态方法列表,用于检查是否使用有效参数值调用方法或构造函数。如果前提条件失败,则会抛出指定的异常。前置依赖引入pom<dependency><groupId>com.google.guava</g