自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小工匠

show me the code ,change the world

  • 博客(1920)
  • 资源 (15)
  • 收藏
  • 关注

原创 MySQL - binlog同步过程

MySQL 的 binlog 同步原理是主从复制 (Master-Slave Replication),主库 (Master) 将所有数据更改操作记录保存在 binlog 中,并通过网络发送给一个或多个从库 (Slave),从库再将主库的 binlog 应用到自己的数据库中,从而实现数据的同步。binlog 是 MySQL 中的一个重要组件,能够记录下所有对数据库的修改操作,包括添加、删除和修改数据,以及更改数据库结构(例如:创建、删除表)等操作。

2023-09-09 07:45:00 7361

原创 异步编程 - 13 高性能线程间消息传递库 Disruptor

Disruptor是一个高性能的线程间消息传递库,它源于LMAX对并发性、性能和非阻塞算法的研究,如今构成了其Exchange基础架构的核心部分。要理解Disruptor是什么,最好的方法是将它与目前你已经很好地理解且与之非常相似的东西进行比较,例如与Java的BlockingQueue进行对比。与队列一样,Disruptor的目的也是在同一进程内的线程之间传递数据(例如消息或事件);

2023-09-08 22:30:00 6858

原创 异步编程 - 12 异步、基于事件驱动的网络编程框架 Netty

Netty是一个异步、基于事件驱动的网络应用程序框架,其对Java NIO进行了封装,大大简化了TCP或者UDP服务器的网络编程开发。Netty框架将网络编程逻辑与业务逻辑处理分离开来,其内部会自动处理好网络与异步处理逻辑,让我们专心写自己的业务处理逻辑。同时,Netty的异步非阻塞能力与CompletableFuture结合可以让我们轻松实现网络请求的异步调用。

2023-09-08 20:30:00 6749

原创 异步编程 - 11 Spring WebFlux的异步非阻塞处理

我们这里主要探讨Spring框架5.0中引入的新的WebFlux技术栈,并介绍其存在的价值与意义、并发模型与适用场景、如何基于WebFlux实现异步编程,以及其内部的实现原理。Spring框架中包含的原始Web框架Spring Web MVC是专为Servlet API和Servlet容器构建的。

2023-09-08 18:45:00 7615

原创 异步编程 - 09 Spring框架中的异步执行_@Async注解异步执行原理&源码解析

在Spring中调用线程将在调用含有@Async注释的方法时立即返回,Spring是如何做到的呢?其实是其对标注@Async注解的类做了代理,比如下面的类Async-AnnotationExample。@Async// 1.创建future// 2.模拟任务执行try {// 3.返回结果。

2023-09-08 07:15:00 6649

原创 异步编程 - 10 Web Servlet的异步非阻塞处理

Servlet是一个基于Java技术的Web组件,由容器管理,生成动态内容。像其他基于Java技术的组件一样,Servlet是与平台无关的Java类格式,它们被编译为与具体平台无关的字节码,可以被基于Java技术的Web Server动态加载并运行。容器(有时称为Servlet引擎)是Web服务器为支持Servlet功能扩展的部分。客户端通过Servlet容器实现请求/应答模型与Servlet交互。

2023-09-08 07:00:00 6674

原创 异步编程 - 08 Spring框架中的异步执行_TaskExecutor接口和@Async应用篇

在Spring Framework中分别使用TaskExecutor和TaskScheduler接口提供异步执行和任务调度的抽象。这里我们着重了解基于TaskExecutor支撑的注解@Async是如何实现异步处理的。@Async 底层原理:就是通过线程池创建一个线程,然后去执行业务逻辑。@Async 注解会应用默认线程池 SimpleAsyncTaskExecutor这种TaskExecutor接口的实现不会复用线程,对应每个请求会新创建一个对应的线程来执行。

2023-09-07 21:30:00 7928

原创 异步编程 - 07 基于JDK中的Future实现异步编程(下)_当Stream遇见CompletableFuture

从上述代码可知,noStream方法是典型的命令式编码,我们用for循环来一个个判断当前person对象中的age字段值是否大于等于10,如果是则把当前对象的name字段放到手动创建的nameList列表中,然后再开启新的for循环逐个遍历nameList中的name字段。另外使用流可以让我们很方便地对数据集进行并行处理。上面的代码就是声明式编程,其可读性很强,代码直接可以说明想要什么(从代码就可以知道我们要过滤出年龄大于等于10岁的人,并且把满足条件的person的name字段收集起来,然后打印)。

2023-09-07 20:15:00 6480

原创 异步编程 - 06 基于JDK中的Future实现异步编程(中)_CompletableFuture源码解析

这里代码5如果发现future的result不为null,说明当前future还没开始执行,则代码5.1执行我们传递的runnable方法,然后执行代码5.2将future对象的结果设置为null,这时候其他因调用future的get()方法而被阻塞的线程就会从get()处返回null。如上代码与runAsync的不同点在于,这里的行为方法是Supplier,其get()方法有返回值,且返回值会被设置到future中,然后调用future的get()方法的线程就会获取到该值。

2023-09-07 18:30:00 6564

原创 异步编程 - 05 基于JDK中的Future实现异步编程(中)_CompletableFuture

CompletableFuture是一个可以通过编程方式显式地设置计算结果和状态以便让任务结束的Future,并且其可以作为一个CompletionStage(计算阶段),当它的计算完成时可以触发一个函数或者行为;当多个线程企图调用同一个CompletableFuture的complete、cancel方式时只有一个线程会成功。

2023-09-07 07:15:00 6633

原创 异步编程 - 04 基于JDK中的Future实现异步编程(上)_Future & FutureTask 源码解析

这里我们主要探讨如何使用JDK中的Future实现异步编程,这包含如何使用FutureTask实现异步编程及其内部实现原理;如何使用CompletableFuture实现异步编程及其内部实现原理,以及CompletableFuture与JDK Stream如何完美结合的。

2023-09-06 21:30:00 6581

原创 异步编程 - 03 线程池ThreadPoolExecutor原理剖析&源码详解

成员变量ctl是Integer的原子变量,使用一个变量同时记录线程池状态和线程池中线程个数 [线程池状态(高3位),线程个数(低29位)],假设计算机硬件的Integer类型是32位二进制标示,如下面代码所示,其中高3位用来表示线程池状态,后面29位用来记录线程池线程个数:线程池的主要状态线程池的主要状态列举如下:RUNNING:接收新任务并且处理阻塞队列里的任务。SHUTDOWN:拒绝新任务但是处理阻塞队列里的任务。STOP:拒绝新任务并且抛弃阻塞队列里的任务,同时中断正在处理的任务。TIDY

2023-09-06 20:15:00 6810

原创 Nginx - 根据请求参数路由进行不同的响应

如果我们想通过URL里面的Query String进行不同的rewrite,应该如何处理呢?答案就是$arg变量。如果想要在nginx里面单独访问这些变量。可以这样 比如$type变量可以这样访问 $arg_type。还是需要找 nginx 的内置参数 看看能不能获取到传递的参数。最常见的是通过location进行路径匹配的时候,但是。需要对不同的接口实现流控。相同,存储了所提交的所有。

2023-09-06 19:15:06 6889

原创 异步编程 - 02 显式使用线程和线程池实现异步编程

我们主要探讨如何显式地使用线程和线程池实现异步编程,这包含如何显式使用线程实现异步编程以及使用线程编程的缺点,如何显式使用线程池实现异步编程以及线程池实现原理。

2023-09-06 08:00:00 6626

原创 异步编程 - 01 漫谈异步编程发展史

如果使用异步编程 ,则可以在调用线程内开启一个异步运行单元来执行任务A,开启异步运行单元后调用线程会马上返回一个Future对象(futureB),然后调用线程本身来执行任务B,等任务B执行完毕后,调用线程可以调用futureB的get()方法获取任务A的执行结果,最后再拼接两者的结果。由于服务B和服务C是并发运行,所以相比同步调用,线程A获取到服务B和服务C结果的时间会缩短很多(同步调用情况下的耗时为服务B和服务C返回结果耗时的和,异步调用情况下耗时为max(服务B耗时,服务C耗时))。

2023-09-06 07:45:00 6745

原创 EDA - 初探事件驱动

事件驱动架构(Event-Driven Architecture,简称EDA)是一种软件架构模式,它将系统中的各种组件之间的通信和协作建立在事件的概念之上。在事件驱动架构中,系统中的各个部分可以产生、发布、捕获和响应事件,这些事件可以是状态变化、用户操作、消息等等。事件驱动架构的主要思想是通过事件来触发和协调不同组件的行为,使系统更加灵活、松耦合和可扩展。

2023-09-05 21:30:00 6961

原创 每日一博 - 漫谈流控小妙招

限流作为一种流量控制策略 (通常会和熔断、降级搭配在一起使用,来避免瞬时的大量请求对系统造成负荷,来达到保护服务平稳运行的目的)旨在维护系统的稳定性。然而,限流也带来了平衡用户满意度与系统稳定性之间的挑战。限流策略的核心意义:限流是一种管理流量的方法,通过设置最大请求率或并发连接数,以防止系统被过多请求压垮。随着数字服务的普及,限流变得尤为重要,因为高流量可能导致系统崩溃,影响整体可用性。限流与用户体验的平衡:限流策略的挑战之一是如何在保持系统稳定的同时提供令人满意的用户体验。

2023-09-01 21:15:00 6886

原创 Shell - 加固系统配置

【代码】Shell - 加固系统配置。

2023-08-31 22:45:00 7018

原创 Shell - 根据用户名查询该用户的相关信息

【代码】Shell - 根据用户名查询该用户的相关信息。

2023-08-31 22:00:00 7028

原创 Shell - 根据进程名过滤进程信息

【代码】Shell - 根据进程名过滤进程信息。

2023-08-31 21:45:00 6754

原创 Shell - 根据PID过滤进程信息

【代码】Shell - 根据PID过滤进程信息。

2023-08-31 21:15:00 6885

原创 Maven - 依赖三大原则

Maven 是一个流行的构建工具,用于管理和构建Java项目。它遵循一些核心原则,以确保项目的构建和依赖管理能够高效、一致地进行。

2023-08-30 21:15:00 7739

原创 Maven - 使用maven-release-plugin规范化版本发布

通常情况下,软件项目的版本管理是一个复杂的过程,需要考虑版本号的增加、代码库的分支、标签的创建、文档的更新等一系列任务。需要注意的是,Maven Release Plugin 的配置和使用需要谨慎,特别是在团队协作的环境中,确保所有开发者都理解和遵循相应的发布流程。Maven Release Plugin(Maven 发布插件)是一个用于帮助在Maven项目中执行版本发布流程的插件。在上面的配置中,我们指定了 Maven Release Plugin 的版本为 3.0.0,并设置了一个标签名的格式,其中。

2023-08-30 07:00:00 9563

原创 BDCC - 闲聊数据仓库的架构

其主要功能是保存结果数据,为外部系统提供查询接口,基于数据仓库的数据为企业提供增值应用,并将数据仓库的数据应用于企业决策、报表、分析、控制等领域。与传统的 ETL不同,ELT将数据的处理和加工过程转移到了数据仓库中,利用数据仓库的数据计算能力和分布式处理能力来处理和转换数据。总结来说,ETL 和 ELT 的主要区别在于数据转换和加载的顺序。ODS(Operational Data Store):操作数据存储,主要用于存放实时的、操作性的数据,通常是来自不同源系统的数据,用于支持企业的业务操作和实时查询。

2023-08-27 06:15:00 7299

原创 每日一博 - 闲聊云原生和容器编排

通过标准化的YAML、配置中心、可视化后台工具等,可以屏蔽很多关于容器、编排本身的概念,大大降低用户的认知成本,降低容器管理的复杂性,从单机到大规模集群管理,编排工具大大减轻了开发/运维人员的工作量。对于微服务实例节点比较少的环境,不用编排工具也可控,当开发/运维人员面临的是成百上千,甚至上万的微服务实例时,如果没有编排工具的管理,极有可能造成实例节点的漏发或误发。因此,云原生和容器编排在实际应用中往往紧密结合在一起,共同推动应用程序在云环境中的快速发展和迭代。,它鼓励应用程序在云环境中原生部署和运行。

2023-08-27 01:15:00 7546

原创 ElasticSearch - 海量数据索引拆分的一些思考

本次主要通过索引的拆分与合并,来提升查询性能,同时降低整体集群的资源使用量。过程中我们探索了在线数据的跨集群迁移,多索引联合查询的应用,数据写入的同步异步切换等,希望能够为大家提供解决 ES 大规模数据检索的瓶颈,提供参考。虽然本次相对比较平滑的完成了索引的拆分,但是需要耗费大量的开发和测试资源。伴随业务的快速发展,遇到数据瓶颈的业务线,可能有会逐渐增多,如果届时每个业务域要独自开发和测试,成本还是相对较高的。

2023-08-26 19:33:58 8442

原创 每日一博 - MPP(Massively Parallel Processing,大规模并行处理)架构

MPP(Massively Parallel Processing,大规模并行处理)架构是一种常见的数据库系统架构,主要用于提高数据处理性能。它通过将多个单机数据库节点组成一个集群,实现数据的并行处理。在 MPP 架构中,MPP采用非共享架构(Share Nothing), 每个节点都拥有独立的磁盘存储和内存系统,它们在计算过程中独立运行,不需要关心整个集群的状态,也不关心其他节点存储的数据信息。节点之间通过专用网络或商业通用网络连接,当需要使用其他节点的数据时,通过网络进行数据传输和协同计算。

2023-08-18 21:32:58 8076

原创 Linux - 借助 inotifywait,轻松实现 Linux 文件/目录事件监听

使用 inotifywait 命令时,它会持续监视指定的文件或目录,并在事件发生时输出相关信息。可以根据需要处理输出,例如执行其他命令或触发脚本。如果监视的是目录,则 inotifywait 命令也会观察该目录中的子目录。可以使用 -r​ 选项来递归地监视目录及其子目录中的文件。以上命令将同时监视 a1.txt​、a2.txt​ 和 mydir/​ 中的文件的修改和创建事件。以上命令将监视 myfile.txt​ 文件的修改和创建事件。以上命令将监视 mydir/​ 目录中文件的修改和创建事件。

2023-08-17 21:30:00 8300

原创 Maven - 统一构建规范:Maven 插件管理最佳实践

https://maven.apache.org/plugins/index.htmlMaven 是一个开源的软件构建工具,它支持多种插件,用于帮助开发人员更方便地管理构建过程中所需的各种资源。以下是一些常用的 Maven 插件:这些插件可以帮助开发人员更方便地管理构建过程中所需的各种资源,提高软件构建的效率和质量。我们来看下nacos这个开源项目的plugin是如何使用的。 不得不说还是非常丰富的 。插件介绍maven-jar-pluginhttps://maven.apache.org/plu

2023-08-15 23:30:00 8514

原创 Maven - Maven 核心概念一网打尽:轻松掌握项目构建与管理技巧

Maven 中引入了仓库的概念,开发人员将所编写的 JAR 按照相应格式推送到仓库中。其他开发者需要引用这个 jar 包时,在工程中引用相应依赖,则会先从本地仓库进行下载。对于部分组织或机构,通常会在此基础上额外搭建私人仓库。在引用依赖时会先从私人仓库进行读取,如果未找到再从中央仓库下载至私人仓库,最后再下载到本地仓库。通过这种方式开发者则无需再手动管理繁杂的项目 JAR 包,从而实现更高的效率。一个最基本的 Maven 项目通常应包含如下内容,当我们引用一个模块时,也是通过 AVG 三项内容进行确定举

2023-08-15 21:15:00 7550

原创 Elasticsearch - 闲聊ElasticSearch中的分页

ElasticSearch是一款强大的搜索引擎,它能够帮助我们快速地搜索海量数据。然而,在处理大量数据时,ElasticSearch的性能可能会受到影响。其中一个常见的问题是深度分页,也就是当我们需要获取大量数据时,ElasticSearch需要处理的数据量太大,导致性能下降。Elasticsearch 深度分页问题的本质是在进行分页查询时,由于每个分片都需要生成大量的数据,并将这些数据发送到协调节点进行汇总,因此随着查询深度的增加,每个分片需要生成的数据条数也越来越大,从而导致查询效率降低。

2023-08-15 06:45:00 7723

原创 Maven - 全面解析 Maven BOM (Bill of Materials):打造高效依赖管理与模块化开发

BOM本质上是一个普通的POM文件,区别是对于使用方而言,生效的只有这一个部分。只需要在定义对外发布的客户端版本即可,比如需要在项目中统一所有SpringBoot和SpringCloud的版本我們以 YuDao為例看一下整體結構。

2023-08-15 01:00:00 10213 2

原创 OpenSource - 安全的信创开源CMS_JPress

一个使用 Java 开发的、类似 WordPress 的产品,支持多站点、多语种自动切换等。

2023-08-14 22:45:00 7750

原创 Java Review - 关于代理的二三事儿

代理模式是一种结构型设计模式,其目的是为其他对象提供一种代理以控制对这个对象的访问。在 Java 中,代理模式有两种形式:静态代理动态代理在代理模式中,代理类和目标类之间有一个抽象接口,代理类实现了这个接口,而目标类则实现了具体的业务逻辑。通过代理类调用目标类,可以实现对目标类的访问控制、权限检查、审计等功能。代理模式在 Java 中应用广泛,例如可以使用代理模式来实现对网络请求的缓存、访问控制、限流等功能。静态代理是一种在编译时生成代理类的方式。在静态代理中,代理类和委托类的关系在运行前就确定了。

2023-08-14 20:15:00 7526

原创 Shell - 备份mysql的N种姿势

mysqldump 是一个常用的命令行工具,用于备份和还原 MySQL 数据库。

2023-08-07 22:45:00 8040

原创 OpenSource - 一站式API服务

Crabc是低代码开发平台,企业级API发布管理系统,采用SpringBoot、JWT、Mybatis等框架和SPI插件机制实现。支持接入(mysql、oracle、postgresql、sqlserver、elasticsearch、mongodb)等SQL或/NOSQL数据源, 在编辑框内编写好SQL后即可快速生成Rest接口对外提供服务支持Mybatis中if等标签语法、数据转换、参数取值、 以及复杂的多SQL执行并支持事务, 减少通用接口的SQL编写,让开发人员专注更复杂的业务逻辑实现。

2023-08-05 06:45:00 8057

原创 OpenSource - 分布式重试平台

在当前广泛流行的分布式系统中,确保系统数据的一致性和正确性是一项重大挑战。为了解决分布式事务问题,涌现了许多理论和业务实践,其中BASE理论是目前业界广泛接受的分布式一致性理论。基于BASE理论,采用柔性事务并优先保障系统的可用性和数据的最终一致性已逐渐成为技术共识。为了确保分布式服务的可用性和数据一致性,并防止由于网络抖动、连接超时等问题导致短时不可用的情况,根据"墨菲定律",在核心流程中增加重试和数据核对校验的动作成为提高系统鲁棒性常用的技术方案。在此背景下EasyRetry应运而生。

2023-08-04 23:15:00 8409

原创 每日一博 - Excel导入导出的那点事儿

这种形式的出现是为了突破HSSFWorkbook的65535行局限,是为了针对Excel2007版本的1048576行,16384列,最多可以导出104w条数据;因为所创建的book,Sheet,row,cell等在写入到Excel之前,都是存放在内存中的。POI3.8之后的版本才有的,它可以操作Excel2007以后的所有版本Excel,扩展名是.xlsx。2、当数据量查过7w并且导出的Excel中不牵扯对Excel的样式,公式,格式等操作的情况下,推荐使用。它是POI版本中最常用的方式。

2023-08-01 20:34:14 8069

原创 并发编程 - CompletableFuture

常见的线程创建方式有两种,一是直接继承Thread,另一种是实现Runnable接口。但这两种方式有个缺点,不支持获取线程执行结果。所以在JDK1.5之后,提供了Callable和Future,可以在任务执行后获取执行结果。是一个实现了 Java 8 中接口的类,它代表一个异步计算的结果。它提供了异步编程的能力,可以让开发者在编写代码时更加方便地处理异步操作。CompletableFuture具有以下主要特征:异步编程能力可以通过等方法异步执行任务,不会阻塞当前线程。组合式编程支持。

2023-07-30 22:35:10 8314

原创 每日一博 - How To Improve API Performance

将经常访问的数据存储在缓存中,客户端在访问数据时首先查询缓存。例如 Redis 这样的缓存系统将数据存储在内存中,因此数据访问速度相较于直接访问数据库要快很多。在访问数据库时,我们通常需要从数据库中读取数据。异步记录日志先将日志信息存储在内存中的无锁缓冲区,然后立即返回。当查询结果过多时,将结果分为多个页面进行显示,可以有效地提高系统的响应速度。这样,系统可以逐步向客户端返回结果,使得用户能够更快地查看和处理数据。运用 gzip 等方法对请求和响应进行压缩,从而减小传输数据的体积,提高上传和下载速度。

2023-07-29 17:03:02 8242

Scalable IO in Java

NIO - Scalable IO in Java

2023-11-10

腾讯万亿级 Elasticsearch 架构实践

腾讯万亿级 Elasticsearch 架构实践

2023-07-24

实时分析引擎&实时分析引擎

实时分析引擎

2023-07-24

X86-NFS rpm包

gssproxy-0.7.0-21.el7.x86_64.rpm keyutils- libbasicobjects-0 libcollection-0.6 libevent-2.0.21-4 libini_config libnfsidmap libpath_utils-0.2 libref_array-0.1. libtirpc-0.2.4-0. libverto-libeventm nfs-utils-1.3.0-0m quota-4.01-14.ns7 quota-nls-4.01-14 rpcbind tcp_wrappers

2020-11-24

中标龙芯-MIPS- NFS rpm包

gssproxy-0.7.0-4.ns7_4.mips64 keyutils-1.5.8-3. libbasicobjects-0 libcollection-0.6 libevent-2.0.21-4 libini_config-1.3 libnfsidmap-0.25- libpath_utils-0.2 libref_array-0.1. libtirpc-0.2.4-0. libverto-libeventm nfs-utils-1.3.0-0m quota-4.01-14.ns7 quota-nls-4.01-14 rpcbind-0.2.0-42. tcp_wrappers-7.6

2020-11-24

mybatisSource.zip

MyBatis源码功能演示环境 ,演示MyBatis的Executor 、StatementHandler 、 SQL映射、对象转换 等核心功能

2020-06-14

apache-tomcat-8.5.50-src.zip

Tomcat启动流程分析 组件的生命周期管理 用Lifecycle管理启动、停止、关闭 Lifecycle接口预览 几个核心方法 Server中的init方法示例 为啥StandardServer没有init方法 LifecycleBase中的init与initInternal方法 为什么这么设计? 分析Tomcat请求过程 链接器(Connector)与容器(Container) 解耦 Connector设计 监听服务端口,读取来自客户端的请求 将请求数据按照指定协议进行解析 根据请求地址匹配正确的容器进行处理 将响应返回客户端 Container设计 Servlet容器的实现。

2020-06-02

「Tomcat源码剖析」.pdf

Tomcat源码剖析 : 整体架构 层层分析 源码解析 架构分析 (Http服务器功能:Socket通信(TCP/IP)、解析Http报文 Servlet容器功能:有很多Servlet(自带系统级Servlet+自定义Servlet),Servlet处理具体的业务逻辑)

2020-06-01

Jest-5.3.4.zip

Jest是Elasticsearch 的Java Http Rest 客户端。 ElasticSearch已经具备应用于Elasticsearch内部的java API,但是Jest弥补了ES自有API缺少Elasticsearch Http Rest接口客户端的不足。 Jest 配置ES 集群 示例代码 及源码解读 - 核心原理 - NodeChecker源码解读 -

2020-01-19

MQ对比:Kafka VS Rocketmq VS Rabbitmq.pdf

MQ对比:Kafka VS Rocketmq VS Rabbitmq 超详细 ,值的收藏,参考资料

2019-11-04

elasticsearch-analysis-ik-6.4.1.zip

修改ik分词器源码,支持从mysql中每隔一定时间,自动加载新的词库

2019-08-20

Nginx1.14.2 + zlib + pcre + openssl

1. nginx 主软件 和 3个依赖包 zlib + pcre + openssl

2019-03-12

Spring4CachingAnnotationsExample

Spring4CachingAnnotationsExample的示例,通过Java注解的方式整合EhCache框架

2017-10-04

ORACLE_AWR报告详细分析

ORACLE_AWR报告详细分析

2016-09-28

Java反编译工具

jd-gui.exe使用C++开发,主要具有以下功能: 一、支持众多Java编译器的反编译; 二、支持对整个Jar文件进行反编译,并本源代码可直接点击进行相关代码的跳转;

2015-06-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除