后端

学习《框架思维》的第三天

      今天继续学习《框架思维》,前面我们学习了界定问题的三种方法:准确地秒速问题,明确问题的构成要素,探究问题的本质。今天我们学习第四种方法:显性化问题隐含的假设。 一,显性问题隐含的环境假设, 二,显性问题隐含的时间假设 三,显性化理论/工具的应用前提和边界       显性化问题隐含的假设是一种威力巨大的界定问题的方法,特别有助于我们发现问题不缜密的部分,以及拓宽分析问题的思路。    

以国产IoTDB为代表的主流时序数据库架构与性能深度选型评测

> 💡 原创经验总结,禁止AI洗稿!转载需授权>  声明:本文所有观点均基于多个领域的真实项目落地经验总结,数据说话,拒绝空谈!目录引言:时序数据库选型的“下半场”一、维度一:架构哲学 —— 决定了你的“天花板”在哪里二、维度二:数据生命周期管理

JVM调优参数

JVM调优参数可以分为以下几类: 1.堆内存调优参数: -Xms:初始堆大小 -Xmx:最大堆大小 -Xmn:新生代大小 -XX:NewRatio:新生代和老年代的比例 -XX:SurvivorRatio:Eden区和Survivor区的比例 2.GC调优参数: -XX:+UseSerialGC:使用串行垃圾回收器 -XX:+UseParallelGC:使用并行垃圾回收器 -XX:+UseConc

综合——前言(编译)

1. 程序编译 1.1 程序编译的目的     程序编译的目的把源代码变成目标代码。如果源代码在操作系统上运行:目标代码就是“汇编代码”。再通过汇编和链接的过程形成可执行文件,然后通过加载器加载到操作系统执行。 1.2 程序编译流程 编译流程 1.2.1 词法分析     源代码程序被输入到扫描器(Scanner),扫描器对源代码进行简单的词法分析,运用类似于有限状态机(Finite

AQS机制

AQS:全名为AbstractQuenedSynchronizer,翻译过来即抽象的队列同步器,是一种用来构建锁和同步器的框架。 基于AQS构建同步器,很多并发类都是基于它实现的,这些类都是继承于AbstractQueuedSynchronizer,包括: ReentrantLock Semaphore CountDownLatch ReentrantReadWriteLock Synchron

02.《Java EE学习笔记》Servlet

目录: 一、Servlet的基本概念 二、Servlet的三种使用方式 三、Servlet 的生命周期 四、Servlet 的配置 五、访问Servlet的三种方式 六、Servlet获取请求数据 七、响应重定向和请求转发 一、Servlet的基本概念 Servlet(Servlet Applet),全称Java Servlet,是用Java编写的服务器端程序。而这些Servlet继承HttpSe

Java异步任务编排—CompletableFuture(二)

CompletableFuture API 默认情况下CompletableFuture会使用公共的ForkJoinPool线程池,这个线程池默认创建的线程数是 CPU 的核数(也可以通过 JVM option:-Djava.util.concurrent.ForkJoinPool.common.parallelism 来设置ForkJoinPool线程池的线程数)。如果所有Completabl

一图了解ConcurrentHashMap底层原理

底层结构图.png 1、ConcurrentHashMap底层数据结构是一个数组table 2、table数组上挂着单向链表或红黑树 3、new ConcurrentHashMap();如果没有指定长度的话,默认是16,并且数组长度必须是2的n次幂,若自定义初始化的长度不是2的n次幂,那么在初始化数组时,会吧数组长度设置为大于自定义长度的最近的2的n次幂。(如:自定义长度为7,那么实际

20230401--RHEL/Rocky/AlmaLinux8显示内存低于实际硬件内存

由于RHEL/CentOS7在2024年6月30日将EOL(End Of Life,结束生命周期),最近陆续在将生产上的服务的OS升级迁移到RHEL/AlmaLinux8,但是陆续发现原本用相同的资源的服务器经常出现SWAP不足、杀毒软件ClamAV进程因内存而被Kill等告警。 今天迁移一个测试环境的Web应用,参考原来服务申请了一个1C1G(1024M)的服务器,安装AlmaLinux8.7后