今天研读Java并发容器和框架时,看到为什么要使用ConcurrentHashMap时,其中有一个原因是:线程不安全的HashMap, HashMap在并发执行put操作时会...
今天研读Java并发容器和框架时,看到为什么要使用ConcurrentHashMap时,其中有一个原因是:线程不安全的HashMap, HashMap在并发执行put操作时会...
相信大家都用过 Fastjson,阿里的一个开源 JSON 库,在阿里系的开源项目里应用的非常广泛。虽然有时候也被戏称“沉的快”,但 Fastjson 从功能丰富度、易用性、...
为什么写这篇文章? 相信不少 Java 开发都在项目中使用过类似 ApiResult 这样的对象来包装 Api 返回类型,这相比什么都不包装有一定的好处,但这真的就是最好的做...
最近,我们的线上环境出现了一个问题,线上代码在执行过程中抛出了一个IllegalArgumentException,分析堆栈后,发现最根本的的异常是以下内容: 大概就是以上的...
前言 作为一名Java程序员,我们需要知道Java代码是怎么运行的。最近复习了深入理解Java虚拟机这本书,做了一下笔记,希望对大家有帮助,如果有不正确的地方,欢迎提出,感激...
前言 在分布式系统中,缓存和数据库同时存在时,如果有写操作,先操作数据库还是先操作缓存呢?本文将分5种方案阐述展开对比,谢谢阅读~ 缓存维护方案一 如果是一读(线程B)一写(...
并发编程是 java 高级程序员的必备的基础技能之一。但是想要写好并发程序并非易事。 那究竟是什么原因导致大把的“格子衫”朋友无法写出优质和性能稳定的并发程序呢?根本原因就是...
相信很多程序员对于Linux系统都不陌生,即使自己的日常开发机器不是Linux,那么线上服务器也大部分都是的,所以,掌握常用的Linux命令也是程序员必备的技能。 但是,怕就...
Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点,所以,即使是一个Java的初学者,也一定或多或少的对JVM有一些了解。可以说,关于JVM的相关知识...
本文要介绍的是一个发生在我们线上环境的真实案例,问题发生在某次大促期间,对我们的线上集群造成了比较大的影响,这篇文章简单复盘一下这个问题。 问了方便大家理解,实际排查和解决过...
前段时间我们新上了一个新的应用,因为流量一直不大,集群QPS大概只有5左右,写接口的rt在30ms左右。 因为最近接入了新的业务,业务方给出的数据是日常QPS可以达到2000...
最近无论是校招还是社招,都进行的如火如荼,我也承担了很多的面试工作,在一次面试过程中,和候选人聊了一些关于Dubbo的知识。 Dubbo是一个比较著名的RPC框架,很多人对于...
JVM启动后默认将最大使用堆大小设置为物理内存的四分之一,譬如一台普通的x86服务器配置128G内存,那么启动在容器的内启动JVM会将自己最大允许使用的堆内存调整为32G内存...
曾经,我以为这些东西自己平时看看书就够了,属于那种花了半天精力总算搞明白了,然后过两天就自然忘记的东西。 结果,这都啥啊,啥是卡表,什么又是三色标记法,这些鬼问题都有人面试问...
Seata 如何使用 SPI Seata 是一个分布式事务的框架,具体的使用这里不再赘述,有时间可以出专门写它的文章。本节主要关注 Seata 是如何利用 SPI 的方式进行...
spring batch 简介 spring batch 是 spring 提供的一个数据处理框架。企业域中的许多应用程序需要批量处理才能在关键任务环境中执行业务操作。这些业...
Redis 作为一个非常成功的数据库,提供了非常丰富的数据类型和命令,使用这些,我们可以轻易而高效地完成很多缓存操作,可是总有一些比较特殊问题或需求需要解决,这时候可能就需要...
前言 本篇博客中,我们将会讨论用于声明不同类型 Beans 的几种最常用的 Spring Bean 注解。 众所周知,Spring 容器中有许多配置 Bean 的方法,我们既...
前言 相信大家,初始在使用Linux操作系统时,查找历史命令,第一时间会想到history命令:将显示出之前操作过的命令,其无法显示操作过的命令所输出的过程及结果。 但往往有...
概念 Stream 将要处理的元素集合看作一种流,在流的过程中,借助 Stream API 对流中的元素进行操作,比如:筛选、排序、聚合等。 Stream 的操作符大体上分为...