SCW图标
英雄背景无分隔线
博客

如何防止常见的 Java 错误

旺德-内托
发表于 2022 年 2 月 02 日
最后更新于 2026年3月9日

成为一名生产力更高的 Java 开发人员

Java(甲骨文公司)在全球拥有 900 万开发人员*,是世界上最受欢迎的编程语言之一。许多应用程序框架都是基于 Java 构建的,因为它是一种非常通用的语言,可以在支持 Java 运行时环境 (JRE)(所有 Java 程序运行的环境)的许多不同设备上运行程序。开发者主导的社区非常活跃,为新程序员提供的深入支持使其越来越受欢迎。

自从 Java 问世很长时间以来,社区花了多年的时间来开发标准、工具、编码模式,并缓解开发人员一次又一次面临的常见错误。所有这些由社区主导的计划都有一个共同的目标——帮助开发人员在使用 Java 开发应用程序时尽可能提高工作效率。但是,当涉及到在应用程序代码中应用最佳实践或模式时,责任在于开发人员。良好做法的实施情况千差万别,因此,在社区内部意见分歧很大的情况下,很难对编码实践采取标准方法。开发人员在在线社区中寻求帮助,这些帮助有时会无意中为您的编码问题提供不安全的解决方案。

为了帮助开发人员实施常见的 Java 编码问题的安全解决方案,我们创建了 Sensei,这是一个 IntelliJ 插件,用于根据您或您的组织在专业环境中定义的配方(或规则)来纠正错误的编码模式。Sensei 使开发人员只需单击一下即可识别和纠正常见的 Java 错误(陷阱)。

继续阅读以了解 Sensei 如何通过解决一些常见的 Java 编码错误来提高开发人员的工作效率。

一个反复出现的错误,让开发人员感到沮丧

这些常见错误的一个例子是包装器值的相等性检查不正确。应使用 equals 方法而不是参考比较运算符 (==) 比较盒装基元的值,以防止出现意外结果。

例如,对介于 -128 到 127 之间的整数值使用参考比较运算符(通常)的行为与 equals 方法相同。但是,如果我们对超出此范围的值进行相同的比较,结果将有所不同。这是由于 Java 为上述整数值范围维护了一个常量池。使用equals方法将始终产生预期的结果,因此是正确的比较方法。

在此示例中,我们错误地使用了运算符 (==) 来检查相等性。

这会导致以下输出:

真的

假的

假的

真的

正确的比较方法是使用 equals 方法。

然后输出将是:

真的

假的

真的

假的

这种众所周知的最佳实践已经存在了相当长的一段时间,但在遗留代码中往往实现不正确,等待在最不合时宜的时候抬起头来。因此,我们创建了有助于在本地识别此类不良编码模式的配方(或规则),并使用Sensei单击一下即可应用修复程序。

Sensei 是一款高度可定制的 IDE 插件,可在您键入时扫描和修复不想要的代码,其中包含数百个可下载的代码转换和迁移配方(规则),以及可以自行编写的内置功能。借助 Sensei,开发人员可以在键入时修复错误的代码模式,从而更快地交付高质量的代码,并最终以一致和标准的方式跨团队和项目编写代码。

Sensei 如何修复此类常见的 Java 问题

由于Sensei允许您创建自己的食谱,因此我们创建了一个食谱来纠正上述错误。

在此示例中,我们想找到在盒装原始类型中使用比较运算符 (==) 的位置。

Sensei 的食谱看起来像这样(在 YAML 中):

以上内容可以在你键入时搜索反复出现的错误模式,也可以搜索整个文件、配置的范围,甚至是完整的代码库。找到图案后,自然而然的下一步就是能够立即修复它,而无需在线搜索。Sensei 使您能够创建可以按指定添加/编辑/删除代码的修复程序。你甚至可以根据需要提供多个修复,允许开发人员选择他们认为合适的最合适的修复。

在我们的示例中,我们想使用 equals 方法而不是运算符 (==) 重写比较。

一个可用的修复方法是这样描述的:

它是如何工作的:

以简单的方式实施标准编码指南

Java Gotchas Cookbook 有 22 个食谱可以帮助你避免常见错误,保持代码的干净和安全。它可以检测到各种 Java 语言功能和 API(例如对象相等、异常处理、正则表达式和集合)的不正确或不安全使用。通过采用 Sensei 和这本食谱,你可以从一开始就开始编写更好的代码,甚至可以创建自己的配方以适应你独特的团队、项目或组织。

这只是 Sensei 可用于标准化项目的多种方法中的一个示例。你可以随时注意在拉取请求中或自己编写代码时经常遇到的反模式或某些手动代码转换。如果你有一套开发人员经常错过的编码指南,那么你可以将这些指南转化为秘方,让开发人员能够放心地应用经批准的代码转换。

立即安装 Sensei 并启用 Java Gotchas Cookbook,以获得富有成效的开发体验。 https://sensei.securecodewarrior.com/cookbooks/scw:java

*2021,《开发者国家状况》, https://www.developernation.net/developer-reports/de20

查看资源
查看资源

对更多感兴趣?

了解更多

Secure Code Warrior可帮助您的组织在整个软件开发生命周期中保护代码,并营造一种将网络安全置于首位的文化。无论您是应用安全经理、开发人员、首席信息安全官还是任何与安全相关的人员,我们都能帮助您的组织降低与不安全代码相关的风险。

预约演示
分享到:
领英品牌社交x 标志
作者
旺德-内托
发表于2022年2月2日

分享到:
领英品牌社交x 标志

成为一名生产力更高的 Java 开发人员

Java(甲骨文公司)在全球拥有 900 万开发人员*,是世界上最受欢迎的编程语言之一。许多应用程序框架都是基于 Java 构建的,因为它是一种非常通用的语言,可以在支持 Java 运行时环境 (JRE)(所有 Java 程序运行的环境)的许多不同设备上运行程序。开发者主导的社区非常活跃,为新程序员提供的深入支持使其越来越受欢迎。

自从 Java 问世很长时间以来,社区花了多年的时间来开发标准、工具、编码模式,并缓解开发人员一次又一次面临的常见错误。所有这些由社区主导的计划都有一个共同的目标——帮助开发人员在使用 Java 开发应用程序时尽可能提高工作效率。但是,当涉及到在应用程序代码中应用最佳实践或模式时,责任在于开发人员。良好做法的实施情况千差万别,因此,在社区内部意见分歧很大的情况下,很难对编码实践采取标准方法。开发人员在在线社区中寻求帮助,这些帮助有时会无意中为您的编码问题提供不安全的解决方案。

为了帮助开发人员实施常见的 Java 编码问题的安全解决方案,我们创建了 Sensei,这是一个 IntelliJ 插件,用于根据您或您的组织在专业环境中定义的配方(或规则)来纠正错误的编码模式。Sensei 使开发人员只需单击一下即可识别和纠正常见的 Java 错误(陷阱)。

继续阅读以了解 Sensei 如何通过解决一些常见的 Java 编码错误来提高开发人员的工作效率。

一个反复出现的错误,让开发人员感到沮丧

这些常见错误的一个例子是包装器值的相等性检查不正确。应使用 equals 方法而不是参考比较运算符 (==) 比较盒装基元的值,以防止出现意外结果。

例如,对介于 -128 到 127 之间的整数值使用参考比较运算符(通常)的行为与 equals 方法相同。但是,如果我们对超出此范围的值进行相同的比较,结果将有所不同。这是由于 Java 为上述整数值范围维护了一个常量池。使用equals方法将始终产生预期的结果,因此是正确的比较方法。

在此示例中,我们错误地使用了运算符 (==) 来检查相等性。

这会导致以下输出:

真的

假的

假的

真的

正确的比较方法是使用 equals 方法。

然后输出将是:

真的

假的

真的

假的

这种众所周知的最佳实践已经存在了相当长的一段时间,但在遗留代码中往往实现不正确,等待在最不合时宜的时候抬起头来。因此,我们创建了有助于在本地识别此类不良编码模式的配方(或规则),并使用Sensei单击一下即可应用修复程序。

Sensei 是一款高度可定制的 IDE 插件,可在您键入时扫描和修复不想要的代码,其中包含数百个可下载的代码转换和迁移配方(规则),以及可以自行编写的内置功能。借助 Sensei,开发人员可以在键入时修复错误的代码模式,从而更快地交付高质量的代码,并最终以一致和标准的方式跨团队和项目编写代码。

Sensei 如何修复此类常见的 Java 问题

由于Sensei允许您创建自己的食谱,因此我们创建了一个食谱来纠正上述错误。

在此示例中,我们想找到在盒装原始类型中使用比较运算符 (==) 的位置。

Sensei 的食谱看起来像这样(在 YAML 中):

以上内容可以在你键入时搜索反复出现的错误模式,也可以搜索整个文件、配置的范围,甚至是完整的代码库。找到图案后,自然而然的下一步就是能够立即修复它,而无需在线搜索。Sensei 使您能够创建可以按指定添加/编辑/删除代码的修复程序。你甚至可以根据需要提供多个修复,允许开发人员选择他们认为合适的最合适的修复。

在我们的示例中,我们想使用 equals 方法而不是运算符 (==) 重写比较。

一个可用的修复方法是这样描述的:

它是如何工作的:

以简单的方式实施标准编码指南

Java Gotchas Cookbook 有 22 个食谱可以帮助你避免常见错误,保持代码的干净和安全。它可以检测到各种 Java 语言功能和 API(例如对象相等、异常处理、正则表达式和集合)的不正确或不安全使用。通过采用 Sensei 和这本食谱,你可以从一开始就开始编写更好的代码,甚至可以创建自己的配方以适应你独特的团队、项目或组织。

这只是 Sensei 可用于标准化项目的多种方法中的一个示例。你可以随时注意在拉取请求中或自己编写代码时经常遇到的反模式或某些手动代码转换。如果你有一套开发人员经常错过的编码指南,那么你可以将这些指南转化为秘方,让开发人员能够放心地应用经批准的代码转换。

立即安装 Sensei 并启用 Java Gotchas Cookbook,以获得富有成效的开发体验。 https://sensei.securecodewarrior.com/cookbooks/scw:java

*2021,《开发者国家状况》, https://www.developernation.net/developer-reports/de20

查看资源
查看资源

填写下面的表格下载报告

我们希望获得您的许可,以便向您发送有关我们的产品和/或相关安全编码主题的信息。我们将始终非常谨慎地对待您的个人信息,绝不会出于营销目的将其出售给其他公司。

提交
scw 成功图标
SCW 错误图标
要提交表单,请启用“分析”Cookie。完成后,可以随意再次禁用它们。

成为一名生产力更高的 Java 开发人员

Java(甲骨文公司)在全球拥有 900 万开发人员*,是世界上最受欢迎的编程语言之一。许多应用程序框架都是基于 Java 构建的,因为它是一种非常通用的语言,可以在支持 Java 运行时环境 (JRE)(所有 Java 程序运行的环境)的许多不同设备上运行程序。开发者主导的社区非常活跃,为新程序员提供的深入支持使其越来越受欢迎。

自从 Java 问世很长时间以来,社区花了多年的时间来开发标准、工具、编码模式,并缓解开发人员一次又一次面临的常见错误。所有这些由社区主导的计划都有一个共同的目标——帮助开发人员在使用 Java 开发应用程序时尽可能提高工作效率。但是,当涉及到在应用程序代码中应用最佳实践或模式时,责任在于开发人员。良好做法的实施情况千差万别,因此,在社区内部意见分歧很大的情况下,很难对编码实践采取标准方法。开发人员在在线社区中寻求帮助,这些帮助有时会无意中为您的编码问题提供不安全的解决方案。

为了帮助开发人员实施常见的 Java 编码问题的安全解决方案,我们创建了 Sensei,这是一个 IntelliJ 插件,用于根据您或您的组织在专业环境中定义的配方(或规则)来纠正错误的编码模式。Sensei 使开发人员只需单击一下即可识别和纠正常见的 Java 错误(陷阱)。

继续阅读以了解 Sensei 如何通过解决一些常见的 Java 编码错误来提高开发人员的工作效率。

一个反复出现的错误,让开发人员感到沮丧

这些常见错误的一个例子是包装器值的相等性检查不正确。应使用 equals 方法而不是参考比较运算符 (==) 比较盒装基元的值,以防止出现意外结果。

例如,对介于 -128 到 127 之间的整数值使用参考比较运算符(通常)的行为与 equals 方法相同。但是,如果我们对超出此范围的值进行相同的比较,结果将有所不同。这是由于 Java 为上述整数值范围维护了一个常量池。使用equals方法将始终产生预期的结果,因此是正确的比较方法。

在此示例中,我们错误地使用了运算符 (==) 来检查相等性。

这会导致以下输出:

真的

假的

假的

真的

正确的比较方法是使用 equals 方法。

然后输出将是:

真的

假的

真的

假的

这种众所周知的最佳实践已经存在了相当长的一段时间,但在遗留代码中往往实现不正确,等待在最不合时宜的时候抬起头来。因此,我们创建了有助于在本地识别此类不良编码模式的配方(或规则),并使用Sensei单击一下即可应用修复程序。

Sensei 是一款高度可定制的 IDE 插件,可在您键入时扫描和修复不想要的代码,其中包含数百个可下载的代码转换和迁移配方(规则),以及可以自行编写的内置功能。借助 Sensei,开发人员可以在键入时修复错误的代码模式,从而更快地交付高质量的代码,并最终以一致和标准的方式跨团队和项目编写代码。

Sensei 如何修复此类常见的 Java 问题

由于Sensei允许您创建自己的食谱,因此我们创建了一个食谱来纠正上述错误。

在此示例中,我们想找到在盒装原始类型中使用比较运算符 (==) 的位置。

Sensei 的食谱看起来像这样(在 YAML 中):

以上内容可以在你键入时搜索反复出现的错误模式,也可以搜索整个文件、配置的范围,甚至是完整的代码库。找到图案后,自然而然的下一步就是能够立即修复它,而无需在线搜索。Sensei 使您能够创建可以按指定添加/编辑/删除代码的修复程序。你甚至可以根据需要提供多个修复,允许开发人员选择他们认为合适的最合适的修复。

在我们的示例中,我们想使用 equals 方法而不是运算符 (==) 重写比较。

一个可用的修复方法是这样描述的:

它是如何工作的:

以简单的方式实施标准编码指南

Java Gotchas Cookbook 有 22 个食谱可以帮助你避免常见错误,保持代码的干净和安全。它可以检测到各种 Java 语言功能和 API(例如对象相等、异常处理、正则表达式和集合)的不正确或不安全使用。通过采用 Sensei 和这本食谱,你可以从一开始就开始编写更好的代码,甚至可以创建自己的配方以适应你独特的团队、项目或组织。

这只是 Sensei 可用于标准化项目的多种方法中的一个示例。你可以随时注意在拉取请求中或自己编写代码时经常遇到的反模式或某些手动代码转换。如果你有一套开发人员经常错过的编码指南,那么你可以将这些指南转化为秘方,让开发人员能够放心地应用经批准的代码转换。

立即安装 Sensei 并启用 Java Gotchas Cookbook,以获得富有成效的开发体验。 https://sensei.securecodewarrior.com/cookbooks/scw:java

*2021,《开发者国家状况》, https://www.developernation.net/developer-reports/de20

观看网络研讨会
开始吧
了解更多

点击下面的链接并下载此资源的PDF。

Secure Code Warrior可帮助您的组织在整个软件开发生命周期中保护代码,并营造一种将网络安全置于首位的文化。无论您是应用安全经理、开发人员、首席信息安全官还是任何与安全相关的人员,我们都能帮助您的组织降低与不安全代码相关的风险。

查看报告预约演示
查看资源
分享到:
领英品牌社交x 标志
对更多感兴趣?

分享到:
领英品牌社交x 标志
作者
旺德-内托
发表于2022年2月2日

分享到:
领英品牌社交x 标志

成为一名生产力更高的 Java 开发人员

Java(甲骨文公司)在全球拥有 900 万开发人员*,是世界上最受欢迎的编程语言之一。许多应用程序框架都是基于 Java 构建的,因为它是一种非常通用的语言,可以在支持 Java 运行时环境 (JRE)(所有 Java 程序运行的环境)的许多不同设备上运行程序。开发者主导的社区非常活跃,为新程序员提供的深入支持使其越来越受欢迎。

自从 Java 问世很长时间以来,社区花了多年的时间来开发标准、工具、编码模式,并缓解开发人员一次又一次面临的常见错误。所有这些由社区主导的计划都有一个共同的目标——帮助开发人员在使用 Java 开发应用程序时尽可能提高工作效率。但是,当涉及到在应用程序代码中应用最佳实践或模式时,责任在于开发人员。良好做法的实施情况千差万别,因此,在社区内部意见分歧很大的情况下,很难对编码实践采取标准方法。开发人员在在线社区中寻求帮助,这些帮助有时会无意中为您的编码问题提供不安全的解决方案。

为了帮助开发人员实施常见的 Java 编码问题的安全解决方案,我们创建了 Sensei,这是一个 IntelliJ 插件,用于根据您或您的组织在专业环境中定义的配方(或规则)来纠正错误的编码模式。Sensei 使开发人员只需单击一下即可识别和纠正常见的 Java 错误(陷阱)。

继续阅读以了解 Sensei 如何通过解决一些常见的 Java 编码错误来提高开发人员的工作效率。

一个反复出现的错误,让开发人员感到沮丧

这些常见错误的一个例子是包装器值的相等性检查不正确。应使用 equals 方法而不是参考比较运算符 (==) 比较盒装基元的值,以防止出现意外结果。

例如,对介于 -128 到 127 之间的整数值使用参考比较运算符(通常)的行为与 equals 方法相同。但是,如果我们对超出此范围的值进行相同的比较,结果将有所不同。这是由于 Java 为上述整数值范围维护了一个常量池。使用equals方法将始终产生预期的结果,因此是正确的比较方法。

在此示例中,我们错误地使用了运算符 (==) 来检查相等性。

这会导致以下输出:

真的

假的

假的

真的

正确的比较方法是使用 equals 方法。

然后输出将是:

真的

假的

真的

假的

这种众所周知的最佳实践已经存在了相当长的一段时间,但在遗留代码中往往实现不正确,等待在最不合时宜的时候抬起头来。因此,我们创建了有助于在本地识别此类不良编码模式的配方(或规则),并使用Sensei单击一下即可应用修复程序。

Sensei 是一款高度可定制的 IDE 插件,可在您键入时扫描和修复不想要的代码,其中包含数百个可下载的代码转换和迁移配方(规则),以及可以自行编写的内置功能。借助 Sensei,开发人员可以在键入时修复错误的代码模式,从而更快地交付高质量的代码,并最终以一致和标准的方式跨团队和项目编写代码。

Sensei 如何修复此类常见的 Java 问题

由于Sensei允许您创建自己的食谱,因此我们创建了一个食谱来纠正上述错误。

在此示例中,我们想找到在盒装原始类型中使用比较运算符 (==) 的位置。

Sensei 的食谱看起来像这样(在 YAML 中):

以上内容可以在你键入时搜索反复出现的错误模式,也可以搜索整个文件、配置的范围,甚至是完整的代码库。找到图案后,自然而然的下一步就是能够立即修复它,而无需在线搜索。Sensei 使您能够创建可以按指定添加/编辑/删除代码的修复程序。你甚至可以根据需要提供多个修复,允许开发人员选择他们认为合适的最合适的修复。

在我们的示例中,我们想使用 equals 方法而不是运算符 (==) 重写比较。

一个可用的修复方法是这样描述的:

它是如何工作的:

以简单的方式实施标准编码指南

Java Gotchas Cookbook 有 22 个食谱可以帮助你避免常见错误,保持代码的干净和安全。它可以检测到各种 Java 语言功能和 API(例如对象相等、异常处理、正则表达式和集合)的不正确或不安全使用。通过采用 Sensei 和这本食谱,你可以从一开始就开始编写更好的代码,甚至可以创建自己的配方以适应你独特的团队、项目或组织。

这只是 Sensei 可用于标准化项目的多种方法中的一个示例。你可以随时注意在拉取请求中或自己编写代码时经常遇到的反模式或某些手动代码转换。如果你有一套开发人员经常错过的编码指南,那么你可以将这些指南转化为秘方,让开发人员能够放心地应用经批准的代码转换。

立即安装 Sensei 并启用 Java Gotchas Cookbook,以获得富有成效的开发体验。 https://sensei.securecodewarrior.com/cookbooks/scw:java

*2021,《开发者国家状况》, https://www.developernation.net/developer-reports/de20

目录

下载PDF
查看资源
对更多感兴趣?

了解更多

Secure Code Warrior可帮助您的组织在整个软件开发生命周期中保护代码,并营造一种将网络安全置于首位的文化。无论您是应用安全经理、开发人员、首席信息安全官还是任何与安全相关的人员,我们都能帮助您的组织降低与不安全代码相关的风险。

预约演示下载
分享到:
领英品牌社交x 标志
资源中心

帮助您入门的资源

更多帖子
资源中心

帮助您入门的资源

更多帖子