话题编程语言 › Java

编程语言:Java

带你了解“Java新特性——模块化”

Java平台从Java 8向Java 9及更高版本的进化,其中引入了一个重要的新特性——模块系统。文章详细介绍了模块系统的概念,如主要参数、关键指令,以及模块化策略。此外本文还提供了最佳实践建议,帮助开发者更好地理解和应用Java模块系统。

Java 并发——基石篇(上)

本文主要分析了Java并发体系中的计算机系统层面上的并发问题以及面临的挑战。目标是实现在同一时刻运行更多任务的能力。并行计算提供了解决方案,但也带来了一些问题。文章建议读者深入研究HotSpot JVM 11的源代码,重点关注共享内存多核系统的架构与设计、Java内存模型、线程的创建与停止、synchronized机制、wait和notify/notifyAll机制以及volatile关键字的实现。并强调并发程序设计的复杂性和不确定性,鼓励读者通过下载代码进行编译和调试,以更好地理解核心功能。

Java 并发——基石篇(中)

本文介绍了Java中的并发同步技术synchronized的实现机制。作者指出早期的HotSpot JVM采用解释执行器效率低下,因此转而采用模版执行器。模版执行器通过将Java字节码手动编写为固定模式的机器指令,跳过C/C++层次,提高了执行效率。文章还提到了在OpenJDK中探索monitorenter和monitorexit指令执行的细节过程。通过阅读源码,我们可以了解到JVM中不同解释器的实现方式。

Java 并发——基石篇(下)

这篇文章主要讲解了Java中Object类的wait和notify的实现机制。文章首先介绍了wait和notify的基本概念,并指出它们是基于native实现的。然后详细分析了在HotSpot JVM中的wait和notify的实现逻辑。具体来说,文章解释了wait函数的实现过程,包括判断是否可中断并抛出异常、创建ObjectWaiter对象、将线程添加到等待集合等。最后,文章提到了被notify唤醒后的善后逻辑。

Java日志通关(五) - 最佳实践

作者日常在与其他同学合作时,经常发现不合理的日志配置以及五花八门的日志记录方式,后续作者打算在团队内做一次Java日志的分享,本文是整理出的系列文章第五篇。

虚拟线程:Java的新利器?

作者通过本文梳理了自己对虚拟线程的理解,顺便捋一捋Java线程的过去、现在和未来。

Java日志通关(四) - Logback 介绍

作者日常在与其他同学合作时,经常发现不合理的日志配置以及五花八门的日志记录方式,后续作者打算在团队内做一次Java日志的分享,本文是整理出的系列文章第四篇。

面向Java程序员的Go工程开发入门流程

对于没有Go背景的Java程序员来说,使用Go开发一个可用的程序的速度是肉眼可见的缓慢。但攻克的难点不在于Go语言本身,而是搭建整个工程链路的过程,即所谓的“配环境”。本文将主要讲述如何配出一个适合Go开发的环境。

Java日志通关(三) - Slf4j 介绍

作者日常在与其他同学合作时,经常发现不合理的日志配置以及五花八门的日志记录方式,后续作者打算在团队内做一次Java日志的分享,本文是整理出的系列文章第三篇。

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

本文讲述了Java线程池的实现原理和源码分析以及线程池在业务中的最佳实践。

Java程序陷入时间裂缝:探索代码深处的神秘停顿

我们来想一个问题:当你的Java程序偶然发生短暂的停顿,你会觉得是什么造成了这种现象?大家可能会回答是GC导致的STW。没错,GC确实是可以立刻先怀疑的方向。但是实际上,Java程序发生短暂停顿有非常多的可能性,我们今天来聊聊这个话题。

Java日志通关(二) - Slf4j+Logback 整合及排包

作者日常在与其他同学合作时,经常发现不合理的日志配置以及五花八门的日志记录方式,后续作者打算在团队内做一次Java日志的分享,本文是整理出的系列文章第二篇。

java类热加载原理及应用

这篇文章讲述了性能优化在Java程序员中的重要性,以及定位性能瓶颈和问题点的困难。作者介绍了通过添加日志来定位问题的办法存在的问题,并提到了使用Skywalking和Arthas来解决这个问题。文章进一步解释了Skywalking和Arthas的原理,涉及到的技术和工具。其中,作者详细阐述了类加载机制、javaAgent机制、字节码技术以及Arthas的实现方法。此外,文章还提到了JDK1.5版本开始,Java增加了Instrumentation和JVMTI功能,用于对已加载的字节码进行修改和重新加载。Agent有两种运行模式:启动时添加参数和动态注入。这些模式通过Instrumentation和ClassFileTransformer实现动态修改Java程序的功能。

Java审计之Freemarker模板注入漏洞

Freemarker 是一种模板引擎,它允许开发人员将模板文本注入到动态数据中,从而生成动态页面和其他文档。

Java日志通关(一) - 前世今生

作者日常在与其他同学合作时,经常发现不合理的日志配置以及五花八门的日志记录方式,后续作者打算在团队内做一次Java日志的分享,本文是整理出的系列文章第一篇。

走近java并发同步器AQS

本文介绍了两篇文章的主要内容。第一篇文章讨论了使用MysqlDump同步数据的问题,提出了使用新的解决方案的必要性。第二篇文章讲解了Spring源码中的BeanDefinition,解释了其作用和原理。

首页 - Wiki
Copyright © 2011-2025 iteam. Current version is 2.144.0. UTC+08:00, 2025-07-06 06:28
浙ICP备14020137号-1 $访客地图$