自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

为无为,事无事,味无味。

大小,多少,抱怨,以德。图难乎,其易也;为大乎,其细也;天下之难,作于易;天下之大,作于细。是以圣人终不为大,故能成其大。夫轻诺,必寡信;多易必多难。是以圣人犹难之,故终无难矣。

  • 博客(1406)
  • 资源 (6)
  • 收藏
  • 关注

原创 合格程序员每天每周每月每年应该做的事

程序员每天该做的事 1、总结自己一天任务的完成情况 最好的方式是写工作日志,把自己今天完成了什么事情,遇见了什么问题都记录下来,日后翻看好处多多 2、考虑自己明天应该做的主要工作 把明天要做的事情列出来,并按照优先级排列,第二天应该把自己效率最高的时间分配给最重要的工作 3、考虑自己一天工作中失误的地方,并想出避免下一次再犯的方法 出错不要紧,最重要的是不要重复犯相同的错误,那是愚蠢 4、考虑自

2009-11-18 12:45:00 2163 7

原创 实战:软件架构设计【自定义序号生成器】

本文介绍了两种基于时间戳+序列号的64位ID生成方案:方案一(OptimizedMySnowID4Second_32_32)采用32位秒级时间戳+32位序号,适合超高并发但存在并发递增问题;方案二(SequenceGenerator)使用44位毫秒时间戳+20位序号,通过CAS实现无锁并发,具备时钟回拨检测和异常记录功能。通过并发测试验证了两者的唯一性,建议根据场景选择:前者适合大容量ID需求,后者适合严格递增场景。文章还提供了分布式ID生成器的升级方向,建议结合Snowflake特性封装更完整的解决方案。

2025-06-08 18:40:15 1042 1

原创 科普文:软件架构设计【一文搞懂Snowflake:雪花算法】

【分布式ID生成器Snowflake算法详解】 Snowflake是Twitter开源的分布式ID生成算法,采用64位长整型结构: 1位符号位 + 41位毫秒时间戳(69年) + 10位机器ID(5位数据中心+5位机器) + 12位序列号(每毫秒4096个ID)。其核心优势包括: 高性能:本地生成无网络开销,单机QPS可达400万+ 趋势递增:利于数据库索引优化 分布式支持:通过机器ID区分节点 主要挑战是时钟回拨问题,解决方案包括: 最大容忍回拨时间检测 原子操作优化序列号生成 异常处理机制 典型应用场景

2025-06-08 17:39:25 773

原创 科普文:Java基础系列之【java加密/解密、签名之SHA:SHA-256、SHA-512、SHA3-256与SHA3-512】

SHA(Secure Hash Algorithm)安全散列算法家族是现代密码学中最重要的哈希函数系列之一,由美国国家标准与技术研究院(NIST)制定并发布。该算法家族经历了多次演进,目前主要分为SHA-2和SHA-3两大系列。SHA-2 家族: SHA-256 和 SHA-512 都属于 SHA-2 标准(发布于 2001 年,作为 SHA-1 的替代)。它们基于 Merkle-Damgård 结构,并使用类似于 AES 加密算法的位运算和逻辑函数。SHA-3 家族: SHA3-256 和 SH

2025-06-07 22:51:13 617

原创 科普文:软件架构设计【安全设计:Java动态编译JavaCompiler实现代码隐藏】

* 执行ServiceConfig类* 第一次运行时会自动创建以下文件:* target/classes/com/zxx/study/rjava/codeBehind/spi/MyServiceImpl.class* data/my/key.enc(包含加密密钥)* data/my/MyServiceImpl.enc(加密后的类文件)* 注意事项:* 在生产环境中,请确保:* 密钥不应硬编码在代码中* 应使用专业的密钥管理系统(如HSM或KeyStore)* 加密类应该通过混淆工具处理*

2025-05-31 18:18:30 878

原创 科普文:软件架构设计【安全设计:Java动态编译JavaCompiler技术解析以及代码隐藏】

【摘要】本文详细解析了Java代码隐藏技术的实现方案,通过动态生成加密代码、编译时加密字节码、自定义类加载器解密等步骤构建安全架构。重点剖析了JavaCompiler API的核心原理与使用流程,包括SPI机制、编译任务配置和诊断信息收集。文章对比了该技术的性能优劣(50-200ms/次编译),列举了在线编程环境等典型应用场景,并针对常见错误提供解决方案。最后从对象复用、并行编译、内存缓存等6个维度提出优化方案,实测可降低50%-70%内存消耗,提升3-5倍吞吐量,强调需结合安全沙箱和版本控制使用。

2025-05-31 18:01:42 924

原创 科普文:软件架构设计【安全设计:Java代码隐藏技术】

本文介绍了Java代码隐藏技术的多种实现方法,包括混淆(ProGuard)、加密(AES算法)、本地编译(JNI)等技术手段。重点分析了字节码操作技术(ASM/Javassist)和动态编译体系的应用场景,提出组合防护策略:建议对核心模块采用ASM+加密+自定义加载器的三重防护架构。文章同时指出代码隐藏的局限性(无法完全防止逆向工程)、性能影响和法律风险,强调需根据安全等级要求权衡选择,并给出商业级方案建议(如ProGuard+DexGuard组合)和安全实施注意事项(避免反射高频调用、定期更新混淆规则等)

2025-05-31 14:49:45 920

原创 科普文:软件架构设计【安全设计:代码隐藏技术】

《源代码安全防护的多层次技术策略》摘要 在数字化时代,源代码作为企业核心资产面临严峻安全挑战。本文系统探讨了代码隐藏技术的防护体系:首先阐明代码隐藏的必要性,即保护知识产权和商业机密;其次详细解析了技术实现原理,包括信息嵌入、加密混淆等核心方法;进而对比分析了各类实现方式的优劣,指出需在安全性与可维护性间取得平衡;最后提出了包含法律合规、定期评估等要素的实施框架。研究表明,采用注释隐藏、变量编码等组合策略,配合动态监测机制,可构建适应逆向工程威胁的立体防护体系,为软件企业提供全方位的源代码保护解决方案。

2025-05-31 14:28:01 660

原创 Wireshark大白鲨抓包工具,请认准下载地址,不要被骗

2、选择菜单栏上 捕获 -> 选项,勾选WLAN网卡。这里需要根据各自电脑网卡使用情况选择,简单的办法可以看使用的IP对应的网卡。点击Start,启动抓包。说明:数据包列表区中不同的协议使用了不同的颜色区分。3、wireshark启动后,wireshark处于抓包状态中。按照系统版本选择下载,下载完成后,按照软件提示一路Next安装。如上面连接文章所示,某度简直是狗改不了吃屎,恶心至极。请广大网友认准下载地址,不要被骗。核心区域,每一行就是一个数据包。数据包对应的字节流,二进制。指定过滤条件,过滤数据包。

2025-05-28 15:09:36 383

原创 臭不要脸:某度死性不改,恶意广告

点击第一个下载的工具。

2025-05-28 14:59:16 269

原创 科普文:软件架构设计【一文搞懂UUID:主流开发语言和数据库对UUID的支持】

UUID类型选择与数据库支持情况摘要 本文系统介绍了8种UUID版本特性及主流开发语言和数据库的支持情况。根据业务场景推荐:优先选择v4(随机)或v7(时间戳有序)版本;确定性生成推荐v3/v5(命名空间哈希)。数据库支持方面,PostgreSQL对UUID支持最完善,MySQL/Oracle需注意存储优化。文章详细对比了Java、JavaScript、Go、Python、PHP等语言对UUID版本的支持差异,并提供了各数据库生成UUID的具体方法,包括PostgreSQL的uuid-ossp扩展使用指南。

2025-05-27 17:19:47 952

原创 科普文:软件架构设计【一文搞懂UUID:5种RFC 4122标准UUID和3种草案版本UUID】

UUID(Universally Unique Identifier)目前共有 ‌8 个正式版本‌(Version 1 至 Version 8),每个版本有不同的生成规则和应用场景。UUID 的版本标准化状态需要特别注意——‌V6、V7、V8 目前尚未成为正式的国际标准(RFC 4122)‌,但已进入 IETF 的草案阶段,未来可能被标准化。正式标准‌:V1-V5(RFC 4122)‌未来趋势‌:V6-V8 草案可能在 2023-2024 年正式发布为 RFC 标准‌当前建议‌:✅ 生产环境优先

2025-05-27 16:44:05 671

原创 科普文:软件架构设计之应用安全【身份验证(Authentication):2FA双因素认证详解】

前面我们详细梳理了OTP一次性密码,这里再看看双因素认证(2FA):2FA是结合两种不同的认证因素(如密码和OTP),增强安全性的身份验证方法。双因素认证,英文名称, 简称2FA。常规密码验证码使用2FA的主要目的是增强账户的安全性,提供额外的保护层,以防止未经授权的访问和潜在的安全威胁。降低了密码盗窃的风险弱密码尽管2FA并,但它是一种非常有效的方法,可以显著提高账户的安全性。通过多因素验证,即使密码泄露,攻击者也难以轻松进入您的账户。

2025-05-06 12:48:14 965 1

原创 科普文:软件架构设计之应用安全【身份验证(Authentication):OTP一次性密码 TOTP详解】

一次性密码(OTP,One-Time Password)是一种用于身份验证的安全机制,通常用于提高用户账户的安全性。前面我们一步一步地分析一下OTP的工作原理。这种机制能有效防止重放攻击和钓鱼攻击,因为每个密码只使用一次且是短暂有效的。在这里我们再继续看看OTP的另一种方式RFC 6238(TOTP)。

2025-05-06 12:25:01 1246

原创 科普文:软件架构设计之应用安全【身份验证(Authentication):OTP一次性密码 HOTP详解】

动态口令(OTP)有一个同名确不同翻译的前辈,一次性密码(OTP, One-Time Pad),也叫密电本,是一种应用于军事领域的谍报技术,即对通信信息使用预先约定的一次性密电本进行加密和解密,使用后的密电本部分丢弃不再使用,能够做到一次一密。可以做到一次一个动态口令,使用后作废,口令长度通常为6-8个数字,使用方便,与通常的静态口令认证方式类似,使用方便与系统集成好,因此OTP动态口令技术的应用非常普遍,可以应用于多种系统渠道使用,如:Web应用、手机应用、电话应用、ATM自助终端等。

2025-05-06 11:38:18 765

原创 科普文:软件架构设计之应用安全【身份验证(Authentication):OTP一次性密码 TOTP和HOTP小结】

OTP生成方式:通常基于算法生成,包括TOTP和HOTP两种方式。 生成过程不依赖外部网络,具有更高的独立性。TOTP(基于时间的 OTP,计时使用):根据当前时间和共享密钥生成,基于RFC6238协议。HOTP(基于事件的 OTP,计次使用):根据计数器值和共享密钥生成,基于RFC4266 协议。

2025-05-05 19:30:20 858

原创 科普文:软件架构设计之应用安全【身份验证(Authentication):短信验证、图片验证、TOTP一次性密码、2FA双重身份验证等小结】

为了确保应用程序的安全性和保护用户数据的隐私,开发者需要使用一些必备的身份验证应用安全技术。身份验证(Authentication)是网络安全的核心组成部分,指的是确认用户或系统的身份是否有效的过程。通过身份验证,可以确保只有授权用户才能访问敏感数据或系统资源。随着网络攻击手段的不断演进,传统的身份验证方式面临越来越多的挑战,因此多种身份验证机制相继出现,以应对日益复杂的安全威胁。

2025-05-05 16:21:23 1541

原创 科普文:一文搞懂Spring中常用的注解【‌@EventListener 注解的原理、核心类、应用场景】

EventListener 标记方法作为事件监听器,用于处理应用程序事件。通过松耦合方式实现事件驱动编程,适用于多组件协作场景。需注意同步/异步控制及条件表达式优化,结合具体业务合理设计事件链。我们继续梳理@EventListener的原理、核心类、优缺点、应用场景和注意事项。

2025-05-04 18:16:55 628

原创 科普文:一文搞懂Spring中常用的注解【@Profile、@PropertySource/ @PropertySources、@ConfigurationProperties】

@Profile 多环境隔离 切换开发/生产环境数据源@PropertySource 自定义配置文件加载 加载独立模块配置(如 redis.properties)@ConfigurationProperties 结构化配置映射 封装数据库连接参数对象@ImportResource 传统 XML 配置迁移 整合遗留系统的 XML 配置文件注意事项总结‌配置优先级:@PropertySource 默认优先级低于 application.properties,可通过 @Order 调整加载顺序。‌

2025-05-04 14:52:47 1004

原创 科普文:一文搞懂Spring中常用的注解【@PostConstruct、@DependsOn、@Order注解嵌套使用解决Bean加载优先级问题】

解决Bean加载优先级问题@PostConstruct、@DependsOn、@Order注解嵌套使用解决Bean加载优先级问题。注解作用域分析‌注解 作用层级 核心用途 生效阶段@DependsOn Bean 定义级别 显式声明依赖的 Bean,确保被依赖的 Bean 先初始化 Bean 实例化前 @Order Bean 注入/执行顺序 控制同类 Bean 在集合中的排列顺序或组件执行优先级(如拦截器链) Bean 注入时或组件调用时 @PostConstruct Bean 实例级别 标记初

2025-05-04 11:22:22 1244

原创 科普文:一文搞懂Spring中常用的注解【@Component、@Order、@DependsOn 三个注解的原理、核心类、应用场景】

DependsOn和@Order是用来解决Bean加载顺序问题的。同时,@Component是用于将类标记为Spring容器的组件,让Spring能够自动扫描并注册为Bean。@Order的使用场景,比如拦截器、过滤器、监听器的执行顺序,以及集合排序的情况。

2025-05-04 11:00:36 715

原创 科普文:一文搞懂Spring中常用的注解【@lazy注解的原理、核心类、应用场景】

前面有对java注解、spring注解做过梳理,这里我们再看看Spring框架中@Lazy注解的原理、核心类、应用场景。

2025-05-04 10:26:31 1081

原创 实战:软件架构设计之【Spring Boot 动态注册Controller:实现Mock Server】

例如,提供一个REST接口,允许用户发送一个POST请求来创建一个新的Mock端点,包括路径、方法、响应体等信息。或者使用配置文件,在启动时加载多个预定义的Mock接口。Mock Server在测试过程中快速创建临时的API端点,模拟各种响应,而不需要预先在代码中定义这些Controller。前面梳理了Spring Boot 动态注册Controller,这里我们来实现一个Mock Server,体验一下动态注册Controller。在单元测试或集成测试中动态创建接口,验证系统对不同响应的处理逻辑。

2025-04-29 15:41:41 1467

原创 科普文:软件架构设计之【Spring Boot 动态注册Controller】

Spring Boot 动态注册 Controller 的核心原理是 ‌在运行时通过编程方式向 Spring 容器注册 Bean‌,并利用 Spring MVC 的 RequestMappingHandlerMapping 动态添加请求映射。‌传统静态注册‌:通过 @Controller/@RestController 注解在启动时扫描并注册 Bean。‌动态注册‌:绕过注解扫描,手动创建 Controller 的 Bean 定义,并‌ 实现运行时灵活性,适用于插件化、多租户等动态场景。其核心依赖。

2025-04-29 14:48:08 937

原创 科普文:软件架构设计之【Spring MVC小结】

SpringMVC 注解通过简化配置和增强语义,显著提升了开发效率。在 Spring 的基本架构中, Spring Web MVC 也就是SpringMVC,它是属于Spring基本架构里面的一个组成部分,属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面,所以我们在后期和 Spring 进行整合的时候,几乎不需要别的什么配置。

2025-04-29 10:23:11 691

原创 科普文:HTTP协议【GET、DELETE一定没有请求体RequestBody吗?】

A payload within a GET request message has no defined semantics; sending a payload body on a GET request might cause some existing implementations to reject the request.可以看到,RFC7231规范并没有说明GET请求不能携带body(A payload within a GET request message has no

2025-04-29 09:18:42 830

原创 科普文:Java基础系列之【线程和线程池伪共享:ThreadLocal、InheritableThreadLocal、TransmittableThreadLocal小结】

‌ThreadLocal‌:单线程数据隔离(如 Spring 的 RequestContextHolder)。‌InheritableThreadLocal‌:简单父子线程数据传递(如单次任务拆分)。‌TransmittableThreadLocal‌:线程池、异步任务、分布式链路跟踪(如日志 traceId 透传)‌类别‌ ‌优点‌ ‌缺点‌‌ThreadLocal‌ 轻量级、线程隔离性强、无锁性能高 父子线程无法传递数据、线程池场景失效、内存泄漏风险需手动清理‌InheritableThrea

2025-04-28 20:33:13 1119 1

原创 科普文:软件架构设计之【国内最好的Java 权限认证框架Sa-Token】

​Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权 等一系列权限相关问题。官方地址:Sa-Token最新版本:sa-token-doc/start/new-version.md · dromara/Sa-Token - Gitee.com​

2025-04-28 13:11:19 1096

原创 科普文:OAuth 2.0认证框架小结

OAuth 2.0 是一种 ‌‌,也是一个开放标准,允许第三方应用在用户授权下访问其资源服务器的数据,而无需直接获取用户凭据(如密码)。例如:用户把照片、视频、联系人数据存储在内容托管云服务R(Resource)中的Picture、Video、Contact三个模块中;用户使用在线照片打印服务P(Printer),用户需要让P服务读取R服务中的照片进行打印,但不想让P服务读取R服务中的其他数据。

2025-04-28 12:51:00 961

原创 科普文: Java web应用性能分析【Java性能优化:Java高效NIO之IO模型和零拷贝】

传统IO模式,在处理数据流过程中,线程处于阻塞状态,直到流处理(读取后写入)完毕,所以一个线程只能处理一个IO任务,如果IO未准备就绪无数据(或不可写)线程只能一直等待,直到可以有数据(或可写);NIO模式,采用IO多路复用技术,使用选择器(Selector)监控一组IO,虽然Selector线程也处于阻塞状态,但一个线程可以同时处理多个IO任务,当IO就绪时,Selector返回就绪的IO并由程序进行处理。

2025-04-26 14:32:18 784

原创 科普文: Java web应用性能分析【Java性能优化:Java高效NIO之直接内存映射】

通过用户缓存和Kernel缓存的共享,用户程序的操作直接作用到Kernel内存,无需进行内存拷贝。使用内存映射文件处理磁盘上的文件时,无需对文件执行IO操作,也不需要再为文件进行内存分配、加载和释放等管理工作,因此此模式在处理大量数据的文件时能起到高效的作用。例如,对于数据库服务等比较复杂的应用,程序根据业务更懂如何使用内存,为了提高性能,希望绕过内核缓存区,由自己在用户空间管理IO缓存,包括缓存机制和写延迟机制等,以支持事务、提高查询缓存命中率等。才是提供实际功能的其直接子类,他同时实现了。

2025-04-26 14:14:27 648

原创 科普文: Java web应用性能分析【Java性能优化:Undertow踩坑小结】

关于Undertow,前面已经做了梳理,这里整理一下用Undertow碰到的三个坑。1.spring.mvc.servlet.load-on-startup=1   对undertow 无效2.文件上传报错MultipartException3.静态资源报错404

2025-04-26 14:06:24 1286

原创 科普文: Java web应用性能分析【Java性能优化:Undertow性能调优小结】

性能调优效果对比优化项 默认配置 优化后配置 QPS提升Worker线程数 CPU*8 CPU*4 +15%~20%直接内存缓冲区 堆内存 直接内存 +30%HTTP/2支持 关闭 启用 +25%响应压缩阈值 无压缩 >10KB启用 带宽减少40%Undertow的优势‌:‌轻量级和高性能‌:Undertow基于非阻塞I/O模型,具有低资源消耗和高并发处理能力。‌支持HTTP/2和WebSockets‌:开箱即支持HTTP/2和WebSockets,无需重写启动类路径‌。‌可嵌入式‌:只

2025-04-26 13:12:34 590

原创 科普文: Java web应用性能分析【Java性能优化:传统IO、堆外内存 ByteBuffer.allocateDirect、MappedByteBuffe的io操作】

传统 IO、堆外内存 (直接内存 ByteBuffer.allocateDirect、内存映射MappedByteBuffer)的IO操作。如果你的应用主要涉及小文件处理或者需要频繁的随机访问,传统的IO可能就足够了。对于大文件或者需要高速数据传输的应用,直接内存的ByteBuffer或内存映射的MappedByteBuffer可能是更好的选择。直接内存更适合于需要频繁读写操作的场景,而内存映射更适合于大文件的随机访问。三种方式都有其独特的优势和适用场景。

2025-04-26 10:01:02 880

原创 科普文: Java web应用性能分析【Java性能优化:堆外内存 ByteBuffer.allocateDirect、MappedByteBuffe的io操作】

在Java中,内存管理主要通过垃圾回收器(Garbage Collector)进行,也就是jvm的运行时区Runtime Data Area。然而,有时我们需要直接管理内存,以实现更高效的性能或满足特定需求。这就是堆外内存的用武之地。堆外内存是Java堆内存之外的内存空间。与堆内存不同,堆外内存的分配和释放不由Java的垃圾回收器管理。这意味着,一旦你分配了堆外内存,就意味着你放弃了java自带的内存管理机制GC,所以需要你手动释放,否则可能会导致内存泄漏。

2025-04-26 09:34:24 1035

原创 科普文: Java web应用性能分析【Java性能优化:纯java编程的优化方法论小结】

switch 优化: 使用 switch 代替多个 if-else,提高分支预测效率。合理配置容器: 设置合适的初始容量,减少扩容带来的性能损耗。并行处理: 利用多线程和 Fork/Join 框架,充分利用多核 CPU。锁粒度优化: 使用细粒度锁和读写锁,减少线程竞争。池化资源: 使用线程池、数据库连接池、对象池,减少资源创建和释放的开销。直接内存: 使用 ByteBuffer.allocateDirect() 进行高效 I/O 操作。日志优化: 使用 isDebugEnabled 检查、占位符

2025-04-25 17:25:21 879

原创 实战: Java web应用性能分析之【springboot自定义Starter 】

前面我们梳理springboot自动装配的starter原理,并分析springboot如何支持tomcat、jetty、undertow三款内嵌web服务器。这里我们一起看看如何自定义一个starter。Starter 的核心目标是简化依赖管理和自动配置逻辑,我们可通过自定义 Starter 实现通用功能的模块化封装。当然其核心原理spi,这里就不再展开。我们这里还是以springboot2.X为例,构建一个自定义的starter,核心代码实现MyServiceAutoConfiguration

2025-04-25 13:11:51 988

原创 科普文: Java web应用性能分析之【springboot2.6、2.7、3.0的starter自动装配小结】

关于springboot2.6、2.7、3.0、3.5等的历史和特性,有兴趣的可以去看看前面的文章,这里我们做一个小结。即使2.6的支持已经到期‌,‌Spring Boot的自动装配主要通过@注解触发,其中是关键。‌稳定性与性能‌:Spring Boot 3.x版本因其对Java 17的支持和优化对Spring Framework 6的支持,被认为是当前最稳定的版本,适合需要高性能和长期维护的项目。‌社区支持‌:尽管2.x版本仍然有一定的市场占有率,但3.x版本因其最新的功能和性能优化,逐渐成为社区和企业

2025-04-25 11:33:25 907

原创 科普文: Java web应用性能分析之【java线程池中线程共享数据总结】

常见的并发问题竞态条件(Race Condition):多个线程同时访问和修改同一数据,导致结果依赖于线程的执行顺序。内存一致性错误(Memory Consistency Errors):一个线程写入的值可能在另一个线程中看不到,除非使用适当的同步机制。死锁:两个或多个线程相互等待对方释放资源,导致程序无法继续执行。java线程池中线程共享数据分类在分析并发问题前,我们有必要对java线程池中线程共享数据做一个分类,以便于更好的理解线程池和并发问题。下面从 ‌“共享方式”‌(如显式同步

2025-04-24 22:26:15 746

原创 实战:Java web应用性能分析之【死扣代码性能:日志输出为什么要用isDebugEnabled() 】

当你在用Arthas、JPfofile等性能分析工具分析服务端应用性能时可以看到应用运行时的状态,耗时,从而及时发现性能瓶颈。以我们可以看到trace监控下,每个方法内部的耗时情况。可以明显的观察到:加了isDebugEnabled判断,在info级别时,只做了debug判断,并未执行日志拼接操作;而不加isDebugEnabled判断,info级别时,没有做debug判断,并执行日志拼接操作。至此我们再去看看开发手册,是不是就能理解为什么要这么规定。

2025-04-24 10:59:44 682

Modultils 工具源码分析之 insmod 篇

Modultils 工具源码分析之 insmod 篇

2024-11-22

El caso de las hojas de ruta seguras para la memoria

El caso de las hojas de ruta seguras para la memoria Por qué tanto los ejecutivos de alto nivel como los expertos técnicos deben tomarse en serio la codificación segura para la memoria

2024-11-03

The Case for Memory Safe Roadmaps 内存安全案例路线图

The Case for Memory Safe Roadmaps 内存安全案例路线图

2024-11-03

java开发手册最新版黄山版

java开发手册最新版--黄山版

2024-07-19

mysql-connector-net-5.2.5-src.zip

mysql connector net 5.2.5 装上就可用...

2009-10-29

Devexpress自学案例

Devexpress自学案例 请大家 多多指教

2009-07-28

Sybase语法大全.pdf

Adaptive Server Enterprise参考手册

2012-03-08

2009届应届生求职指南

涵盖2009年各行业,各职业介绍,以及求职准备,求职注意事项,简历制作,面试技巧等等各方面的信息。

2008-12-19

jsp+servlet+javabean.ppt

9.1 Servlet概述 9.2 Servlet的基本结构与成员方法 9.3 调用Servlet的多种方法 9.4 两种模式的JSP技术 9.5 Servlet模式的留言板案例 9.6 Servlet的会话跟踪 习题9

2010-04-02

Devexpress学习篇(请大家多多指教)

Devexpress学习篇(请大家多多指教)博客文章 因为大家看不到图片,所以我将博客文章保存在word里面 请大家 下载一下啊 帮帮忙看看 多谢指教

2009-07-28

空空如也

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

TA关注的人

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