Java-idea-FindBugs字节码级别潜在bug查看
一、概述
静态分析工具承诺无需开发人员费劲就能找出代码中已有的缺陷。
FindBugs 不注重样式或者格式,它试图只寻找真正的缺陷或者潜在的性能问题。
4、结果说明
1->Bad pratice编程的坏习惯
主要是命名问题,比如类名最好以大写开头,字符串不要使用等号不等号进行比较,可能会有异常最好用try-catch包裹的代码,方法有返回值但被忽略等等,这些如果不想改可以直接忽略.
2->Malicious code vulnerability 恶意代码漏洞
主要是一些属性直接使用public让别的类来获取,建议改为private并为其提供get/set方法.
还有一些public的静态字段,可能会被别的包获取之类的.
这些也需要根据项目具体情况来,个人意见,在有的不重要类,有时直接公开使用属性,可能更为便捷.如果你认为这些不需要修改,完全可以忽略.
3->Dodgy code 糟糕的代码
比如一个double/float被强制转换成int/long可能会导致精度损失,一些接近零的浮点数会被直接截断,事实上我们应该保留.
在规范代码,尽量规避错误这方面我也有了一些收获.
在类型转换的时候,我们应该为类型转换提供一个安全的转换方法,因为我们永远不会知道,我们的app在用户手里会发生什么,所以我们要尽可能的去减少这种发生错误的可能.
比如使用switch的时候没有提供default。
多余的空检查,就是不可能为空的值,增加了不为空判断,这是没有必要的。属于代码冗余
不安全的类型转换等等。
4->performance 性能
主要是一些无用的代码,比如声明了没有用到的属性等等
5->correctness 代码的正确性 这一项应该算是最重要的了
主要是没有对变量进行不为空判定,在特殊情况可能发生空指针异常.
Java-idea-FindBugs字节码级别潜在bug查看的更多相关文章
- Java-idea-PMD源文件级别潜在bug查看
一.概述 PMD(Project Manager Design)是一种开源分析Java代码错误的工具.与其他分析工具不同的是,PMD通过静态分析获知代码错误.也就是说,在不运行Java程序的情况下报告 ...
- java编译后字节码解析
java编译后字节码解析 参考网摘: https://my.oschina.net/indestiny/blog/194260
- 命令查看java的class字节码文件、verbose、synchronize、javac、javap
查看Java字节码 1 javac –verbose查看运行类是加载了那些jar文件 HelloWorld演示: public class Test { public static void main ...
- jbe 可以用来修改Java class的字节码,配合jd-gui 使用
jbe 可以用来修改Java class的字节码,配合jd-gui 使用
- 深入浅出Java探针技术1--基于java agent的字节码增强案例
Java agent又叫做Java 探针,本文将从以下四个问题出发来深入浅出了解下Java agent 一.什么是java agent? Java agent是在JDK1.5引入的,是一种可以动态修改 ...
- Java虚拟机--虚拟机字节码执行引擎
Java虚拟机--虚拟机字节码执行引擎 所有的Java虚拟机的执行引擎都是一致的:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果. 运行时栈帧结构 用于支持虚拟机进行方法调用和方 ...
- Java反射获取字节码以及判断类型
一.获取类的字节码的三种方法: 1.使用Class.class Class<?> c1=String.class; 2.使用实例.getClass() String s= Clas ...
- [三] java虚拟机 JVM字节码 指令集 bytecode 操作码 指令分类用法 助记符
说明,本文的目的在于从宏观逻辑上介绍清楚绝大多数的字节码指令的含义以及分类 只要认真阅读本文必然能够对字节码指令集有所了解 如果需要了解清楚每一个指令的具体详尽用法,请参阅虚拟机规范 指令简介 计算机 ...
- 命令查看java的class字节码文件
源代码: public class Math { public static void main(String[] args){ int a=1; int b=2; int c=(a+b)*10; } ...
随机推荐
- 数据挖掘Apriori算法——学习笔记
关联规则.频繁项集.支持度.置信度 关联规则挖掘: 一起购买的商品 支持度(support) 支持度会随着物品增多而减小.因为是同时购买的比率. 置信度(Confidence) 频繁且强规则,有一定意 ...
- Java精选笔记_Java入门
Java概述 什么是Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言 JavaSE标准版 是为开发普通桌面和商务应用程序提供的解决方案 JavaEE企业版 是为开发企业级应用程序提供的解 ...
- ionic跳转(一)
在ionic中可以用两个办法写中转链接(写模版地址或路由地址) 1)a 标签的 href <a class="button button-icon icon ion-android-h ...
- 单独使用 EHCache
1. EHCache 的特点,是一个纯Java ,过程中(也可以理解成插入式)缓存实现,单独安装Ehcache ,需把ehcache-X.X.jar 和相关类库方到classpath中.如项目已安装了 ...
- 3dsmax sendto mudbox失效解决方案
查看C:\ProgramData\Autodesk\Synergy下的max.2014.1.64.syncfg和Mudbox.2014.0.Windows.64.syncfg两个文件, 找到 Exec ...
- 开源项目源码解析-PhotoView 源码解析
1. 功能介绍 特性(Features): 支持 Pinch 手势自由缩放. 支持双击放大/还原. 支持平滑滚动. 在滑动父控件下能够运行良好.(例如:ViewPager) 支持基于 Matrix 变 ...
- 安卓教程:提取APK程序里图片资源的方法
有些APK程序里的图标.图片很漂亮,在使用程序时你可能会想,如果能把这些漂亮的图标.图片提取出来就好了,其实这是可以办到的,请看教程. 本教程以“电影超人”的APK安装包为例,其它APK程序的提取方法 ...
- iOS @synthesize var = _var 变量前置下划线解释
本文转载至 http://blog.csdn.net/ztp800201/article/details/9231617 前置下划线是一种为了帮助区分实例变量和访问方法的约定.对于编译器来说它只是一 ...
- poj_2286 IDA*
题目大意 给定一个由数字组成的#字型网格,和一定的移动规则,问最少需要多少次移动才能达到要求的结果. 题目分析 要求最少需要几步到达结果,可以考虑广度优先搜索算法,或者迭代加深深度优先搜索(IDA*) ...
- TCP异常关闭研究分析
版权声明:本文由谢代斌原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/108 来源:腾云阁 https://www.qclo ...