静态代码分析
c语言静态检测常见问题及解答

c语言静态检测常见问题及解答
静态代码分析是一种在不实际执行代码的情况下检查代码的技术。
它可以检查出代码中的错误、漏洞、不良编程习惯等问题。
下面列出了一些C语言静态检测中常见的问题及解答:
问题1:什么是静态代码分析?
答:静态代码分析是一种在不实际执行代码的情况下检查代码的技术。
它可以检查出代码中的错误、漏洞、不良编程习惯等问题。
问题2:静态代码分析工具有哪些?
答:常见的C语言静态代码分析工具包括Clang Static Analyzer、Cppcheck、PVS-Studio、SonarQube等。
问题3:静态代码分析能发现哪些问题?
答:静态代码分析可以发现的问题包括但不限于:内存泄漏、空指针引用、未初始化的变量、数组越界等。
问题4:如何使用静态代码分析工具?
答:使用静态代码分析工具的一般步骤是:
1. 下载并安装工具;
2. 配置工具参数;
3. 运行工具,生成报告;
4. 分析报告,修复问题。
问题5:静态代码分析的局限性是什么?
答:静态代码分析存在一定的局限性,例如无法覆盖所有可能的程序路径、无法检测到所有类型的错误等。
因此,静态代码分析不能替代人工代码审查和实际测试。
代码检测技术介绍

代码检测技术介绍在当今的软件开发过程中,代码检测技术已经成为了不可或缺的一部分。
这些技术旨在发现和纠正代码中的错误、漏洞和不良实践,从而提高软件的质量和可靠性。
下面将详细介绍一些常用的代码检测技术。
1.静态代码分析静态代码分析是一种在代码运行前对其进行的检查,通过解析源代码来寻找潜在的问题。
这种分析可以检测出语法错误、变量未定义、死代码、逻辑错误等。
一些流行的静态代码分析工具包括SonarQube、PMD、Checkstyle等。
2.动态代码分析动态代码分析在程序运行时对其进行的检查,通过观察程序的实际行为来发现潜在问题。
这种方法可以检测出一些静态分析无法发现的问题,例如内存泄漏、性能问题、并发问题等。
一些常用的动态分析工具包括VisualVM、JProfiler、YourKit等。
3.单元测试单元测试是对代码的各个模块进行独立的测试,以确保每个模块都能正确地完成其任务。
这种方法可以帮助开发者在早期发现并修复问题,从而提高代码质量。
JUnit和TestNG是两个流行的单元测试框架。
4.集成测试集成测试是在多个模块组合在一起后进行的测试,旨在检查模块之间的交互是否正常。
这种方法可以帮助发现模块之间的错误和冲突。
一些常用的集成测试框架包括TestNG和FitNesse等。
5.代码审查代码审查是一种人工检查代码的方法,通常由一组开发者进行。
这种方法可以帮助发现一些自动化工具可能无法发现的问题,例如逻辑错误、不良编程习惯等。
此外,代码审查还可以提高团队之间的交流和合作。
6.持续集成/持续部署(CI/CD)持续集成/持续部署是一种自动化的软件开发和部署流程,其中包含了多种代码检测技术。
CI/CD可以自动编译、测试和部署代码,并实时地检测出任何问题。
这种方法可以帮助开发者更快地发现问题并进行修复,从而提高软件的质量和可靠性。
一些流行的CI/CD工具包括Jenkins、GitLab CI/CD和CircleCI等。
掌握如何进行代码静态分析和优化

掌握如何进行代码静态分析和优化代码静态分析和优化是软件开发中非常重要的一环,它可以帮助开发人员发现代码中的潜在问题,提高代码的质量和性能。
在这篇文章中,我将详细介绍代码静态分析和优化的相关概念、方法和工具,并分享一些实用的技巧和经验。
一、什么是代码静态分析和优化1.1代码静态分析代码静态分析是指在不执行程序的情况下对代码进行分析,以检测代码中的潜在问题和错误。
静态分析可以帮助开发人员发现潜在的安全漏洞、性能问题、不良的编程习惯等。
静态分析通常包括代码风格检查、代码规范检查、代码复杂度分析、数据流分析等。
1.2代码优化代码优化是指对代码进行改进,以提高代码的性能、可维护性和可读性。
优化可以包括优化算法、重构代码、优化数据结构、性能分析等。
优化的目标是使代码更加高效、可靠和易于维护。
二、代码静态分析的方法和工具2.1静态分析方法静态分析方法包括语法分析、语义分析、控制流分析、数据流分析等。
语法分析用于检测代码中的语法错误和语法规范是否符合要求;语义分析用于检测代码中的语义错误和逻辑错误;控制流分析用于分析代码中的控制流程是否符合预期;数据流分析用于分析代码中的数据流程是否正确。
2.2静态分析工具静态分析工具是用于实施静态分析的软件工具,包括代码检查器、静态分析器、静态代码分析工具等。
常见的静态分析工具有PMD、Checkstyle、FindBugs、Coverity、Lint等。
这些工具可以自动化地进行代码静态分析,并提供详细的分析报告和建议。
三、代码静态分析的实际应用3.1代码质量管理代码静态分析可以用于代码质量管理,帮助开发人员发现代码中的潜在问题,提高代码的质量和稳定性。
通过静态分析可以及时发现代码中的问题,避免在后期导致更严重的bug。
3.2安全漏洞检测静态分析可以用于检测代码中的安全漏洞,包括内存泄漏、空指针引用、缓冲区溢出等。
通过静态分析可以在代码提交前发现安全问题,保障软件的安全性。
3.3代码性能优化静态分析可以用于代码性能优化,通过分析代码的复杂度和执行路径,发现性能瓶颈并进行优化。
如何进行代码的静态分析和质量评估

如何进行代码的静态分析和质量评估?代码的静态分析和质量评估是软件开发过程中非常重要的环节,可以帮助开发者发现潜在的问题和提高代码的质量。
本文将介绍静态分析的基本概念、常用的静态分析工具以及质量评估的指标和方法。
一、静态分析的概念和目的静态分析是一种在不运行程序的情况下对源代码进行扫描分析的方法,目的是检测源代码中的潜在问题,例如潜在的错误、漏洞、性能问题等。
与动态分析相比,静态分析主要关注代码本身的结构和语法,并通过各种规则和技术对代码进行检测和评估。
静态分析的目的有以下几个方面:1.发现潜在的错误:静态分析可以检测代码中的语法错误、类型错误、逻辑错误等,帮助开发者在编写代码的过程中及时发现和修复问题。
2.提高代码的可读性:静态分析可以检查代码的结构和格式,帮助开发者编写出易于理解和维护的代码。
3.提高代码的性能:静态分析可以识别出代码中的性能问题,例如循环过多、重复计算等,帮助开发者优化代码。
4.检测安全问题:静态分析可以检测代码中的安全漏洞和风险,帮助开发者提高软件的安全性。
二、常用的静态分析工具现在有许多静态分析工具可供选择,下面介绍几个常用的工具:1. Pylint:是一个用于Python代码的静态分析工具,可以检查源代码中的潜在问题并提供修复建议。
它支持检测语法错误、命名规范、代码复杂度等。
2. FindBugs:是一个用于Java代码的静态分析工具,可以检测源代码中的潜在问题,包括空指针异常、资源未关闭、代码重复等。
它可以与主流的Java开发工具集成,并提供详细的报告和修复建议。
3. ESLint:是一个用于JavaScript代码的静态分析工具,可以检测源代码中的语法错误、代码规范、潜在的逻辑错误等。
它支持配置灵活,并可以与多个开发工具集成。
4. SonarQube:是一个用于多种编程语言的静态分析工具,包括Java、C++、JavaScript等。
它不仅可以检测代码中的潜在问题,还可以评估代码的复杂度、安全性等方面的质量。
如何进行代码的静态分析和质量检查

如何进行代码的静态分析和质量检查静态代码分析是一种分析代码质量的方法,它可以帮助开发人员发现代码中的潜在问题和错误,并提供改进代码质量的建议。
它是软件开发中的一种重要实践,以确保代码的可读性、可维护性和可扩展性。
静态代码分析的目标是通过检查代码的结构、语法、语义和风格来发现潜在的问题。
在进行静态代码分析之前,需要先编译源代码,生成可执行文件或者中间代码。
然后,使用专门的静态代码分析工具对生成的代码进行分析。
在静态代码分析中,常常采用以下几种方法来分析代码质量:1.语法分析:检查代码的语法是否符合编程语言的规范。
这可以通过编译器本身来完成,编译器会检查代码中的拼写错误、缺少的分号、括号不匹配等语法错误。
2.代码风格检查:检查代码是否符合编程规范和最佳实践。
不同的编程语言有不同的代码规范,例如,Python代码应该使用缩进进行代码块的标识,变量名应该使用小写字母和下划线等。
通过代码风格检查可以帮助开发人员编写一致且易读的代码。
3.代码质量检查:检查代码中的潜在问题和错误。
这包括许多方面,例如代码重复、未使用的变量、不安全的操作、潜在的内存泄漏等。
代码质量检查可以帮助开发人员发现和修复代码中的缺陷和问题。
4.代码复杂度分析:分析代码的复杂度,例如函数的长度、嵌套的深度、循环的复杂度等。
代码的复杂度越高,就越难理解、维护和调试。
通过代码复杂度分析,可以帮助开发人员识别并重构复杂的代码块,以提高代码的可读性和可维护性。
5.安全性分析:检查代码是否存在安全风险,例如潜在的漏洞、缓冲区溢出等。
安全性分析可以帮助开发人员提前发现并修复代码中的安全问题,以保障系统的安全性。
为了进行静态代码分析和质量检查,可以使用一些专门的工具和框架。
以下是一些常见的静态代码分析工具:1.集成开发环境(IDE):许多开发环境都提供了静态代码分析工具,例如Eclipse、IntelliJ IDEA和Visual Studio等。
这些工具可以在代码编写过程中进行实时的代码检查,并提供相应的提示和建议。
如何进行代码的静态分析

如何进行代码的静态分析代码的静态分析是指在不实际运行代码的情况下对代码进行全面的检查和分析。
静态分析可以帮助开发人员发现潜在的代码问题并改进代码质量,同时也可以帮助团队更好地理解代码和进行代码评审。
在本文中,我们将探讨代码的静态分析的原理、方法和工具,并讨论如何有效地进行静态分析以提高代码质量和开发效率。
一、静态分析的原理静态分析是在不进行代码执行的情况下对源代码进行分析和检查,这意味着分析是基于代码的结构、语法和语义进行的。
静态分析的原理主要包括以下几个方面:1.语法分析:静态分析首先要对代码进行语法分析,检查代码是否符合语法规范。
语法分析通常是通过词法分析和语法分析器来实现的,词法分析负责将源代码分解为一个个的词法单元,而语法分析器则负责根据语法规则进行语法分析,以确保代码的结构是正确的。
2.数据流分析:数据流分析是静态分析的核心内容之一,它用来分析代码中的数据流和控制流,以发现潜在的错误和问题。
数据流分析可以帮助开发人员找到未初始化变量、内存泄漏、空指针引用等问题,并帮助发现代码中可能的逻辑错误和安全漏洞。
3.符号执行:符号执行是一种将代码用符号代替具体数值进行分析的技术,它可以帮助开发人员发现代码中可能的边界条件错误和逻辑错误。
符号执行会将代码中的变量和条件用符号代替,然后进行逻辑分析和验证,从而发现可能的错误和问题。
4.控制流分析:控制流分析可以帮助开发人员理解代码的执行顺序和流程,发现代码中的循环和递归等问题。
控制流分析通常包括对代码的控制结构、条件分支、循环和递归等进行分析,以发现可能的逻辑错误和问题。
二、静态分析的方法静态分析包括多种方法和技术,主要包括以下几种:1.代码审查:代码审查是一种通过人工检查和评审代码来进行静态分析的方法,这是一种最直接和有效的方法。
代码审查可以帮助发现潜在的问题和错误,同时也可以帮助团队更好地理解和沟通代码。
2.静态代码分析工具:静态代码分析工具是一种通过自动分析代码来发现潜在问题和错误的方法,主要包括静态分析器、代码检查工具和静态分析插件等。
软件测试中的静态与动态代码分析

软件测试中的静态与动态代码分析在软件开发过程中,为了确保软件质量,经常会进行软件测试。
静态与动态代码分析是软件测试中两种重要的分析方法。
本文将介绍静态代码分析和动态代码分析的定义、过程和应用,并讨论它们在软件测试中的重要性。
一、静态代码分析静态代码分析是通过对软件源代码进行分析,检测潜在的编程错误、安全漏洞和质量问题的方法。
它不需要实际运行软件,只需对代码进行静态分析。
通常通过静态代码分析工具来实现。
静态代码分析的过程主要包括以下几个步骤:1. 代码扫描:对源代码进行扫描,分析代码的结构和语法。
2. 语法检查:检查代码是否符合语言的语法规范,如括号是否匹配、变量是否声明等。
3. 代码规范检查:检查代码是否符合编码规范,如命名规范、注释规范等。
4. 缺陷检测:检查代码中是否存在潜在的缺陷,如空指针引用、数组越界等。
5. 安全漏洞检测:检查代码中是否存在安全漏洞,如SQL注入、跨站脚本等。
静态代码分析的优点是可以在项目早期发现问题,减少开发后期的修改成本。
然而,它也存在一些限制,如无法检测运行时错误和资源泄漏。
二、动态代码分析动态代码分析是通过对软件在运行时的行为进行监测和分析,检测潜在的错误和性能问题的方法。
它需要实际运行软件,并收集运行时数据进行分析。
动态代码分析的过程主要包括以下几个步骤:1. 程序执行:运行软件,收集运行时数据。
2. 数据收集:收集软件在运行时产生的数据,如内存使用情况、函数调用关系等。
3. 错误检测:检测软件运行时是否有错误,如空指针异常、死锁等。
4. 性能分析:分析软件运行时的性能指标,如响应时间、内存占用等。
动态代码分析的优点是可以检测运行时错误和性能问题,但它需要实际运行软件,可能影响软件性能,并且无法检测到未被执行到的代码。
三、静态与动态代码分析的应用静态与动态代码分析在软件测试中有广泛的应用。
它们可以帮助开发人员提高软件质量,减少错误和漏洞。
静态代码分析可以在开发过程中及早发现潜在的问题,提醒开发人员进行修改。
编程中的代码静态分析和质量度量

编程中的代码静态分析和质量度量代码静态分析是指通过对代码进行分析来提取代码的结构信息和行为信息,检测代码中的潜在问题、错误和漏洞,并提供适当的建议和改进措施,以提高代码的质量和可靠性。
代码质量度量是对代码进行量化评估,从不同的角度衡量代码的质量,以便开发人员和团队能够更好地了解和改进代码。
代码静态分析是通过对代码进行静态扫描,识别代码中的问题和潜在的错误,不需要执行代码,只需要对代码进行语法和结构分析即可。
静态分析可以帮助开发人员在代码编写期间尽早发现潜在的问题,减少代码的错误率,提高代码的可维护性和可读性。
静态分析可以对代码进行各种检查,包括但不限于以下几个方面:1.语法检查:检查代码是否符合编程语言的语法规范,包括括号的匹配、分号的使用等。
2.类型检查:检查代码中的变量类型,避免类型不匹配的错误。
3.未使用变量和未使用函数检查:检查代码中是否有未使用的变量和未使用的函数,以减少冗余代码。
4.空指针引用和空引用检查:检查代码中是否存在可能引发空指针异常的情况。
5.代码复杂度检查:检查代码复杂度,包括函数的行数、嵌套层数、圈复杂度等,用于评估代码的易读性和可维护性。
6.安全漏洞检查:检查代码中是否存在潜在的安全漏洞,例如密码明文存储、SQL注入等。
代码质量度量是对代码进行量化评估,从不同的角度衡量代码的质量。
代码质量度量可以通过以下几个方面来评估代码的质量:1.代码复杂度:通过度量代码的复杂度,如函数的行数、嵌套层数、圈复杂度等,来评估代码的可读性和可维护性。
通常情况下,代码的复杂度越低,越容易理解和修改。
2.代码重复:度量代码中的重复代码行数和重复代码的比例,重复代码往往是冗余和低效的,可以通过重构来提高代码的质量。
3.单元测试覆盖率:度量代码中被单元测试覆盖到的代码比例,高覆盖率的代码往往具有较高的可靠性和稳定性。
4.代码规范遵循度:度量代码是否符合团队或者行业的编码规范,如命名规范、注释规范等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
静态代码分析一、什么是静态代码分析静态代码分析是指无需运行被测代码,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性,找出代码隐藏的错误和缺陷,如参数不匹配,有歧义的嵌套语句,错误的递归,非法计算,可能出现的空指针引用等等。
在软件开发过程中,静态代码分析往往先于动态测试之前进行,同时也可以作为制定动态测试用例的参考。
统计证明,在整个软件开发生命周期中,30% 至70% 的代码逻辑设计和编码缺陷是可以通过静态代码分析来发现和修复的。
但是,由于静态代码分析往往要求大量的时间消耗和相关知识的积累,因此对于软件开发团队来说,使用静态代码分析工具自动化执行代码检查和分析,能够极大地提高软件可靠性并节省软件开发和测试成本。
静态代码分析工具的优势1. 帮助程序开发人员自动执行静态代码分析,快速定位代码隐藏错误和缺陷。
2. 帮助代码设计人员更专注于分析和解决代码设计缺陷。
3. 显著减少在代码逐行检查上花费的时间,提高软件可靠性并节省软件开发和测试成本。
二、主流Java静态分析工具Findbugs、checkstyle和PMD都可以作为插件插入eclipse,当然也有单独的工具可以实现他们的功能,比如Findbugs Tool就可以不必插入eclipse就可以使用。
CheckStyle检查源文件主要关注格式检查Java源文件是否与代码规范相符主要包括:Javadoc注释命名规范多余没用的ImportsSize度量,如过长的方法缺少必要的空格Whitespace重复代码三者作为开源的软件,不用考虑版权问题。
他们的源代码保存在/上,下载也可以去这里下载。
三、Findbugs、checkstyle、PMD的安装1. 下载插件因为Findbugs、checkstyle、PMD都在/这个开源的网站上进行管理,所以直接去该网站下载。
工具下载地址截图注意事项Findbugs http://source/projects/findbugs/files/findbugs%20eclipse%20plugin/下载的时候要注意红框里一定是findbugseclipse plugin,有可能你在这个网站上下载到Findbugs,但他不能用做eclipse插件使用。
Checksty le http://source/projects/eclipse-cs/files/?source=navbar你可能在sourceforge上到checkstyle,但下载下来同样不能用做eclpse插件使用,注意要下载eclipsecheckstyleplug-in。
PMD http://sourcef/projects/pmd/files/pmd-eclipse/update-site-latest/我没有找到可以一下plugins和features的文件都下载下来,只能一个一个的下载,然后重新创建了features和plugins文件夹,然后把东西放里面。
也许有更好的方法吧。
同样注意下载的是pmd-eclipse目录下的文件2. 安装eclipse插件目前来说有三种安装eclipse插件的方式:(1)在线安装方式:使用Eclipse的菜单栏Help -> SoftwareUpdates -> Find and install... -> search for new features... ->输入软件安装地址进行安装(2)离线安装方式一:下载插件文件,将其解压缩到Eclipse对应的目录中,即eclipse 目录下对应的features下和plugins下。
(3)离线安装方式二:links文件方式。
例如eclipse的安装目录是C:\soft\Eclipse3.3。
把插件放在C:\eclipsePlugins\CheckStyle下(文件夹名随意),如下图编写link文件放在eclipse安装目录下的links文件夹内,如下图3. 注意事项Checkstyle如果使用eclipse插件版本,需要注意eclipse内核版本和jdk版本。
最新6.x版本需要jdk1.7,常见的eclipse3.3,MyEclipse8.6最好用4.x,5.x 版本,具体以能否安装上为准。
四、Findbugs1. 简介/FindBugs 是一个静态分析工具,它检查类或者JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。
有了静态分析工具,就可以在不实际运行程序的情况对软件进行分析。
在FindBugs的GUI中,需要先选择待扫描的.class文件(FindBugs其实就是对编译后的class进行扫描,藉以发现一些隐藏的bug。
)。
如果你拥有这些.class档对应的源文件,可把这些.java文件再选上,这样便可以从稍后得出的报告中快捷的定位到出问题的代码上面。
此外,还可以选上工程所使用的library,这样似乎可以帮助FindBugs做一些高阶的检查,藉以发现一些更深层的bug。
选定了以上各项后,便可以开始检测了。
检测的过程可能会花好几分钟,具体视工程的规模而定。
检测完毕可生成一份详细的报告,藉由这份报告,可以发现许多代码中间潜在的bug。
比较典型的,如引用了空指针(null pointer dereference), 特定的资源(db connection)未关闭,等等。
如果用人工检查的方式,这些bug可能很难才会被发现,或许永远也无法发现,直到运行时发作…当除掉了这些典型的(classic) bug后,可以确信的是,我们的系统稳定度将会上一个新的台阶。
2. Bug描述/bugDescriptions.html五、checkstyle1. 简介/CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具。
它能够自动化代码规范检查过程,从而使得开发人员从这项重要,但是枯燥的任务中解脱出来。
CheckStyle检验的主要内容·Javadoc注释·命名约定·标题·Import语句·体积大小·空白·修饰符·块·代码问题·类设计·混合检查(包括一些有用的比如非必须的System.out和printstackTrace)从上面可以看出,CheckStyle提供了大部分功能都是对于代码规范的检查,而没有提供象PMD那么多的增强代码质量和修改代码的功能。
但是,对于团队开发,尤其是强调代码规范的公司来说,它的功能已经足够强大。
Checkstyle是一款检查java程序代码样式的工具,可以有效的帮助我们检视代码以便更好的遵循代码编写标准,特别适用于小组开发时彼此间的样式规范和统一。
Checkstyle提供了高可配置性,以便适用于各种代码规范,所以除了可以使用它提供的sun的代码标准外,你也可以定制自己的标准。
我们可以在eclipse中安装checkstyle的插件,来方便我们的使用。
Checkstyle可以让我们养成书写良好代码风格的习惯,代码的整洁也减少了很多bad smell的产生。
使用checkstyle的过程中可能需要经常的调整配置文件,有些check过于严格,可以根据实际情况取消一些代码检查。
2. CheckStype的配置详解Checkstyle配置是通过指定modules来应用到java文件的。
modules是树状结构,以一个名为Checker的module作为root节点,一般的checker都会包括TreeWalker子module。
我们可以参照checkstyle中的sun_checks.xml,这是根据sun的java语言规范写的配置。
在xml配置文件中通过module的name属性来区分module,module的Properties可以控制如何去执行这个module,每个property都有一个默认值,所有的check都有一个severity 属性,用它来指定check的level。
TreeWalker为每个java文件创建一个语法树,在节点之间调用submodules的Checks。
下面来看看standard checks中的一些具体用法。
Javadoc Commentsl JavadocPackage检查每个java package中是否有java注释文件,默认是允许一个package-info.java,也可以通过allowLegacy属性配置允许package.html。
l JavadocType检查类和接口的javadoc。
默认不检查author 和version tags。
l JavadocMethod检查方法和构造函数的javadoc。
默认不检查未使用的异常抛出。
l JavadocVariable检查变量的javadoc。
l JavadocStyle检查javadoc的格式。
比如:javadoc的第一行是否以句号结束,javadoc除了tags外是否有description,检查javadoc中的html格式。
l WriteTag输出javadoc中的tag。
Naming Conventionsl AbstractClassName检查抽象类名。
l ClassTypeParameterName检查类的Parameter名。
l ConstantName检查常量名。
l LocalFinalVariableName检查局部的final类型变量名,包括catch的参数。
l LocalVarableName检查局部的非final类型的变量名,包括catch的参数。
l MemberName检查非静态变量。
l MethodName检查方法名。
l MethodTypeParameterName检查方法的参数名。
l PackageName检查包名。
l ParameterName检查参数名。
l StaticVariableName检查静态的,非final类型的变量名。
l TypeName检查类名和接口名。
Importsl AvoidStarImport检查是否有使用*进行import。
l AvoidStaticImport检查是否有静态import。
比如是否导入了ng包中的内容。
l IllegalImport检查是否import了违法的包。
默认拒绝import所有sun.*包。
l RedundanImport检查是否有重复的import。
l UnusedImports检查是否有未使用的import。
l ImportOrder检查import的分组和顺序。
l ImportControl控制可import的包。