基本功 | Java即时编译器原理解析及实践

一、导读 常见的编译型语言如C++,通常会把代码直接编译成CPU所能理解的机器码来运行。而Java为了实现“一次编译,处处运行”的特性,把编译的过程分成两部分,首先它会先由javac编译成通用的中间形式——字节码,然后再由解释器逐条将字节码解释为机器码来执行。所以在性能上,Java通常不如C++这类编译型语言。 为了优化Java的性能…

hello hello 发布于 2023-08-24

Java中9种常见的CMS GC问题分析与解决

1. 写在前面 | 本文主要针对 Hotspot VM 中“CMS + ParNew”组合的一些使用场景进行总结。重点通过部分源码对根因进行分析以及对排查方法进行总结,排查过程会省略较多,另外本文专业术语较多,有一定的阅读门槛,如未介绍清楚,还请自行查阅相关材料。 | 总字数 2 万左右(不包含代码片段),整体阅读时间约 30min…

hello hello 发布于 2023-08-24

Java 文档教程大汇总

基础 On Java 8 《On Java 8》的中文版,是 Java8(主流 Java 版本)的在线学习手册,支持在文档中搜索内容,适合新手入门 Java。 原本是个开源项目,但最近由于出版了纸质书籍,目前项目应该不再维护了。 JavaGuide 全网知名的 Java 学习 + 面试指南,一份涵盖了大部分 Java 程序员所需要掌握的核心知识的电子文档。…

hello hello 发布于 2023-08-24

如何优雅地记录操作日志?

操作日志几乎存在于每个系统中,而这些系统都有记录操作日志的一套 API。操作日志和系统日志不一样,操作日志必须要做到简单易懂。所以如何让操作日志不和业务逻辑耦合,如何让操作日志的内容易于理解,让操作日志的接入更加简单?上面这些都是本文要回答的问题,主要围绕着如何“优雅”地记录操作日志展开描述。 1. 操作日志的使用场景 例子 系统日志和操作日志的区别…

hello hello 发布于 2023-08-23
hello hello 发布于 2023-08-23

新一代垃圾回收器ZGC的探索与实践

ZGC (The Z Garbage Collector)是JDK 11中推出的一款低延迟垃圾回收器,它的设计目标包括: 停顿时间不超过10ms; 停顿时间不会随着堆的大小,或者活跃对象的大小而增加; 支持8MB~4TB级别的堆(未来支持16TB)。…

hello hello 发布于 2023-08-22

Java线程池实现原理及其在美团业务中的实践

随着计算机行业的飞速发展,摩尔定律逐渐失效,多核CPU成为主流。使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器。J.U.C提供的线程池:ThreadPoolExecutor类,帮助开发人员管理线程并方便地执行并行任务。了解并合理使用线程池,是一个开发人员必修的基本功。…

hello hello 发布于 2023-08-22
hello hello 发布于 2023-08-15

史上最全的JVM配置参数大全

1、 JVM 参数配置 我们学习Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分析原因并解决之,JVM监控与调优主要的着眼点在于如何配置、如何监控、如何优化3点上。 在Java虚拟机的参数中,有3种表示方法 标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;…

hello hello 发布于 2023-08-15

JDK 17实践ZGC:亚毫秒停顿

自 2014 年发布以来, JDK 8 一直都是相当热门的 JDK 版本。其原因就是对底层数据结构、JVM 性能以及开发体验做了重大升级,得到了开发人员的认可。但距离 JDK 8 发布已经过去了 9 年,那么这 9 年的时间,JDK 做了哪些升级?是否有新的重大特性值得我们尝试?能否解决一些我们现在苦恼的问题?带着这份疑问,我们进行了 JDK…

hello hello 发布于 2023-08-14
上一页 下一页