IntelliJ IDEA – the IDE for Professional Development in Java and Kotlin
静态代码分析是指在不实际运行代码的情况下扫描代码以发现潜在问题。 IntelliJ IDEA 中的检查可以在您编译项目之前检测到其中的潜在问题。 IDE 可以高亮显示各种问题、定位死代码、发现可能的 Bug 和拼写问题,并改善整体代码结构。 本系列博文将介绍 IntelliJ IDEA 中的代码分析可以帮助您查找并修正代码中的问题的几种方式。 在第一部分中,我们首先查看 IDE 如何帮助您在处理代码时预防问题。 查找并修正代码中的问题 当您在 IntelliJ IDEA 中编写代码时,IDE 会提醒您代码中需要注意的区域并为您高亮显示。 我们来看一些示例。 如果您的代码无法编译,Intelli…
Java 23 包含全新和更新的 Java 语言功能、核心 API 以及 JVM,同时适合新的 Java 开发者和高级开发者。 IntelliJ IDEA 2024.2 现已支持 Java 23 功能。 跟上 Java 新版本的发布节奏可能很难 – 更改是什么、为什么要更改以及如何使用全新和更新的功能。 在这篇博文中,我将介绍 Java 23 的一些全新和更新功能 – 它们为您解决的痛点、语法和语义,以及 IntelliJ IDEA 如何帮助您使用它们。 我将重点介绍 Java 23 功能,例如在模式匹配中包含基元数据类型、在代码库中导入模块的能力、在文档注释中使用 Markdown 的可…
开始一个新项目总是既令人兴奋又充满挑战。 选择哪些技术来实现您的解决方案,需要对这些选择带来的成本加以权衡。 每增加一项技术,可能引入的问题和依赖项都可能导致进度逐渐放缓,甚至停滞不前。 前端是开发者经常感到决策疲劳的地方。 React、Angular 和 Vue 等前端框架的流行确实带来了许多价值,但也在工具、安全考量因素、网络流量和巨大的初始负载方面产生了代价高昂的权衡。 如果您在为下一个项目做出前端决策时感到不知所措,那么这篇文章非常适合您。 在这篇文章中,我们将探索一个名为 Htmx 的新兴库,它允许您利用现有的 Spring Boot 知识来提供交互式用户体验,同时避免您在使用其他前…
当今技术面临的重大挑战是如何跟上最新发展、满足现代商业需求并持续为用户提供附加价值。 世界正在以前所未有的速度发生变化,并且这种变化的速度没有减缓的迹象。 作为一种主要编程语言,Java 也需要应对这些挑战。 随着更新、更简化的语言不断涌现, Java 有能力保住领先地位吗? 对于刚刚开始 Java 开发生涯的新人来说,Java 还有潜力吗? 在这篇博文中,我们汇集了 2023 开发者生态系统现状和 2022 开发者生态系统现状报告中的数据*,探索这些问题的答案以及其他信息。 我们将对比 Java 和其他语言,找出使用它的行业和产品,提供数据帮助您判断这种语言是否值得学习,并额外分享一个代表性…
为您的 Spring Boot 项目选择合适的 Java 运行时乍看可能十分简单。 毕竟,所有运行时都基于 OpenJDK 代码并提供相同的 API。 但并非所有运行时都生来平等。 本文将探讨可能影响您为 Spring Boot 应用程序选择特定 Java 发行版的决定的各种指标。 本文由 JetBrains IntelliJ IDEA 的团队主管 Aleksey Stukalov 和客座作者 Catherine Edelveis(BellSoft 的技术布道师)撰写。 开发者的视角 功能兼容性 对于大多数开发者来说,使用哪个 Java 发行版并无太大区别。 无论您是在开发 Spring Bo…
Java 中的异常用于指示程序执行期间发生并扰乱正常指令流的事件。 发生异常时,Java 运行时会自动停止当前方法的执行, 将带有错误信息的异常对象传递到可以处理异常的最近的 catch 块。 虽然妥善捕获和处理异常很重要,但了解如何有效抛出异常也同样重要。 在这篇博文中,我们将探讨引发 Java 异常的细节,涵盖不同类型的异常、如何创建自定义异常等。 如何抛出异常 要让 Java 运行时知道代码中发生了异常,首先必须抛出一个异常。 在 Java 中,您可以使用 throw 关键字调用 Java 虚拟机 (JVM) 中的异常机制: throw new Exception("Something …
在 Java 和其他编程语言中,继承是面向对象编程的基本特性之一。 借助继承,您可以创建从类(基类或超类)派生的类,并重用、扩展或修改超类的行为。 这一原则允许您构建类层次结构和重用现有代码。 Java 本身到处都使用继承:许多 JDK 类继承其他类,并且 Java 中的每个类都隐式扩展 java.lang.Object。 本文不会过多关注这一部分,而主要举例说明如何在代码中使用继承。 假设,您想要在应用程序中创建 Employee 和 Customer 类。 借助继承,您可以编写这两个类,使其从父 Person 类继承 name 和 address 属性。 在代码可重用性和模块化方面,这有多…
好的代码都会遵循一定规则,了解这些规则将增大您成功的几率。 我们将在本文中分享一些 Java 最佳做法,为您提供帮助。 我们将介绍必知提示和技巧,涵盖软件开发的总体建议以及 Java 和项目特定的专业知识。 我们开始吧! 常规 首先,牢记以下有关现代编码的一般规则。 干净好过聪明 代码的主要目的是被理解和维护,而不是炫耀技术能力。 干净的代码会让软件更易于调试、维护和扩展,使参与项目的所有人受益。 复杂并不是荣誉奖章,简单和可读才是。 考虑以下示例。 聪明的: 这是交换变量 `a` 和 `b` 值的非常规方式。 虽然聪明,但乍一看可能会令人困惑。 干净的: 这是更常见的方式。…
IntelliJ IDEA Conf 2024 盛大重启,诚邀您参加,本次大会是一场以开发者为中心的线上直播活动,所有人均可免费参加! IntelliJ IDEA Conf 旨在庆祝开发者社区及其渴望不断学习和精进的精神。 欢迎参加 2024 年 3 月 6-7 日举办的免费在线直播会议,向行业领袖和专家学习。 您将能够了解各种主题,例如 Core Java、Kotlin、Java、AI、Apache Maven 4、Spring Boot、Micronaut、Testcontainers、Secure Coding,以及 JUnit、Mockito 和 AssertJ 等测试框架。 您还将详…
本人撰写有关新 Java 版本的文章已有一段时间(自 Java 10 以来),我很喜欢开发者们每六个月就有机会了解和使用新的 Java 功能这种模式。 相比之前的一些版本,Java 20 的新增功能相对较少。 它引入了作用域值作为孵化 API,通过在线程内和跨线程共享不可变数据来支持虚拟线程。 在它的第二个预览版中,记录模式改进了对泛型记录模式的支持,并支持在增强 for 语句中使用记录模式。 在它的第四个预览版中,switch 的模式匹配改进了它在处理详尽 switch、简化 switch 标签和推断泛型记录模式的类型实参时的使用。 在 Java 20 的第二个预览版中,Foreign Fu…
IntelliJ IDEA Conf 的主旨是向开发者社区及其对知识和进步的不懈追求致以敬意。 我们邀请您参加 2022 年 9 月 29 日至 30 日举办的免费在线会议,和我们一起向行业领导者和专家学习。了解各种主题,例如 Core Java、Kotlin、Spring、Kubernetes、JUnit、移动开发,并聆听有关开源项目贡献的故事。您还将探索如何使用 JetBrains IDE 应对远程开发的挑战,并了解我们全新的 IDE – Fleet。 会议详细信息和注册 (more…)…
Java 18 现已发布,从 2022.1 版本开始,IntelliJ IDEA 将提供对它的支持。 对代码段的支持 JDK 18 引入了 JavaDoc 标准 Doclet 的 @snippet 标记,用于简化在 API 文档中包含示例源代码的操作。 即使没有显式包装器,代码段片段仍会被识别为 Java 代码。 任何语言都可以被指定,并且语言注入功能也适用于代码段。 例如,可导航引用将适用于通过 import 可用的所有元素: 没有必要使用类的绑定编写代码段中的所有代码。 片段将被 Intel…