链接:http://blog.51cto.com/zhangfengzhe/1912897
目前Google Guava在实际应用中非常广泛,本篇博客将以博主对Guava使用的认识以及在项目中的经验来给大家分享!学习使用Google Guava可以让你快乐编程,写出优雅的JAVA代码!
阿里巴巴出了一本Java规范,在国内Java开发眼里被赋予了神圣的殿堂,但是我司禁止使用阿里巴巴的开发手册。
目前Google Guava在实际应用中非常广泛,本篇博客将以博主对Guava使用的认识以及在项目中的经验来给大家分享!正如标题所言,学习使用Google Guava可以让你快乐编程,写出优雅的JAVA代码!
本文介绍了Guava Collect包中的List部分,主要包括ImmutableList、ImmutableCollection、ImmutableList、ImmutableSet、ImmutableMap、ImmutableSortedMap、ImmutableSortedSet、ImmutableHashSet等类。这些类提供了丰富的不可变集合操作,可以帮助开发者更高效地处理集合数据,避免出现不必要的修改。同时,Guava还提供了丰富的其他工具类,如Lists、Maps、Sets、Lists、Queues、Stacks、Sets等,可以帮助开发者处理各种常见的集合操作。总之,Guava是一个非常实用的Java库,可以帮助开发者更高效地处理集合数据,提高开发效率。
比如: 通过intent传参到新的目标 activity,而且一定需要这个参数,那么在新的目标activity中 onCreate方法中 判断中这个参数,如果null,直接抛出空指针异常让程序崩溃。取代在使用该参数时进行检查,这样能更早的发现问题。或者在 一个普通的方法中,一个 参数必须不能为null ,那么我们在这个方法的第一行就做出判断,如果参数为null,抛出空指针异常。
有没有遇到过这种情况:网页响应很慢,提交一次表单后发现没反应,然后你就疯狂点击提交按钮(12306就经常被这样怒怼),如果做过防重复提交还好,否则那是什么级别的灾难就不好说了。。。
我平时用的也挺频繁,这次就借助日常使用的 Cache 组件来看看 Google 大牛们是如何设计的。
在日常的 Java 开发中,由于 JDK 未能提供足够的常用的操作类库,通常我们会引入 Apache Commons Lang 工具库或者 Google Guava 工具库简化开发过程。两个类库都为 java.lang API 提供了很多实用工具,比如经常使用的字符串操作,基本数值操作、时间操作、对象反射以及并发操作等。
应用中需要实现一个功能: 需要将数据上传到远程存储服务,同时在返回处理成功情况下做其他操作。这个功能不复杂,分为两个步骤:第一步调用远程的Rest服务上传数据后对返回的结果进行处理;第二步拿到第一步结果或者捕捉异常,如果出现错误或异常实现重试上传逻辑,否则继续接下来的功能业务操作。
underscore.string.java 是一个Java中方便操作字符串的类库,提供了众多帮助方法。
在实际项目中,曾经遭遇过线上5W+QPS的峰值,也在压测状态下经历过10W+QPS的大流量请求,本篇博客的话题主要就是自己对高并发流量控制的一点思考。
我相信大家都了解缓存,了解redis,之前有发过几篇redis的文章忘记的小伙伴可以点击链接看看!
敏感信息脱敏」实际上是隶属于安全领域」的一个子领域,而日志脱敏」又是敏感信息脱敏」的一个子领域。
上一篇文章我们介绍了实际项目开发中重试的应用场景,以及spring-retry原理和源码的详细介绍,那么此篇我们将会详细介绍一下另外一个常用的重试组件guava-retrying。
通过《重新认识下JVM级别的本地缓存框架Guava Cache——优秀从何而来》一文,我们知道了Guava Cache作为JVM级别的本地缓存组件的诸多暖心特性,也一步步地学习了在项目中集成并使用Guava Cache进行缓存相关操作。Guava Cache作为一款优秀的本地缓存组件,其内部很多实现机制与设计策略,同样值得开发人员深入的掌握与借鉴。
大家都知道,对于高并发的业务场景,我们为了保障服务的稳定,经常会祭出三大利器:缓存、熔断降级和服务限流。
我们的后端业务系统可能会出现接口调用失败、网络拥塞超时、任务执行失败、系统错误等异常情况,需要进行重试操作。但某些场景下我们对重试有特殊要求,比如延迟重试、降频重试等,此时自己编写重试代码会很繁琐,在 Java 中,可以使用 guava-retrying 帮我们实现灵活的重试机制。
行业大佬:大蕉,一个有七块腹肌的普通程序员,主要分享与大后端技术栈以及后端成长技术路线相关的方方面面,擅长帮助迷茫的大三大四应届生和职场新人明确校招以及职场道路。大蕉之前在平安一手架构大数据AI风控反欺诈平台,现就职某 BAT 为线下零售百亿数据提供大数据 AI 运维支持。。
假设遇到这样一个问题:一个网站有 20 亿 url 存在一个黑名单中,这个黑名单要怎么存?若此时随便输入一个 url,你如何快速判断该 url 是否在这个黑名单中?并且需在给定内存空间(比如:500M)内快速判断出。
滑动窗口的意思是说把固定时间片,进行划分,并且随着时间的流逝,进行移动,这样就巧妙的避开了计数器的临界点问题。也就是说这些固定数量的可以移动的格子,将会进行计数判断阀值,因此格子的数量影响着滑动窗口算法的精度。
Immutable List,顾名思义,就是,啥,不明白 Immutable 是什么意思?一成不变的意思,所以 Immutable List 就是一个不可变的 List 类,这意味着该 List 声明后,它的内容就是固定的,不可增删改的。
相信很多在中小型企业或者TO B企业的小伙伴们都未曾接触过限流。举个例子,小伙伴们就会发现,原来软件限流就在身边。相信很多小伙伴们都有12306买票回家的体验吧。如下图大家应该非常熟悉。
大流量,我们很可能会冒出:TPS(每秒事务量),QPS(每秒请求量),1W+,5W+,10W+,100W+...。其实并没有一个绝对的数字,如果这个量造成了系统的压力,影响了系统的性能,那么这个量就可以称之为大流量了。
由于是先放入本项目的 DependencyMap,再去递归 TransitiveDependencyMap,这就解释了 maven 依赖的最短路径原则。
Java Enum是一个非常有用的功能,但很多人通常并不能充分利用,这是因为一些库不会优先择用该功能。通常我们也可以正确使用Java枚举功能,但在许多代码库中往往存在着这样一个问题,于是有了这篇文章。问题很简单:我们应该如何通过名称或值获取枚举,并忽略不存在的值?
Google的Guava库是Java开发中不可或缺的工具库之一。它提供了大量的工具类和方法,能极大地提高编程效率和代码质量。本文将详细介绍Guava的基本使用方法和一些重要特性。
很多朋友,只知道缓存可以提高系统性能以及减少请求相应时间,但是,不太清楚缓存的本质思想是什么。
本文由本人原创,原文首先发布于本人的个人博客 http://791202.com/,原文地址:在IDEA里解决maven的pom引用jar包冲突
Guava是谷歌提供的一个核心Java类库,其中包括新的集合类型、不可变集合、图库,以及用于并发、I/O、Hash、缓存、字符串等的 实用工具。它在谷歌中的大多数Java项目中被广泛使用,也被许多其他公司广泛使用,熟练掌握这些工具类能帮助我们快速的处理日常开发中的一些问题,比如,不可变集合、集合的转换、字符串处理、本地缓存等
在本文中,我们来说说 Java 的多行字符串(multiline strings )。
Guava Cache是Google开源的一个缓存库,它提供了一种简单且高效的方式来缓存数据,以加快应用程序的性能。在Guava Cache中,CacheLoader是一个核心组件,用于在缓存中查找或加载数据。本文将深入探讨Guava Cache的实现原理,重点分析CacheLoader的工作机制,并结合实际项目中的应用场景进行说明。
hello,各位大佬上午|中午|下午|晚上|凌晨好,我是一灰灰,今天给大家介绍一个相对基础的知识点 HashMultmap;
在基于maven的项目开发中,肯定会使用一些第三方库,有一些第三方库是有平台限制的,比如google的核心库guva,在22版本以后就区分为标准jre平台和android平台,如下图:
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
点击关注公众号,Java干货及时送达 Google Guava 概述 1、Guava 是一组来自 Google 的核心 Java 库,包括新的集合类型(如 multimap 和 multiset)、不可变集合、图形库以及用于并发、I/O、散列、缓存、原语、字符串等的实用程序!被广泛应用于 Google 的大多数 Java 项目中,也被许多其他公司广泛使用。 2、guava github 开源地址:GitHub - google/guava: https://github.com/google/guava
说实话,本人刚开始的时候也是同样的反应。但是由于Java的类型安全,执行性能和坚如磐石的工具,我渐渐地开始欣赏Java。同时我注意到,现在的Java已今非昔比——它在过去的10年间稳健地改善着。
本文讲一下Java线程池中创建 ThreadFactory 设置线程名称的三种方式。设置线程名称是很重要的,如果你没有设置过,说明你还“涩世”不深,这里面的坑还不曾踩过,而我 在坑里进去然后坑里出来,被坑的那是一个相当的爽啊~
适用Guava cache的情况 Guava cache说简单点就是一个支持LRU的ConCurrentHashMap,它没有Ehcache那么多的各种特性,只是提供了增、删、改、查、刷新规则和时效规则设定等最基本的元素。做一个jar包中的一个功能之一,Guava cache极度简洁并能满足觉大部分人的要求。
如需要校验某个日期是否在某个范围;需要校验某个版本号是否在某个区间;需要校验某个时间点是否在某个时间段内;判断某个人是否属于某个年龄段;判断某个用户的积分是否属于某个等级的区间等。
任何一个职业,女生都有绝对的优势。更别提 IT 行业了,在部门中要是有女程序猿那肯定是香饽饽,备受呵护呀。
Guava引进了JDK里没有的,但是非常有用的一些新的集合类型。所有这些新集合类型都能和JDK里的集合平滑集成。Guava集合非常精准地实现了JDK定义的接口。Guava中定义的新集合有: Multiset SortedMultiset Multimap ListMultimap SetMultimap BiMap ClassToInstanceMap Table
领取专属 10元无门槛券
手把手带您无忧上云