「java代码静态检查」代码静态检测

博主:adminadmin 2022-11-28 00:39:10 44

今天给各位分享java代码静态检查的知识,其中也会对代码静态检测进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java 静态方法问题

内部类的实例化是依托于外部类的实例,当你在非静态的的内部类中定义了静态成员,说明此静态成员并不需要实例化就能使用,这样就破坏了内部类的原则,因此非静态的内部类的成员变量及方法不能定义为静态的。这样会产生歧义,给你一个链接你看看就知道了,我就不贴了!

java 静态代码块 静态方法

静态代码块:有些代码必须在项目启动的时候就执行,这种代码是主动执行的(当类被载入时,静态代码块被执行,且只被执行一次,静态块常用来执行类属性的初始化)

静态方法:需要在项目启动的时候就初始化,在不创建对象的情况下,这种代码是被动执行的(静态方法在类加载的时候就已经加载

可以用类名直接调用)。

两者的区别是:静态代码块是自动执行的,

静态方法是被调用的时候才执行的.

代码静态检查实现原理

静态代码分析原理分为两种:分析源代码编译后的中间文件(如Java的字节码);分析源文件。主要分析技术如下:

缺陷模式匹配

事先从代码分析经验中收集足够多的共性缺陷模式,将待分析代码与已有的共性缺陷模式进行匹配,从而完成软件安全分析。优点:简单方便;缺点:需要内置足够多的缺陷模式,容易产生误报。

类型推断/类型推断

类型推断技术是指通过对代码中运算对象类型进行推理,从而保证代码中每条语句都针对正确的类型执行。

模型检查

建立于有限状态自动机的概念基础上。将每条语句产生的影响抽象为有限状态自动机的一个状态,再通过分析有限状态机达到分析代码目的。

校验程序并发等时序特性。

数据流分析

从程序代码中收集程序语义信息,抽象成控制流图,可以通过控制流图,不必真实的运行程序,可以分析发现程序运行时的行为。

如何静态测试 Java 代码?

所有的这些新的工具使得确保代码质量比以前简单得多,不过您还需要知道如何使用它们。 代码度量 “监视圈复杂度”展示如何使用简单的代码度量工具和基于 Java 的工具来监视代码复杂度。 “软件架构的代码质量”解释了如何持续地监视并纠正会影响软件架构的长期生存能力的代码质量方面。 “用代码度量进行重构”介绍如何使用相同的代码度量方法和提取方法模式进行有针对性的重构。 静态分析工具 静态分析工具承诺无需开发人员费劲就能找出代码中已有的缺陷。当然,如果有多年的编写经验,就会知道这些承诺并不是一定能兑现。尽管如此,好的静态分析工具仍然是工具箱中的无价之宝: FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题: “FindBugs,第 1 部分”和“第 2 部分”分别介绍使用 FindBugs 的原因和方法以及如何编写自定义检测器以查找特定于应用程序的问题。 “消除 bug”展示了这个静态分析工具如何帮助分析代码。 “平衡测试,第 1 部分、第 2 部分 和第 3 部分”讨论如何通过引进 FindBugs 静态代码分析工具来改进管理软件质量的方式。 PMD 是一个开源的静态分析工具,它分析 Java 源代码,并找出潜在的 bug: “用 PMD 铲除 bug”解释如何使用 PMD 内置的规则以及您自己定制的规则集来提高 Java 代码质量。

java代码静态检查工具有什么用

用来检查编译器无法发现的更复杂一点的错误,最大可能避免(可能出现的)运行错误。很多代码写法编译器不报错,严格来讲也没错,但是会极大增加运行时报错的风险,静态检查工具就是用来跑程序之前尽量发现这些问题。例如变量引用前没有判空啦多线程引用变量没有锁啦blahblahblah

关于java代码静态检查和代码静态检测的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-28,除非注明,否则均为首码项目网原创文章,转载请注明出处。