Java代码弱点与修复之——Explicit null dereferenced(显式空间接引用)

news2025/7/24 5:13:46

弱点描述

Explicit null dereferenced, 显示空间接引用。是 Coverity 静态代码分析工具检测到的一种中风险缺陷。这种缺陷通常发生在尝试使用空指针引用调用对象上的方法或访问属性时。
Explicit null dereferenced的缺陷可能会导致程序崩溃或产生不可预测的结果。

在Java语言中, 直观点说就是调用空对象或变量的方法。

示例代码

	public void  explicitNullDereferenced2() {
		String str = null;
		if(str.length() == 0) {
		    System.out.println("Empty string");
		}
	}

在上面的代码中,变量 str 被初始化为 null。然后,在该字符串上调用 length() 方法,这是一个不安全的操作,因为它会尝试访问空引用上的方法。

扫描方式和结果

  • Eclipse IDE
    某些状况下, Eclipse IDE可以直接检测该类型的弱点,提示如下:
Null pointer access: The variable str can only be null at this location

在这里插入图片描述

  • Eclipse 插件 Synopsys Code Sight
    使用 Synopsy

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

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

相关文章

0102 MySQL05

1.约束 1.约束(constraint):在创建表时,可以给表中的字段加上一些约束,保证表中数据的完整性,有效性 常见的约束? 非空约束:not null 唯一性约束:unique 主键约束&am…

在VM16.X虚拟机上安装Android-X86 9.0

前提:电脑已安装好VM虚拟机, 第一步:下载好安卓9.0系统 https://www.fosshub.com/Android-x86.html 第二步:开始安装 1、新建虚拟机(按图片上的点一下步) 点浏览,确定虚拟机位置 处理器配置建…

深度剖析C语言预处理

致前行的人: 人生像攀登一座山,而找寻出路,却是一种学习的过程,我们应当在这过程中,学习稳定冷静,学习如何从慌乱中找到生机。 目录 1.程序翻译过程: 2.字符串宏常量 3.用宏定义充当注释符号 4…

【笔记】若依不分离的$.modal.open()打开多个子窗口,关闭子窗口刷新父窗口问题

前言 如题所述,当前遇到的问题是:我在若依不分离版的一个普通HTML页面A使用 $.modal.open()打开一个子窗口B,且在这个子窗口里再次使用 这个函数打开一个子窗口C,这时的情况就是 A 界面有子窗口 B, B 窗口又有一个子…

《系统架构设计》-06-面向领域思想和策略设计

文章目录1 面向领域思想1.1 架构设计与领域驱动1.1.1 领域驱动设计1.1.2 使用领域驱动设计的条件1.2 领域驱动设计核心概念1.2.1 策略维度1.2.2 技术维度2. 面向领域的策略设计2.1 通用语言2.2 领域与上下文2.2.1 架构轮回2.2.2 系统拆分子域界限上下文系统拆分策略2.2.3 上下文…

Mysql—主从复制

主从复制 创建mysql 基于docker创建2个mysql容器 1、拉取mysql镜像,这里拉取最新的8.0.20 docker pull mysql:latest2、使用镜像运行两个mysql容器:mysql 和 mysql-2 docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORDroot mysql …

Ubuntu系统升级16.04升级18.04

一、需求说明 作为Linux发行版中的后起之秀,Ubuntu 在短短几年时间里便迅速成长为从Linux初学者到实验室用计算机/服务器都适合使用的发行版,目前官网最新版本是22.04。Ubuntu16.04是2016年4月发行的版本,于2019年4月停止更新维护。很多软件支…

C++学习笔记之提高

目录C提高一.模板1.1.函数模板1.1.1语法1.1.2.普通函数与函数模板的区别1.1.3.普通函数与函数模板的调用规则1.1.4.模板的局限性1.2.类模板1.2.1.类模板与函数模板的区别1.2.2.类模板中的成员函数的创建时机1.2.3.类模板做函数的参数1.2.4.类模板与继承1.2.5.类模板成员函数类外…

cesium——飞行定位

Cesium的飞行定位,主要通过Viewer、Camera这两个类实现的。其中viewer.flyTo()、camera.flyTo()、camera.flyToBoundingSphere()这三个方法会有一个飞行动画的效果,所以会有飞行持续时间参数duration,默认是3秒。一、viewerflyTotarget&#…

电子台账:定义产品的行业代码和产品代码

1 简介水平过滤模板和垂直过滤模板定义好后,就可以进行数据抓取了。首次数据抓取后,用产品名称对产品代码表进行填充,程序会提示补充完善产品代码表,需要人工对产品代码表中的信息进行完善。产品代码表补充完整后,以后…

【微信小程序】如何使用阿里巴巴的icon自定义图标以及简单的下拉框组件实现全过程

前言 小编我将用CSDN记录软件开发之路上所学的心得与知识,有兴趣的小伙伴可以关注一下!也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远!让我们在成长的道路上互相学习,让我们共…

CUDA By Example笔记--线程协作

1--使用线程实现GPU上的矢量求和 完整代码&#xff1a; # include <iostream> # define N (33 * 1024)__global__ void add(int* a, int* b, int* c){int tid threadIdx.x blockIdx.x * blockDim.x;while (tid < N){c[tid] a[tid] b[tid];tid blockDim.x * grid…

pyqt 小项目

此项目是别人用Q开发的&#xff0c;我模仿用Pyqt编写。仿写过程种发下c 和python在调用时还是有些不一样。遇到行不通时就要多尝试别的方法。不如在C里可以直接在cpp文件里传入QBrush和QPen对象&#xff0c;而在python里就不行&#xff0c;估计使用信号与槽可以&#xff08;本人…

IfcRepresentationContext 与 IfcRepresentation

IfcRepresentationContext 与 IfcRepresentation 1. IfcRepresentationContext IfcRepresentationContext 定义了成果&#xff08;Product&#xff09;的IfcRepresentation相关上下文。 The IfcRepresentationContext defines the context to which the IfcRepresentation of…

通过堆栈分析深拷贝、浅拷贝、赋值的差异

前言数据类型分为&#xff1a;基本数据类型String、Number、Boolean、Null、Undefined、Symbol对象数据类型Object、Array基本数据类型的特点&#xff1a;直接存储在栈(stack)中的数据引用数据类型的特点&#xff1a;存储的是该对象在栈中引用&#xff0c;真实的数据存放在堆内…

云原生时代顶流消息中间件Apache Pulsar部署实操之轻量级计算框架

文章目录Pulsar Functions(轻量级计算框架)基础定义工作流程函数运行时处理保证和订阅类型窗口函数定义窗口类型滚动窗口滑动窗口函数配置函数示例有状态函数示例窗口函数示例自定义函数开发定义原生语言接口示例Pulsar函数SDK示例Pulsar Functions(轻量级计算框架) 基础定义 …

实验一:递归

1.铺砖 题目描述&#xff1a; 对于一个2行N列的走道。现在用12或22的砖去铺满。问有多少种不同的方式&#xff08;请用递推方式求解&#xff09;。如果N很大&#xff0c;需要高精度计算。下图是一个2行17列的走道的某种铺法&#xff1a; 输入要求&#xff1a; 一个整数N&a…

GitHub Copilot 全新升级,工作效率提升 55%

2021年 6 月&#xff0c;GitHub 和 OpenAI 推出了 GitHub Copilot 预览版&#xff0c;可根据命名或者正在编辑的代码上下文为开发者提供代码建议&#xff0c;被称为“你的 AI 结对程序员”。 近日&#xff0c;GitHub 宣布&#xff0c;经过去年 12 月以来的短暂测试后&#xff…

Spring基本概念与使用

文章目录一、Spring概念1.容器2.IoC3.DI4.Ioc与DI的关系二、Spring创建与使用1.Maven2.添加Spring框架支持注&#xff1a;国内的Maven源配置3.简单实例&#xff08;1&#xff09;创建一个Bean对象。&#xff08;2&#xff09;将Bean对象存储到Spring当中&#xff08;3&#xff…

JavaWeb基础

Servlet 是在服务器上运行的小程序。这个词是在 Java applet的环境中创造的&#xff0c;Java applet 是一种当作单独文件跟网页一起发送的小程序&#xff0c;它通常用于在客户端运行&#xff0c;结果得到为用户进行运算或者根据用户互作用定位图形等服务。服务器上需要一些程序…