【Java万花筒】精进Java开发:探秘代码质量的利器与技法

深度剖析Java代码:错误检测与质量提升全攻略

前言

在当今快节奏的软件开发领域,代码质量成为保障项目可维护性和稳定性的关键因素。本文将深入探讨多个Java代码质量与分析工具,为开发者提供全面的了解和实际应用指南。通过这些工具,你将能够及时捕捉潜在问题、优化代码结构、提高团队协作效率。

欢迎订阅专栏:Java万花筒

文章目录

  • 深度剖析Java代码:错误检测与质量提升全攻略
    • 前言
      • 1. SonarQube
        • 1.1 概述
        • 1.2 安装与配置
        • 1.3 使用场景
        • 1.4 SonarQube 插件扩展
          • 1.4.1 SonarJava 插件
          • 1.4.2 SonarTS 插件
          • 1.4.3 SonarXML 插件
          • 1.4.4 其他插件
        • 1.5 SonarQube 高级配置
          • 1.5.1 配置质量门限
          • 1.5.2 配置规则集
      • 2. Checkstyle
        • 2.1 概述
        • 2.2 安装与配置
        • 2.3 规则配置
        • 2.4 整合流程
        • 2.5 Checkstyle 高级配置
          • 2.5.1 使用自定义规则
          • 2.5.2 配置文件的模块化
          • 2.5.3 集成IDE
        • 2.6 Checkstyle 插件整合
          • 2.6.1 与Gradle集成
          • 2.6.2 与Jenkins集成
      • 3. PMD
        • 3.1 概述
        • 3.2 安装与配置
        • 3.3 静态分析原理
        • 3.4 整合与使用
        • 3.5 PMD 高级配置
          • 3.5.1 自定义规则
          • 3.5.2 规则优先级调整
          • 3.5.3 自定义规则集
        • 3.6 PMD 插件整合
        • 3.6.1 与Ant集成
      • 4. FindBugs
        • 4.1 概述
        • 4.2 安装与配置
        • 4.3 缺陷检测策略
        • 4.4 实际应用案例
      • 5. SpotBugs
        • 5.1 概述
        • 5.2 特点与优势
        • 5.3 安装与配置
        • 5.4 整合与使用
        • 5.5 SpotBugs 高级配置
          • 5.5.1 定制规则集
          • 5.5.2 排除指定路径
          • 5.5.3 集成持续集成
        • 5.6 SpotBugs 插件整合
          • 5.6.1 与Gradle集成
      • 6. Error Prone
        • 6.1 概述
        • 6.2 编译时错误检测
        • 6.3 集成与配置
        • 6.4 使用示例
        • 6.5 Error Prone 高级特性
          • 6.5.1 自定义规则
          • 6.5.2 IDE集成
    • 总结

1. SonarQube

1.1 概述

SonarQube是一个用于连续检查代码质量的开源平台,支持多种语言,包括Java。它提供了丰富的静态代码分析、代码覆盖率等功能,帮助团队保持代码质量。

1.2 安装与配置

通过以下Maven坐标将SonarQube引入项目:

// Maven坐标
<dependency><groupId>org.sonarsource.scanner.maven</groupId><artifactId>sonar-maven-plugin</artifactId><version>3.9.0.2155</version>
</dependency>

在项目根目录创建sonar-project.properties文件,配置SonarQube服务器地址等信息:

# SonarQube服务器地址
sonar.host.url=http://localhost:9000
# 项目唯一标识
sonar.projectKey=my-java-project
# 项目显示名称
sonar.projectName=My Java Project
# 项目版本
sonar.projectVersion=1.0
1.3 使用场景

通过命令行或CI/CD集成SonarQube扫描:

mvn clean install sonar:sonar

SonarQube将生成详细的代码分析报告,提供各种指标和建议,帮助团队及时发现并改进代码质量。

1.4 SonarQube 插件扩展

SonarQube支持各种插件,这些插件可以进一步增强其功能。以下是一些常用的SonarQube插件:

1.4.1 SonarJava 插件

SonarJava是专门为Java代码质量分析而设计的插件,它提供了更深入的静态代码分析功能。通过添加SonarJava插件,可以检测更多潜在的问题,如多线程错误、空指针引用等。

安装SonarJava插件的Maven坐标:

// Maven坐标
<dependency><groupId>org.sonarsource.java</groupId><artifactId>sonar-java-plugin</artifactId><version>7.0</version>
</dependency>
1.4.2 SonarTS 插件

如果项目中使用TypeScript编写前端代码,可以使用SonarTS插件进行静态分析。它与SonarQube集成,提供了对TypeScript代码的质量评估。

安装SonarTS插件的Maven坐标:

// Maven坐标
<dependency><groupId>org.sonarsource.typescript</groupId><artifactId>sonar-typescript-plugin</artifactId><version>2.1</version>
</dependency>
1.4.3 SonarXML 插件

SonarXML插件可用于分析XML文件的质量。这对于检测配置文件中的问题以及确保XML文档符合规范非常有用。

安装SonarXML插件的Maven坐标:

// Maven坐标
<dependency><groupId>org.sonarsource.xml</groupId><artifactId>sonar-xml-plugin</artifactId><version>2.0.1</version>
</dependency>
1.4.4 其他插件

SonarQube还有许多其他插件,覆盖了不同的语言和技术栈。根据项目需要选择并安装适当的插件,以全面提升代码质量分析。

1.5 SonarQube 高级配置

SonarQube支持丰富的高级配置选项,可以根据项目的具体需求进行调整。以下是一些高级配置的示例:

1.5.1 配置质量门限

通过在sonar-project.properties中配置以下参数,可以设置代码质量的门限:

# 配置代码覆盖率门限
sonar.coverage.exclusions=**/*.html,**/*.xml
sonar.coverage.jacoco.xmlReportPaths=target/jacoco/jacoco.xml
sonar.cpd.exclusions=**/*.properties,**/*.xml
sonar.cpd.javascript.minimumTokens=100
1.5.2 配置规则集

定制代码分析规则集是SonarQube高级配置的一部分。通过以下示例,可以在sonar-project.properties中指定规则集:

# 配置使用自定义规则集
sonar.java.checks=CustomRule1,CustomRule2

这些高级配置选项可以根据项目的实际需求进行调整,确保SonarQube更好地适应特定的开发流程和质量标准。

这样,我们对SonarQube进行了更深入的揭秘,包括插件扩展和高级配置选项。在接下来的章节,我们将深入探讨其他Java代码质量与分析工具,为读者提供更全面的视角。

2. Checkstyle

2.1 概述

Checkstyle是一款用于检查代码质量的工具,强调代码风格和一致性。它通过定义规则集检查代码是否符合编码标准。

2.2 安装与配置

在Maven项目中,添加Checkstyle插件:

// Maven坐标
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-checkstyle-plugin</artifactId><version>3.1.1</version><executions><execution><id>validate</id><phase>validate</phase><configuration><configLocation>checkstyle.xml</configLocation><!-- 其他配置 --></configuration><goals><goal>check</goal></goals></execution></executions></plugin></plugins>
</build>

创建checkstyle.xml文件,定义规则:

<!DOCTYPE module PUBLIC"-//Puppy Crawl//DTD Check Configuration 1.3//EN""http://www.puppycrawl.com/dtds/configuration_1_3.dtd"><module name="Checker"><!-- 具体规则配置 -->
</module>
2.3 规则配置

checkstyle.xml中添加具体的规则,例如检查代码缩进、方法长度等。

2.4 整合流程

在构建过程中执行Checkstyle检查:

mvn clean install checkstyle:check

Checkstyle将输出代码风格违规的信息,帮助开发者改善代码一致性。

2.5 Checkstyle 高级配置

Checkstyle不仅仅局限于基本的代码风格检查,还支持一系列高级配置选项,以满足更复杂的项目需求。

2.5.1 使用自定义规则

除了默认的规则,Checkstyle允许用户定义和使用自定义规则。通过创建自定义规则类,并在checkstyle.xml中引用,可以实现更加个性化的代码检查。

示例自定义规则类:

public class CustomCheck extends AbstractCheck {// 具体规则实现
}

checkstyle.xml中引用:

<module name="Checker"><!-- 引用自定义规则 --><module name="com.example.CustomCheck"/>
</module>
2.5.2 配置文件的模块化

对于大型项目,代码风格可能因子模块而异。Checkstyle支持将配置文件模块化,使得可以为不同的模块应用不同的规则。

示例模块化配置文件:

<!-- checkstyle-module1.xml -->
<module name="Checker"><!-- 模块1的规则配置 -->
</module>
<!-- checkstyle-module2.xml -->
<module name="Checker"><!-- 模块2的规则配置 -->
</module>
2.5.3 集成IDE

Checkstyle也可以与各种集成开发环境(IDE)配合使用,例如IntelliJ IDEA和Eclipse。通过配置相应的插件,可以在开发过程中即时检查代码风格违规,提高开发效率。

这些高级配置选项为团队在不同场景下定制代码风格提供了灵活性,确保Checkstyle在各种复杂项目中都能发挥作用。

2.6 Checkstyle 插件整合

除了Maven插件外,Checkstyle还支持与其他构建工具和持续集成工具集成。以下是一些示例:

2.6.1 与Gradle集成

在Gradle项目中,可以通过以下方式集成Checkstyle插件:

// Gradle插件
plugins {id 'checkstyle'
}// Checkstyle配置
checkstyle {configFile = file("checkstyle.xml")// 其他配置
}
2.6.2 与Jenkins集成

在Jenkins中,可以通过添加Checkstyle插件来实现持续集成中的代码风格检查。

这些插件整合选项使得Checkstyle可以无缝适应各种开发和构建环境,确保代码质量始终得到保障。

这样,我们深入了解了Checkstyle的高级配置和插件整合,为读者提供更多工具的应用场景和定制选项。在下一节,我们将深入探讨PMD工具的应用及其高级特性。

3. PMD

3.1 概述

PMD是一款源代码静态分析工具,用于发现代码中的潜在问题和常见错误。它支持多种语言,包括Java。

3.2 安装与配置

在Maven项目中,添加PMD插件:

// Maven坐标
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-pmd-plugin</artifactId><version>3.14.0</version><configuration><rulesets><ruleset>rulesets/java/basic.xml</ruleset><!-- 其他规则集配置 --></rulesets></configuration><executions><execution><goals><goal>check</goal></goals></execution></executions></plugin></plugins>
</build>
3.3 静态分析原理

PMD使用规则集定义潜在问题,如未使用的变量、复杂的代码块等。

3.4 整合与使用

执行以下命令进行PMD检查:

mvn clean install pmd:check

PMD将输出潜在问题,帮助团队及时发现并修复代码缺陷。

3.5 PMD 高级配置

PMD不仅提供基础的静态代码分析功能,还支持一系列高级配置选项,使得开发者可以更精确地定制代码检查过程。

3.5.1 自定义规则

PMD允许用户编写和应用自定义规则,以适应特定项目的需求。通过创建自定义规则类并在规则集中引用,可以实现更个性化的代码检查。

示例自定义规则类:

public class CustomRule extends AbstractJavaRule {// 具体规则实现
}

在规则集中引用:

<rule ref="category/java/custom.xml/CustomRule"/>
3.5.2 规则优先级调整

PMD的规则集中每个规则都有一个默认的优先级,但用户可以根据项目需求调整规则的优先级。通过在pmd.xml中配置规则的优先级,可以改变它们被执行的顺序。

<pmd version="6.0.0"><rule ref="category/java/bestpractices.xml/AvoidStringBufferField"/><rule ref="category/java/design.xml/TooManyFields"/><!-- 其他规则 -->
</pmd>
3.5.3 自定义规则集

PMD支持创建自定义规则集,以便更灵活地组织和应用规则。通过在pmd.xml中引用自定义规则集,可以根据项目的具体需求选择性地应用规则。

<pmd version="6.0.0"><rule ref="my-custom-ruleset.xml"/>
</pmd>
3.6 PMD 插件整合

PMD插件的整合不仅仅局限于Maven,还可以与其他构建工具和集成开发环境(IDE)搭配使用。

3.6.1 与Ant集成

在Ant项目中,可以通过以下方式集成PMD插件:

<!-- Ant插件 -->
<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask"><classpath><pathelement location="lib/pmd-core-6.39.0.jar"/><!-- 其他依赖项 --></classpath>
</taskdef><!-- PMD任务配置 -->
<pmd shortFilenames="true"><rulesetfiles="pmd-ruleset.xml"/><!-- 其他配置 -->
</pmd>

4. FindBugs

4.1 概述

FindBugs是一款静态分析工具,用于检测Java代码中的潜在缺陷和常见错误。它通过字节码分析技术进行检查。

4.2 安装与配置

在Maven项目中,添加FindBugs插件:

// Maven坐标
<build><plugins><plugin><groupId>org.codehaus.mojo</groupId><artifactId>findbugs-maven-plugin</artifactId><version>3.0.5</version><executions><execution><phase>compile</phase><goals><goal>check</goal></goals></execution></executions></plugin></plugins>
</build>
4.3 缺陷检测策略

FindBugs通过检查字节码来寻找潜在的错误,如空指针引用、资源未关闭等。

4.4 实际应用案例

执行以下命令进行FindBugs检查:

mvn clean install findbugs:check

FindBugs将输出检测到的缺陷信息,帮助开发者改进代码的可靠性。

5. SpotBugs

5.1 概述

SpotBugs是FindBugs的继任者,用于静态分析Java代码,发现潜在问题和缺陷。它继承了FindBugs的功能并进行了改进。

5.2 特点与优势

SpotBugs具有更好的性能和准确性,同时支持最新的Java语言特性。

5.3 安装与配置

在Maven项目中,添加SpotBugs插件:

// Maven坐标
<build><plugins><plugin><groupId>com.github.spotbugs</groupId><artifactId>spotbugs-maven-plugin</artifactId><version>4.2.3</version><executions><execution><goals><goal>check</goal></goals></execution></executions></plugin></plugins>
</build>
5.4 整合与使用

执行以下命令进行SpotBugs检查:

mvn clean install spotbugs:check

SpotBugs输出详细的报告,帮助开发者提高代码质量。

5.5 SpotBugs 高级配置

SpotBugs不仅提供基础的静态代码分析功能,还支持一系列高级配置选项,以满足更复杂项目的需求。

5.5.1 定制规则集

SpotBugs允许用户通过自定义规则集来定制代码分析规则。通过创建自定义规则文件,可以根据项目的特定需求调整代码检查过程。

<!-- 自定义规则集 custom-rules.xml -->
<FindBugsFilter><Match><Bug code="CUSTOM_RULE1" /><!-- 其他自定义规则 --></Match>
</FindBugsFilter>

在SpotBugs插件中引用自定义规则集:

<configuration><pluginXmlArtifact>com.example:custom-rules:1.0.0:xml:rules</pluginXmlArtifact><!-- 其他配置 -->
</configuration>
5.5.2 排除指定路径

在某些情况下,可能希望排除特定路径下的代码文件不被SpotBugs检查。通过配置excludeFilterFile可以实现此目的。

<configuration><excludeFilterFile>spotbugs-exclude.xml</excludeFilterFile><!-- 其他配置 -->
</configuration>

spotbugs-exclude.xml文件内容:

<FindBugsFilter><Match><Source name="com/example/excludedpackage/**"/></Match>
</FindBugsFilter>
5.5.3 集成持续集成

SpotBugs可以与持续集成工具(如Jenkins)集成,通过插件使得在构建过程中进行SpotBugs检查成为可能。

这些高级配置选项使得SpotBugs可以更好地适应各种项目需求,为团队提供更加灵活和精细的代码分析解决方案。

5.6 SpotBugs 插件整合

SpotBugs的插件整合不仅限于Maven,还可以与其他构建工具和集成开发环境(IDE)配合使用。

5.6.1 与Gradle集成

在Gradle项目中,可以通过以下方式集成SpotBugs插件:

// Gradle插件
plugins {id 'com.github.spotbugs' version '4.2.3'
}// SpotBugs配置
spotbugs {// 其他配置
}

6. Error Prone

6.1 概述

Error Prone是一款用于检测编译时错误的工具,它能够在编译阶段捕获一些常见的错误,提高代码的可维护性。

6.2 编译时错误检测

Error Prone在编译阶段通过注解处理器检测潜在的错误,如空指针引用、不安全的类型转换等。

6.3 集成与配置

在Maven项目中,添加Error Prone插件:

// Maven坐标
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><compilerId>javac-with-errorprone</compilerId><!-- 其他配置 --></configuration><dependencies><dependency><groupId>org.codehaus.plexus</groupId><artifactId>plexus-compiler-javac-errorprone</artifactId><version>2.8.4</version></dependency></dependencies></plugin></plugins>
</build>
6.4 使用示例

在代码中添加Error Prone的注解,如@CheckReturnValue,以启用错误检测:

import com.google.errorprone.annotations.CheckReturnValue;public class MyClass {@CheckReturnValuepublic String process(String input) {// 处理逻辑return input.toUpperCase();}
}

Error Prone在编译时将捕获未检查返回值的错误,并提供相应的警告。

6.5 Error Prone 高级特性

Error Prone不仅提供基本的编译时错误检测功能,还支持一些高级特性,以提高代码的质量和可维护性。

6.5.1 自定义规则

Error Prone允许用户编写和应用自定义规则,以适应特定项目的需求。通过创建自定义规则类并在代码中使用,可以实现更个性化的错误检测。

示例自定义规则类:

import com.google.errorprone.bugpatterns.AbstractReturnValueIgnored;@BugPattern(name = "CustomReturnValueIgnored",summary = "Custom return value ignored",severity = ERROR
)
public class CustomReturnValueIgnored extends AbstractReturnValueIgnored {// 具体规则实现
}

在代码中使用自定义规则:

@CustomReturnValueIgnored
public class MyClass {public void doSomething() {// 逻辑}
}
6.5.2 IDE集成

Error Prone可以与集成开发环境(IDE)搭配使用,实现实时错误检测和提示。目前,Error Prone支持与IntelliJ IDEA等IDE集成,使得开发者在开发过程中能够及时发现并纠正潜在的问题。

总结

通过学习和实践本文所介绍的Java代码质量与分析工具,开发者将能够在项目中建立起健壮的代码质量管理体系。这不仅有助于提升代码的可读性和可维护性,还能在早期发现并解决潜在的问题,为团队的协作与项目的长期发展奠定坚实基础。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/678547.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构和算法】--- 基于c语言排序算法的实现(2)

目录 一、交换排序1.1 冒泡排序1.2 快速排序1.2.1 hoare法1.2.2 挖坑法1.2.3 前后指针法 1.3 快速排序优化1.3.1 三数取中法选key1.3.2 递归到小的子区间使用插入排序 1.4 快排非递归版 二、归并排序2.1 归并排序2.1.1 递归版2.1.2 非递归版 一、交换排序 基本思想&#xff1a…

2024-02-11 叮当鸭-平台系统-第三次重构-目标确定

摘要: 对平台系统的第三个版本&#xff0c;做总体规划&#xff0c;明确要达到的目标&#xff0c;功能需求&#xff0c;性能需求。 根据这些所要达到的目标&#xff0c;确定选择何种的方案。方案的成本评估单独进行&#xff0c;本文重点分析要达到的各种目标。 功能需求: 能和…

VSCode:替换空行

有时从不同的编辑器拷贝过来的代码会有很多空行&#xff0c;可以通过以下办法进行删除&#xff1a; 1.按CtrlH弹出替换窗口 2.在查找输入框中输入&#xff1a;^\s*(?\r?$)\n 3.点击使用正则表达式 4.点击全部替换

3d渲染100农场如何使用?渲染100邀请码1a12

3d渲染农场通常用于电影、动画或视觉效果的渲染&#xff0c;本文以广受好评的渲染100农场为例&#xff0c;来讲解它的使用方法。 1、注册账号 前往渲染100官网(http://www.xuanran100.com/?ycode1a12)注册账号&#xff0c; 新用户注册记得填邀请码1a12&#xff0c;有30元大礼…

【软件设计师】——面向对象设计原则

为了提高软件的可维护性、可复用性&#xff0c;增加软件的可扩展性和灵活性&#xff0c;在面向对象编程的过程中我们需要遵守以下六条原则。 开闭原则 定义&#xff1a; 编写的代码需要对 扩展开放 对 修改关闭 &#xff0c;实现 热插拔 的效果。 例&#xff1a;在编写不同皮…

【linux系统体验】-archlinux简易折腾

archlinux 一、系统安装二、系统配置及美化2.1 中文输入法2.2 安装virtualbox增强工具2.3 终端美化2.4 桌面面板美化 三、常用命令 一、系统安装 安装步骤人们已经总结了很多很全: Arch Linux图文安装教程 大体步骤&#xff1a; 磁盘分区安装 Linux内核配置系统&#xff08;…

2024年华为OD机试真题-执行任务赚积分-Python-OD统一考试(C卷)

题目描述: 现有N个任务需要处理,同一时间只能处理一个任务,处理每个任务所需要的时间固定为1。 每个任务都有最晚处理时间限制和积分值,在最晚处理时间点之前处理完成任务才可获得对应的积分奖励。 可用于处理任务的时间有限,请问在有限的时间内,可获得的最多积分。 输入…

css2复合选择器

一.后代&#xff08;包含&#xff09;选择器&#xff08;一样的标签可以用class命名以分别&#xff09; 空格表示 全部后代 应用 二.子类选择器 >表示 只要子不要孙 应用 三.并集选择器 &#xff0c;表示 代表和 一般竖着写 应用 四.伪类选择器&#xff08;包括伪链接…

1.6 Binance_interface API 现货交易账户

Binance_interface API 现货交易账户 Github地址PyTed量化交易研究院 1. API 现货交易账户接口总览 1.1 现货账户接口 方法解释Pathget_account账户信息/api/v3/accountget_myTrades账户成交历史/api/v3/myTradesget_rateLimit_order查询目前下单数/api/v3/rateLimit/order…

C#系列-C#操作UDP发送接收数据(10)

在C#中&#xff0c;发送UDP数据并接收响应通常涉及创建两个UdpClient实例&#xff1a;一个用于发送数据&#xff0c;另一个用于接收响应。以下是发送UDP数据并接收响应的示例代码&#xff1a; 首先&#xff0c;我们需要定义一个方法来发送UDP数据&#xff0c;并等待接收服务器…

【JAVA WEB】 百度热榜实现 新闻页面 Chrome 调试工具

目录 百度热榜 新闻页面 Chrome 调试工具 --查看css属性 打开调试工具的方式 标签页含义 百度热榜 实现效果&#xff1a; 实现代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"vi…

无人机应用场景和发展趋势,无人机技术的未来发展趋势分析

随着科技的不断发展&#xff0c;无人机技术也逐渐走进了人们的生活和工作中。无人机被广泛应用于很多领域&#xff0c;例如遥感、民用、军事等等。本文将围绕无人机技术的应用场景和发展趋势&#xff0c;从多角度展开分析。 无人机技术的应用场景 无人机在遥感方面的应用&…

代码随想录算法训练营第二十八天 |93.复原IP地址,78.子集,90.子集II(已补充)

93.复原IP地址&#xff08;已观看&#xff09; 1、题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 2、文章讲解&#xff1a;代码随想录 3、题目&#xff1a; 给定一个只包含数字的字符串&#xff0c;复原它并返回所有可能的 …

Linux(Ubuntu) 环境搭建:Nginx

注&#xff1a;服务器默认以root用户登录 NGINX 官方网站地址&#xff1a;https://nginx.org/en/NGINX 官方安装文档地址&#xff1a;https://nginx.org/en/docs/install.html服务器的终端中输入以下指令&#xff1a; # 安装 Nginx apt-get install nginx # 查看版本信息 ngi…

前端 > JS 笔试题面试考题(26-30)

26. 以下JavaScript代码行将输出什么到控制台&#xff1f; console.log(“0 || 1 ”(0 || 1)); console.log(“1 || 2 ”(1 || 2)); console.log(“0 && 1 ”(0 && 1)); console.log(“1 && 2 ”(1 && 2)); 面试通过率&#xff1a;33.0% 推荐…

###C语言程序设计-----C语言学习(11)#数据的存储和基本数据类型

前言&#xff1a;感谢您的关注哦&#xff0c;我会持续更新编程相关知识&#xff0c;愿您在这里有所收获。如果有任何问题&#xff0c;欢迎沟通交流&#xff01;期待与您在学习编程的道路上共同进步。 一. 数据的存储 1.整型数据的存储 计算机处理的所有信息都以二进制形式表示…

电子电器架构 —— 对车载软件开发新阶段的愿景

电子电器架构 —— 对车载软件开发新阶段的愿景 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,喝…

51单片机编程应用(C语言):篮球比赛计分器

设计思路 1.LCD1602显示A 000:B 000 右下角显示24的数字&#xff0c;显示一节时间12&#xff1a;00. 2.规定矩阵键盘每一位表示的含义 s1按下&#xff0c;A队加一分 s2按下&#xff0c;A队加两分 s3按下&#xff0c;A队加三分 s4按下&#xff0c;A队减一分 如…

【EAI 014】Gato: A Generalist Agent

论文标题&#xff1a;A Generalist Agent 论文作者&#xff1a;Scott Reed, Konrad Zolna, Emilio Parisotto, Sergio Gomez Colmenarejo, Alexander Novikov, Gabriel Barth-Maron, Mai Gimenez, Yury Sulsky, Jackie Kay, Jost Tobias Springenberg, Tom Eccles, Jake Bruce,…

【C++】多态语法概念

目录 一、概念及定义二、虚函数重写的特例三、final和override四、抽象类 一、概念及定义 概念&#xff1a;在继承关系下的不同类&#xff0c;调用同一个函数&#xff0c;产生不同的行为&#xff0c;叫作多态。 图示&#xff1a; 定义&#xff1a;必须通过基类的指针或者引…