线上故障主要会包括 CPU、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。同时例如 jstack、jmap 等工具也是不囿于一个方面的问题的,基本上出问题就是 df、free、top 三连,然后依次 jstack、jmap 伺候,具体问题具体分析即可。CPU 一般来讲我们首先会排查 CPU 方面的 ......
180
0
0
2024-02-11
谈谈我工作中的23个设计模式 叙述 从基础的角度看,设计模式是研究类本身或者类与类之间的协作模式,是对抽象归纳的一个比较好的解决思路。在日常工作中,运用 Java 设计模式思路,可以更好地去思考理解这些设计模式。 抽象工厂(Abstract Factory):多套方案抽象工厂就是围绕一个超级工厂创建其他工厂。这个超级工厂也被称为其他工厂的工厂。 抽象工 ......
196
0
0
2024-02-10
我先考一考你,你说这个字符串( ab一2?仯3?4 )有多少个字符? 这时候你也许开始数了,123…9个,没错,确实我们肉眼确实是看到了9个, java 代码如下: 有没有发现java判断出来的不是9,而是12!!! 那是因为这个字符串中有2个字符 ab一2 ? 仯3 ? 4 用黄色表示,实际上 UTF-8 已经满足不了 ......
218
0
0
2024-02-10
一、简介在之前的文章中,我们简单的介绍了线程诞生的意义和基本概念,采用多线程的编程方式,能充分利用 CPU 资源,显著的提升程序的执行效率。其中java.lang.Thread是 Java 实现多线程编程最核心的类,学习Thread类中的方法,是学习多线程的第一步。下面我们就一起来看看,创建线程的几种方式以及Thread类中的常用方法。二、创建线程的方式在 ......
204
0
0
2024-02-10
一、摘要相信不少的网友,在很多的博客文章里面,已经见到过零拷贝这个词,会不禁的发出一些疑问,什么是零拷贝?从字面上我们很容易理解出,零拷贝包含两个意思:拷贝:就是指数据从一个存储区域转移到另一个存储区域。零:它表示拷贝数据的次数为 0。合起来理解,零拷贝就是不需要将数据从一个存储区域复制到另一个存储区域。果真是这样的吗?最早的零拷贝定义,来源于 Linux ......
254
0
0
2024-02-10
最近支付宝开源了一款重磅的产品,一个号称超过现有序列化框架 170x 性能的序列化框架 Fury。根据官方的介绍 Fury 是一个极快的多语言序列化框架,由 jit(即时编译)和零拷贝提供支持,提供高达 170 倍的性能和终极易用性。特性支持多种语言:Java/Python/C++/Golang/Javascript;零拷贝:受 pickle5 和堆外读 / ......
231
0
0
2024-02-10
一、简介说起网络,相信大家都不陌生,把分散在不同地点的计算机设备,通过传输介质、通信设施和网络通信协议,实现资源共享和信息传输的系统,我们称之为:计算机网络系统。而网络编程其实就是编写程序使网络上的两个(或多个)设备(如计算机)之间进行数据传输。为了使两个设备之间能进行数据传输,必须在它们之间建立通信工具(即接口),使彼此之间能进行信息交换,工具包括两部分: ......
189
0
0
2024-02-10
一、简介在计算机中,IO 传输数据有三种工作方式,分别是: BIO、NIO、AIO。在讲解 BIO、NIO、AIO 之前,我们先来回顾一下这几个概念:同步与异步,阻塞与非阻塞。同步与异步的区别同步就是发起一个请求后,接受者未处理完请求之前,不返回结果。异步就是发起一个请求后,立刻得到接受者的回应表示已接收到请求,但是接受者并没有处理完,接受者通常依靠事件回调 ......
185
0
0
2024-02-10
前言最近在学习spring,觉得也可以将spring运用到测试中。Spring很强大,这里只是其中一个简单的应用,不包含全部源码。有不合理的地方,欢迎指正。核心依赖<!--springboot父项目--> <parent> <groupId>org.springframework.boot&lt ......
190
0
0
2024-02-10
Java8的新特性主要是Lambda表达式和流,当流和Lambda表达式结合起来一起使用时,因为流申明式处理数据集合的特点,可以让代码变得简洁易读放大招,流如何简化代码如果有一个需求,需要对数据库查询到的菜肴进行一个处理:筛选出卡路里小于400的菜肴对筛选出的菜肴进行一个排序获取排序后菜肴的名字菜肴:Dish.javapublic class Dish { ......
182
0
0
2024-02-09
Flink 的API层级介绍Source Operator速览Flink的API层级 为流式/批式处理应用程序的开发提供了不同级别的抽象第一层是最底层的抽象为有状态实时流处理,抽象实现是 Process Function,用于底层处理第二层抽象是 Core APIs,许多应用程序不需要使用到上述最底层抽象的 API,而是使用 Core APIs 进行开发例如 ......
193
0
0
2024-02-08
前言在学习反序列化的漏洞时,大致都是了解了一些知识,比如序列化就是写入对象,反序列化就是读取文件恢复对象,在这个过程中会自动调用一些方法,readObject,writeObject,静态代码块等,但是从来没有了解过这个过程是怎么样的,一直很模糊,所以在这篇文章里面会记录整个学习过程,参考的技术文章较少,可能会有错误,希望理解这里用cc2来举一个例子,并不解 ......
187
0
0
2024-02-07
今天我们来聊聊S.O.L.I.D原则中的D:Dependence Inversion Principle(DIP),依赖倒置原则。DIP 简介依赖倒转原则 (DIP)在整个S.O.L.I.D原则是最为重要的,但偏偏又是最难理解的😓尤其是它的定义:High level modules should not depend upon low level modul ......
186
0
0
2024-02-06
今天我们来聊聊S.O.L.I.D原则中的I:Interface Segregation Principle(ISP),接口隔离原则。ISP 简介接口隔离原则(Interface Segregation Principle)的定义是:类间的依赖关系应该建立在最小的接口上。嗯~~我们从字面上理解下或许更直白一些。所谓“接口隔离”,就是把接口隔离开。接口怎么隔离开 ......
227
0
0
2024-02-06
今天我们来到行为关系的第四类。第一个要聊的就是访问者模式(Visitor Pattern)。这个模式号称所有设计模式中最复杂,最难理解的一种!大家做好准备!我尽量说清楚些😂简介还是把这张概总图放这里。访问者模式(Visitor Pattern),是一种将数据操作与数据结构分离的设计模式。通常在OOP思想中,我们使用类来组织属性,以及对属性的操作,那么我们理所 ......
220
0
0
2024-02-06