编程语言:Java
JDK11 与 JDK8 特性差异浅谈
从 JDK8 到 JDK11 到 JDK17 再到目前的 JDK21 ,Java 的发展趋势显示出对性能优化、编程便利性和功能增强的持续关注。
Java面向容错编程之重试机制
容错编程是一种重要的编程思想,它能够提高应用程序的可靠性和稳定性,同时提高代码的健壮性。本文总结了一些作者在面对服务失败时如何进行优雅重试,比如aop、cglib等同时对重试工具\x5c组件的源码和注意事项进行总结分析。
一文详解 Java 限流接口实现
本文介绍的实现方式属于应用级限制,应用级限流方式只是单应用内的请求限流,不能进行全局限流。
使用火山引擎 APMPlus 解决抖音Top 1 Java 崩溃的通用优化方案
本文针对抖音 Android 版近期面临的 Java Top 1 崩溃问题,提供了具体的分析过程、优化思路和解决方案,并分享了已集成该方案的实用工具。
Java表达式引擎选型调研分析
该项目组调研了多种表达式引擎,包括AviatorScript、MVEL、OGNL、SpEL、QLExpress、JEXL、JUEL和Janino。这些引擎具有不同的特性和适用场景。AviatorScript和SpEL支持集合、数组和字符串匹配的操作符;MVEL和OGNL用于获取和设置Java对象属性;QLExpress是阿里的动态脚本引擎解析工具;JEXL和JUEL是实现表达式语言的工具;Janino是一个快速的Java编译器兼表达式引擎。通过引入这些引擎,可以提高系统的灵活性和响应能力。
浅析JAVA日志中的几则性能实践与原理解释
本篇文章通过几个技术点说明日志记录过程中的性能实践,计算机领域的性能往往都遵循着冰山法则,即你能看得见的、程序员能感知的只是其中的一小部分,还有大量的细节隐藏在冰山之下。
Vim 一下日志文件,Java 进程没了?
讲述一次端口异常的告警,发现 Java 进程被异常杀掉。根因是有开发同学在问题机器上 vim 查看了 nginx 日志。
ASM字节码操作类库:打开java语言世界通往字节码世界的大门
授人以鱼不如授人以渔,应用asm的文章有很多,简单demo的也很多,那么ASM都具备哪些能力呢?如何去学习编写ASM代码呢?什么样的情景需要用到ASM呢?
Java中保持扩展性的几种套路和实现
在日常的开发中,作者总结了些平常用到的一些低成本、保持扩展性的套路,分享出来,欢迎大家讨论。
JDK11升级JDK17最全实践干货来了
2021年9月14日,Oracle发布了可以长期支持的JDK17版本,那么从JDK11到JDK17,到底带来了哪些特性呢?亚毫秒级的ZGC效果到底怎么样呢?值得我们升级吗?而且升级过程会遇到哪些问题呢?带着这些问题,本篇文章将带来完整的JDK11升级JDK17最全实践。
Javaagent入门
Java Agent 是 jdk1.5 以后可以在运行时 hook 字节码的技术。
字节码增强技术在java中的应用
我们都知道java是一门解释型语言,大致执行过程如下图所示,首先需要将.java文件编译成字节码文件,然后再通过jvm解释执行,最终运行在对应的操作系统上。这也是java号称一次编译,到处运行的关键。同时我们也能看到,其中的关键是java通过遵循jvm规范而编译出来的字节码文件,它是实际被解释执行的逻辑。
Java多线程之CompletableFuture
CompletableFuture是java.util.concurrent库在java 8中新增的主要工具,同传统的Future相比,其支持流式计算、函数式编程、完成通知、自定义异常处理等很多新的特性。Future接口相对简单些,提供了取消(cancel)、获取结果(get)、检测是否完成或者取消(isCancelled、isDone)这些方法,Future接口提供了异步获取结果的能力。CompletableFuture还能够将任务放到不同的线程中执行, 既可以在当前线程中直接执行任务,也可以将其放到其他任务线程中执行,这个过程是自动的,无需干预。
CompletableFuture实现了CompletionStage接口和Future接口,前者是对后者的一个扩展,增加了异步回调、流式处理、多个Future组合处理的能力,使Java在处理多任务的协同工作时更加顺畅便利。CompletionStage相当于“阶段”,一个CompletionStage对象是异步计算中的一个阶段,当 一个CompletionStage完成时会触发下一个动作或计算。 CompletionStage解决了Future的一些问题: Future没有提供通知机制,Future是否执行完任务需要不断的检查或者调用get()方法阻塞任务执行,CompletionStage完美的解决了该问题,前一个任务 执行成功后可以自动触发下一个任务的执行,中间无需等待。CompletableFuture 和 FutureTask 同属于 Future 接口的实现类,都可以获取线程的执行结果 。
Java线程和CPU调度
java 中的线程和操作系统中的线程分别存在于虚拟机和操作系统中,一个 Java 线程是直接通过一个操作系统线程来实现的......
Java服务总在半夜挂,背后的真相竟然是...
近期业务反馈Java服务频繁宕机,服务无流量突增,无定时任务,排查发现是crontab任务导致...
我在前端写Java SpringBoot项目
本文采用 Nest + Sequelize + MySQL 框架介绍前端 Node服务端 。Nest 主要使用装饰器语法, 整体开发结构跟 Java SpringBoot极其相似,能一睹服务端开发的结构,更好地做好前后端协作开发。