- 博客(69)
- 收藏
- 关注
原创 Arthas---线上处理工具
Arthas 是由阿里巴巴开源的一款强大的 Java 诊断工具,主要设计目的是帮助开发者在生产环境中不重启应用的情况下,快速定位和解决各种 Java 应用的问题。它支持多种功能,例如方法跟踪、内存分析、线程诊断等:可以查看 CPU、内存、GC、线程等信息。:通过trace命令可以查看方法的调用链路及其耗时。:使用sc和sm命令可以查看已加载的类和类方法信息。:通过profiler命令生成火焰图,帮助分析性能瓶颈。:可以反编译类文件、查看类加载器信息等。:通过分析方法执行的耗时,找出系统的性能瓶颈。
2025-01-09 15:32:06
979
原创 Guava常见特性操作
Guava 是 Google 开发的一个 Java 核心库,它包含了许多 Google 工程师在 Java 编程中常用的实用工具。Guava 库旨在提供新的集合类型(如多集合和双端队列)、缓存、原生类型支持、并发库、常见注解、字符串处理等实用工具。集合框架增强不可变集合:如,创建后无法修改,提高线程安全性。Multimap:支持一个键映射多个值的结构,例如和。BiMap:双向映射,键和值都必须唯一,可以通过值反向查找键。Table:支持二维表结构的数据存储,类似于矩阵。缓存机制。
2025-01-02 17:39:58
710
原创 Disruptor 高性能环形消息框架
Disruptor是一个高性能的互进程(Inter-process)和多线程(Multi-threaded)消息处理库,由LMAX交易所开发,用于在Java虚拟机(JVM)上实现高性能的交换和处理数据。Disruptor的核心目标是提供一种低延迟、高吞吐量的解决方案。一些关键特性:Disruptor设计用来减少延迟,因为它避免了使用锁和线程间上下文切换,而是采用了一种基于缓存行(cache line)的设计理念。
2024-12-27 17:22:24
769
原创 数据结构---图(Graph)
图(Graph)是一种非常灵活且强大的数据结构,用于表示实体之间的复杂关系。在图结构中,数据由一组节点(或称为顶点)和连接这些节点的边组成。图可以用于表示社交网络、交通网络、网络路由等场景。
2024-12-16 09:09:05
1178
原创 数据结构---哈希表(Hash Table)
哈希表(Hash Table),也称为散列表,是一种通过哈希函数将键(Key)映射到表中一个位置以便快速访问记录的数据结构。它提供了快速的数据插入、删除、搜索和访问功能。哈希表的主要目的是解决直接寻址和顺序结构之间的矛盾,实现快速的数据访问。
2024-12-13 08:56:46
1104
1
原创 基于树(Tree)的部分笔试题
可以使用深度优先搜索(DFS),从根节点开始遍历树,计算路径的总和。: 使用递归来构建二叉树的中序遍历,其中每次选择数组的中间元素作为根节点,左右部分作为子树。: 使用深度优先搜索(DFS),计算每个节点的左右子树的高度,确保其高度差不超过1。:给定一个二叉搜索树(BST),找出其中的第k大的元素。,判断是否存在从根节点到叶子节点的路径,使得路径上所有节点的值之和等于目标和。(从上到下)遍历的节点值。: 可以使用递归的方式,交换每个节点的左右子节点。: 中序遍历树的节点,确保节点的值按照升序排列。
2024-12-12 09:00:31
290
原创 数据结构---树(Tree)
在数据结构中,是一种层次结构的数据结构,由节点(node)组成,其中每个节点通过边(edge)与其他节点连接。树是一种非线性的数据结构,广泛用于表示具有层级关系的数据。常见的树包括二叉树、平衡树、红黑树、B树等。:树中的基本元素,包含数据和指向子节点的指针(或引用)。:连接树中两个节点的连接线。:树的顶层节点,没有父节点。:某个节点的下级节点。:某个节点的上级节点。:没有子节点的节点。:树中某个节点到根节点的路径长度。:树中某个节点到其最深叶节点的最长路径长度。:树的某个节点及其所有后代节点构成的树。
2024-12-11 10:14:05
1566
原创 Redis客户端(Jedis、RedisTemplate、Redisson)
Redis作为一个当下很火热的非关系型数据库,Java从业人员基本都离不开对Redis的使用。在Java程序中该数据库,需要借助于市面上的开源客户端,如Jedis、Spring Data Redis、Redisson,它们可以作为操作Redis非关系型数据库的桥梁。
2024-12-10 09:05:48
1620
原创 JVM调优
JVM调优,即Java虚拟机(Java Virtual Machine)调优,是指对Java虚拟机的运行参数进行调整,以优化Java应用程序的性能。JVM是Java程序运行的平台,负责装载字节码文件,解释或编译字节码文件,并执行。调优的目标通常包括减少延迟、提高吞吐量、减少内存占用等。-Xms:设置JVM启动时的初始堆大小。-Xmx:设置JVM可以使用的最大堆大小。-Xms256m:设置JVM启动时的初始堆大小为256MB。-Xmx1024m:设置JVM可以使用的最大堆大小为1024MB。
2024-12-09 09:07:43
1056
原创 JWT 原理与使用
JWT(JSON Web Token)是一种基于 JSON 格式的轻量级、自包含的身份验证和授权标准(RFC 7519)。它允许将用户信息和其他必要数据在各方之间以一种安全的方式进行传输。:包含令牌的类型(即 JWT)和所使用的签名算法(如 HMAC SHA256 或 RSA)。:包含声明(Claims)。声明是关于实体(通常是用户)和其他数据的声明。它们可以被分为三类:注册的声明、公共的声明和私有的声明。:用于验证消息在传输过程中未被篡改,并且,对于使用私钥签名的令牌,还可以验证发送者的身份。
2024-12-08 15:15:44
1207
原创 基于队列(Queue)的部分笔试题
给定一个队列,实现一个函数,用队列逆序打印所有元素,但不使用递归或额外的存储空间。设计一个队列,在入队时,保持队列中所有元素按从大到小的顺序排列。设计一个队列,要求能够在常数时间内支持获取队列中的最大值操作。用两个栈实现一个队列,支持入队和出队操作。(优先队列),它能在入队时自动保持元素按指定顺序排列。:将元素 x 添加到队列,并保持队列按大小顺序排列。)来实现,其中维护一个递减的队列来存储最大值。,实现一个支持高效操作的循环队列。,它们提供了线程安全的队列操作。:将元素 x 添加到队列尾部。
2024-12-06 16:30:00
1258
原创 数据结构---栈(Stack)
栈(Stack)是计算机科学中的一种抽象数据类型,它遵循特定的操作顺序,即后进先出(Last In First Out,LIFO)。
2024-12-05 08:50:35
696
原创 ArrayList相关面试题
ArrayList是基于动态数组实现的,支持快速的随机访问,但在插入和删除元素时,尤其是删除中间元素时,性能较差。通过结合源码分析,可以看到扩容、删除、查找等操作的具体实现。
2024-12-04 09:01:22
450
原创 数据结构---数组
数组(Array)是一种线性数据结构,用于存储多个元素,这些元素在内存中是连续存储的。数组的每个元素都可以通过索引访问,通常索引是从0开始。
2024-12-03 16:00:30
1006
原创 数据结构---链表
链表(Linked List)是一种常见的线性数据结构,它由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针(或引用)。
2024-11-29 15:19:11
906
原创 服务限流、降级、熔断-SpringCloud
SpringCloud框架整合Nacos,Sentinel,Hystrix,OpenFeign组件完成一个服务治理案例,旨在为实际项目有类似需求提供解决思路。
2024-11-24 13:07:27
424
原创 Java中日志采集框架-JUL、Slf4j、Log4j、Logstash
日志采集是指在软件系统、网络设备、服务器或其他IT基础设施中自动收集日志文件和事件信息的过程。这些日志通常包含了时间戳、事件类型、源和目标信息、错误代码、用户操作记录等关键数据。日志采集的目的是为了监控系统运行状态、分析系统性能、审计用户行为、故障排查和安全监控等。
2024-11-19 14:12:08
1364
原创 ThreadPool - 线程池技术
池化思想(Pooling)是一种资源管理策略,其核心思想是重用资源以减少开销和提高效率。在计算机科学中,池化思想被广泛应用于多种资源的管理,包括但不限于线程、数据库连接、网络连接、内存块等。:在程序启动时或根据需要预先分配一定数量的资源,而不是在每次需要时动态创建。:当一个任务完成后,资源不会被销毁,而是返回到资源池中,供其他任务复用。:通过减少频繁的资源创建和销毁操作,可以减少系统开销,提高性能。:通过限制资源池的大小,可以防止资源的过度消耗,避免系统过载。
2024-11-15 14:05:47
700
原创 frp - 内网穿透工具
这是一个开源的、高性能的内网穿透和反向代理软件,支持TCP、UDP、HTTP、HTTPS等多种协议。FRP可以将内网服务安全、便捷地通过具有公网IP的节点暴露到公网,实现内网穿透。FRP由客户端(frpc)和服务端(frps)组成,服务端部署在具有公网IP的机器上,客户端部署在需要穿透的内网服务所在的机器上。
2024-11-14 15:30:01
860
原创 Hystrix组件
在微服务架构中,服务之间的依赖关系错综复杂,任何一个服务的不稳定都可能引发连锁反应,导致整个系统的崩溃。🚢🌊 Hystrix,由Netflix开源的库,提供了一套完整的解决方案来应对这些问题,确保服务的高可用性和稳定性。熔断器是Hystrix的核心功能之一,它允许系统在检测到故障时自动“断开”对某个服务的调用,从而防止系统过载和故障蔓延。Hystrix通过将服务调用放在单独的线程池中执行来实现线程隔离,这样可以防止单个服务的延迟或故障影响到整个系统。
2024-11-05 10:05:43
467
原创 Spring Cloud Alibaba
Spring Cloud Alibaba 是阿里巴巴开源中间件与 Spring Cloud 体系的融合,提供了微服务开发一站式解决方案。它包含开发分布式应用微服务所需的所有组件,使得开发者可以通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。
2024-11-04 09:05:13
783
原创 Apache Dubbo (RPC框架)
Dubbo是一个高性能、轻量级的开源Java RPC框架,用于快速开发高性能的服务。它提供了服务的注册、发现、调用、监控等核心功能,以及负载均衡、流量控制、服务降级等高级功能。Dubbo 支持多种协议,包括但不限于 Dubbo 协议、RMI、HTTP、Hessian等,使得开发者可以灵活选择适合自己业务场景的通信协议。1.1 服务治理地址发现:Dubbo 提供了高性能的服务发现机制,支持大规模集群,并且可以与多种注册中心(如 Nacos、Zookeeper、Consul)进行适配。负载均衡。
2024-11-01 17:00:00
1032
原创 Spring Boot Admin应用
Spring Boot Admin(SBA)是一个开源的社区项目,用于管理和监控Spring Boot应用程序。它主要由两个部分构成:服务端(server)和客户端(client)。Spring Boot Admin提供了一个基于Web的用户界面,用于展示和管理Spring Boot应用程序的运行状态。它利用Spring Boot Actuator提供的端点信息,以图形化的方式展示应用的健康状态、指标、配置等。显示健康状态及详细信息,如JVM和内存指标、数据源指标、缓存指标。跟踪并下载日志文件。
2024-10-31 11:13:21
1156
原创 自定义注解使用(Custom Annotation)
自定义注解(Custom Annotation)是Java语言中一种特殊的接口,它允许创建自己的注解类型,以便在代码中标记特定的元素(如类、方法、变量等)。注解在Java 5中引入,用于提供元数据(关于代码的额外信息),这些元数据可以在编译时、类加载时或运行时被读取和处理。
2024-10-29 11:12:00
432
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人