返回介绍

静态扫描

发布于 2023-06-19 20:49:11 字数 81664 浏览 0 评论 0 收藏 0

ESLint是什么?

ESLint 是一个插件化的 javascript 代码检测工具,它可以用于检查常见的 JavaScript 代码错误,也可以进行代码风格检查,这样我们就可以根据自己的喜好指定一套 ESLint 配置,然后应用到所编写的项目上,从而实现辅助编码规范的执行,有效控制项目代码的质量。

PHPLint是什么?

同上,是目前后端代码风格检查与基础错误代码检查

SonarQube的规则学习与分享

序号规则名key
1compareTo()或compare()返回Integer.MIN_VALUE
2compareTo返回的值与指定的值进行检测
3int转换成long,用来当做绝对时间
4JUnit拼写
5JUnit测试需要包含验证
6JUnit静态包
7JUnit验证需要包含信息
8servlet中进行相对路径遍历
9servlet中进行绝对路径遍历
10Switch语句中一个case失败以后进入了下一个caseSF_SWITCH_FALLTHROUGH
11Switch语句中没有包含defaultSF_SWITCH_NO_DEFAULT
12switch语句失败抛出异常导致无用的存储SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH_TO_THROW
13volatile的自增操作不是原子的
14一个入口的添加可能因为重用Entry对象导致失败
15一个明显不合理的方法调用
16不必要的布尔验证
17不用在iterator里重用entry对象
18不良实践 - Classloaders应该只在doPrivileged块中被创建DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED
19不良实践 - Class没有继承Exception,虽然名字像一个异常NM_CLASS_NOT_EXCEPTION
20不良实践 - Clone方法可能返回null
21不良实践 - clone方法没有调用super.clone()CN_IDIOM_NO_SUPER_CALL
22不良实践 - Comparator没有实现SerializableSE_COMPARATOR_SHOULD_BE_SERIALIZABLE
23不良实践 - equals()方法没有检测null参数NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT
24不良实践 - Equals方法不应该假设任何有关参数类型的事宜BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS
25不良实践 - equals方法因为子类失败EQ_GETCLASS_AND_CLASS_CONSTANT
26不良实践 - equals检测不兼容的参数操作EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS
27不良实践 - Finalizer中子还有null属性
28不良实践 - Finalizer没有调用父类的finalizer
29不良实践 - Finalizer空属性
30不良实践 - Finalizer除了调用父类的finalizer以外什么也没做
31不良实践 - Random对象创建后只用了一次DMI_RANDOM_USED_ONLY_ONCE
32不良实践 - readResolve方法必须返回ObjectSE_READ_RESOLVE_MUST_RETURN_OBJECT
33不良实践 - serialVersionUID不是final的SE_NONFINAL_SERIALVERSIONID
34不良实践 - serialVersionUID不是long型
35不良实践 - serialVersionUID不是static的
36不良实践 - toString方法可能返回nullNP_TOSTRING_COULD_RETURN_NULL
37不良实践 - Transient属性没有再反序列化时被设置SE_TRANSIENT_FIELD_NOT_RESTORED
38不良实践 - 不可变的类的属性应该是finalJCIP_FIELD_ISNT_FINAL_IN_IMMUTABLE_CLASS
39不良实践 - 使用== 或 !=比较StringES_COMPARING_STRINGS_WITH_EQ
40不良实践 - 使用了未来java版本中成为关键字的标识NM_FUTURE_KEYWORD_USED_AS_MEMBER_IDENTIFIER
41不良实践 - 使用的标记是未来java版本中的关键字NM_FUTURE_KEYWORD_USED_AS_IDENTIFIER
42不良实践 - 创建了一个空的jar方法入口AM_CREATES_EMPTY_JAR_FILE_ENTRY
43不良实践 - 创建了一个空的zip文件的入口AM_CREATES_EMPTY_ZIP_FILE_ENTRY
44不良实践 - 协变equals()方法定义EQ_SELF_NO_OBJECT
45不良实践 - 协变的compareTo()定义
46不良实践 - 只提供静态方法的类不需要实例化ISC_INSTANTIATE_STATIC_CLASS
47不良实践 - 可序列化的内部类SE_INNER_CLASS
48不良实践 - 在HttpSession中保存了不可序列化的对象J2EE_STORE_OF_NON_SERIALIZABLE_OBJECT_INTO_SESSION
49不良实践 - 在所有静态final属性赋值之前static初始化块创建了一个实例SI_INSTANCE_BEFORE_FINALS_ASSIGNED
50不良实践 - 如果类被扩展,GetResource的使用可能就是不安全的UI_INHERITANCE_UNSAFE_GETRESOURCE
51不良实践 - 定义了hashCode()的类使用了Object.equals()
52不良实践 - 应该删除空的finalizerFI_EMPTY
53不良实践 - 怀疑进行了引用比较RC_REF_COMPARISON
54不良实践 - 抽象类定义了协变的compareTo()方法CO_ABSTRACT_SELF
55不良实践 - 抽象类定义了协变的equals方法EQ_ABSTRACT_SELF
56不良实践 - 捕获可疑IllegalMonitorStateExceptionIMSE_DONT_CATCH_IMSE
57不良实践 - 方法可能在关闭database资源时因为异常失败
58不良实践 - 方法可能在关闭database资源时失败ODR_OPEN_DATABASE_RESOURCE
59不良实践 - 方法可能在关闭流时因为异常而失败OS_OPEN_STREAM_EXCEPTION_PATH
60不良实践 - 方法可能在关闭流时失败OS_OPEN_STREAM
61不良实践 - 方法可能忽略异常DE_MIGHT_IGNORE
62不良实践 - 方法可能抛出异常DE_MIGHT_DROP
63不良实践 - 方法忽略InputStream.read()的返回值RR_NOT_CHECKED
64不良实践 - 方法忽略了InputStream.skip()的结果SR_NOT_CHECKED
65不良实践 - 方法忽略异常返回值RV_RETURN_VALUE_IGNORED_BAD_PRACTICE
66不良实践 - 方法没有覆盖父类的方法因为参数包名错误NM_WRONG_PACKAGE_INTENTIONAL
67不良实践 - 方法调用了System.exit(...)DM_EXIT
68不良实践 - 方法调用了危险的runFinalizersOnExit方法DM_RUN_FINALIZERS_ON_EXIT
69不良实践 - 方法调用应该在doPrivileged块中
70不良实践 - 方法返回boolean类型返回了nullNP_BOOLEAN_RETURN_NULL
71不良实践 - 某些swing方法需要在swing线程中调用
72不良实践 - 检测带符号的位运算BIT_SIGNED_CHECK
73不良实践 - 比较字符串参数使用了 == 或 !=ES_COMPARING_PARAMETER_STRING_WITH_EQ
74不良实践 - 泛型调用中使用了未检查的类型GC_UNCHECKED_TYPE_IN_GENERIC_CALL
75不良实践 - 父类初始化时使用了子类IC_SUPERCLASS_USES_SUBCLASS_DURING_INITIALIZATION
76不良实践 - 直接调用finalizer
77不良实践 - 空Finalizer禁用了超类的finalizer
78不良实践 - 类名不应该和实现的接口名相同NM_SAME_SIMPLE_NAME_AS_INTERFACE
79不良实践 - 类名不应该和父类的名称相同NM_SAME_SIMPLE_NAME_AS_SUPERCLASS
80不良实践 - 类定义了clone()但没有实现CloneableCN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE
81不良实践 - 类定义了compareTo(...),但使用了Object.equals()EQ_COMPARETO_USE_OBJECT_EQUALS
82不良实践 - 类定义了equals(),但使用了Object.hashCode()HE_EQUALS_USE_HASHCODE
83不良实践 - 类定义了equals(),但是没有hashCode()HE_EQUALS_NO_HASHCODE
84不良实践 - 类定义了hashCode()但是没定义equals()HE_HASHCODE_NO_EQUALS
85不良实践 - 类实现了Cloneable ,但是没有定义或使用clone方法CN_IDIOM
86不良实践 - 类是可序列化的,但是没有定义serialVersionUIDSE_NO_SERIALVERSIONID
87不良实践 - 类是可序列化的,但是父类没有定义无参数构造方法SE_NO_SUITABLE_CONSTRUCTOR
88不良实践 - 类是可扩展的,但是没有提供无参数的构造方法SE_NO_SUITABLE_CONSTRUCTOR_FOR_EXTERNALIZATION
89不良实践 - 类继承了equals(),但使用了Object.hashCode()HE_INHERITS_EQUALS_USE_HASHCODE
90不良实践 - 迭代器的next()方法不能抛出NoSuchElementExceptionIT_NO_SUCH_ELEMENT
91不良实践 - 迷惑的方法名NM_CONFUSING
92不良实践 - 非serializable类有一个可序列化的内部类
93不良实践 - 非常迷惑的方法名称(可能是内部方法)NM_VERY_CONFUSING_INTENTIONAL
94不良实践 - 非序列化值保存在序列化类的实例变量中SE_BAD_FIELD_STORE
95使用assertEquals替换assertTrue
96使用assertNull替换assertTrue
97使用assertSame替换assertTrue
98使用错误 - 0至1的随机数被当做整数0RV_01_TO_INT
99使用错误 - TestCase定义的setUp没有调用super.setUp()
100使用错误 - 不可能的转换BC_IMPOSSIBLE_CAST
101使用错误 - 使用equals()比较不兼容的数组EC_INCOMPATIBLE_ARRAY_COMPARE
102使用错误 - 使用equals()比较不同类型EC_UNRELATED_TYPES
103使用错误 - 尝试计算32位随机整数的绝对值RV_ABSOLUTE_VALUE_OF_RANDOM_INT
104使用错误 - 怀疑对两个布尔值的引用进行比较RC_REF_COMPARISON_BAD_PRACTICE_BOOLEAN
105使用错误 - 某个值使用了注解限制类型,但是这个限制永远不会发生
106使用错误 - 非虚拟方法调用向非空参数传入了null
107信任默认字符编码
108国际化 - 考虑使用国际化参数型的调用方法版本DM_CONVERT_CASE
109在util.concurrent抽象中使用监控样式的wait方法
110在序列化类中出现了非transient也非serializable的实例属性
111多线程错误 - Wait不在循环中WA_NOT_IN_LOOP
112多线程错误 - 不一致的同步IS2_INCONSISTENT_SYNC
113多线程错误 - 不一致的同步
114多线程错误 - 不匹配的wait()MWN_MISMATCHED_WAIT
115多线程错误 - 使用notify()而不是notifyAll()NO_NOTIFY_NOT_NOTIFYALL
116多线程错误 - 使用同步的属性可能发生改变
117多线程错误 - 使用默认的空run方法创建了一个线程DM_USELESS_THREAD
118多线程错误 - 可变的servlet属性MSF_MUTABLE_SERVLET_FIELD
119多线程错误 - 可能对属性进行了双重检测
120多线程错误 - 同步内部String可能导致死锁DL_SYNCHRONIZATION_ON_SHARED_CONSTANT
121多线程错误 - 同步和空值检测发生在同一个属性上NP_SYNC_AND_NULL_CHECK_FIELD
122多线程错误 - 同步装箱基本类型可能导致死锁DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE
123多线程错误 - 在Boolean上使用同步可能导致死锁DL_SYNCHRONIZATION_ON_BOOLEAN
124多线程错误 - 在getClass上使用同步而不是在class文字上WL_USING_GETCLASS_RATHER_THAN_CLASS_LITERAL
125多线程错误 - 在java.util.concurrent Lock上进行了同步JLM_JSR166_LOCK_MONITORENTER
126多线程错误 - 在线程中调用了run(你的意思是再启动一次么?)RU_INVOKE_RUN
127多线程错误 - 在装箱的基本属性上使用了同步DL_SYNCHRONIZATION_ON_UNSHARED_BOXED_PRIMITIVE
128多线程错误 - 属性不能保证同步访问IS_FIELD_NOT_GUARDED
129多线程错误 - 数组的volatile引用不会把数组元素也当做volatile来引用VO_VOLATILE_REFERENCE_TO_ARRAY
130多线程错误 - 方法在一个修改了的属性上进行了同步ML_SYNC_ON_UPDATED_FIELD
131多线程错误 - 方法在获得锁时调用了Thread.sleep()SWL_SLEEP_WITH_LOCK_HELD
132多线程错误 - 方法对一个属性循环复制SP_SPIN_ON_FIELD
133多线程错误 - 方法没有在任何路径中释放锁UL_UNRELEASED_LOCK
134多线程错误 - 方法没有在所有异常路径释放锁UL_UNRELEASED_LOCK_EXCEPTION_PATH
135多线程错误 - 无条件等待UW_UNCOND_WAIT
136多线程错误 - 未使用同步包裹的notify
137多线程错误 - 未同步的getter方法,同步的setter方法UG_SYNC_SET_UNSYNC_GET
138多线程错误 - 未在循环中使用的Condition.await()
139多线程错误 - 构造方法调用了Thread.start()SC_START_IN_CTOR
140多线程错误 - 根据条件监控wait()的调用DM_MONITOR_WAIT_ON_CONDITION
141多线程错误 - 空的同步块ESync_EMPTY_SYNC
142多线程错误 - 等待两个被持有的锁
143多线程错误 - 类的readObject()方法不是同步的RS_READOBJECT_SYNC
144多线程错误 - 类的writeObject()方法是同步的,但是没有做其他事情WS_WRITEOBJECT_SYNC
145多线程错误 - 调用静态CalendarSTCAL_INVOKE_ON_STATIC_CALENDAR_INSTANCE
146多线程错误 - 调用静态DateFormatSTCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE
147多线程错误 - 错误的对static属性进行了延迟初始化LI_LAZY_INIT_STATIC
148多线程错误 - 错误的延迟初始化和更新静态属性LI_LAZY_INIT_UPDATE_STATIC
149多线程错误 - 静态CalendarSTCAL_STATIC_CALENDAR_INSTANCE
150多线程错误 - 静态DateFormatSTCAL_STATIC_SIMPLE_DATE_FORMAT_INSTANCE
151多线程错误- 不匹配的notify()MWN_MISMATCHED_NOTIFY
152字段未标记为final但是应该重构为final
153安全风险 - HTTP cookie可能来自不被信任的输入HRS_REQUEST_PARAMETER_TO_COOKIE
154安全风险 - HTTP响应拆分漏洞HRS_REQUEST_PARAMETER_TO_HTTP_HEADER
155安全风险 - JSP反射调用跨域脚本漏洞XSS_REQUEST_PARAMETER_TO_JSP_WRITER
156安全风险 - Servlet反射跨域脚本漏洞XSS_REQUEST_PARAMETER_TO_SERVLET_WRITER
157安全风险 - servlet的反射导致跨站脚本漏洞XSS_REQUEST_PARAMETER_TO_SEND_ERROR
158安全风险 - 使用非常量字符串创建了一个PreparedStatement
159安全风险 - 硬编码了数据库密码DMI_CONSTANT_DB_PASSWORD
160安全风险 - 空的数据库密码DMI_EMPTY_DB_PASSWORD
161安全风险 - 非常量的字符串传递给方法执行SQL语句SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE
162对方法返回值进行未检测/未证实的类型转换
163局部变量给自己赋值而不是赋值到实例变量中
164属性名应该以小写字母开头NM_FIELD_NAMING_CONVENTION
165并发抽象的顺序调用可能不是原子的
166性能 - keySet迭代是低效的,使用entrySet代替WMI_WRONG_MAP_ITERATOR
167性能 - URL的equals 和 hashCode 方法会被堵塞DMI_BLOCKING_METHODS_ON_URL
168性能 - URL的Maps 和 sets可能是性能大问题DMI_COLLECTION_OF_URLS
169性能 - 仅为了获得一个方法就创建了一个对象
170性能 - 从未用到的私有方法UPM_UNCALLED_PRIVATE_METHOD
171性能 - 使用Random的nextInt方法来获得一个随机整数,而不是nextDoubleDM_NEXTINT_VIA_NEXTDOUBLE
172性能 - 可以筹够成一个静态内部类
173性能 - 可以重构成一个静态内部类
174性能 - 基本数据被装箱又被拆箱BX_BOXING_IMMEDIATELY_UNBOXED_TO_PERFORM_COERCION
175性能 - 基本类型包装之后立刻解包BX_BOXING_IMMEDIATELY_UNBOXED
176性能 - 巨大的字符串常量在多个类文件中间重复了
177性能 - 应该是一个静态内部类
178性能 - 方法使用了toArray()对空数组参数ITA_INEFFICIENT_TO_ARRAY
179性能 - 方法使用了装箱的基本类型只为了调用toStringDM_BOXED_PRIMITIVE_TOSTRING
180性能 - 方法在循环中使用+进行字符串拼接SBSC_USE_STRINGBUFFER_CONCATENATION
181性能 - 方法常量调用了静态Math类方法UM_UNNECESSARY_MATH
182性能 - 方法调用了String的toString()方法DM_STRING_TOSTRING
183性能 - 方法调用了低效的Boolean构造方法;使用Boolean.valueOf(...)代替DM_BOOLEAN_CTOR
184性能 - 方法调用了低效的new String()构造方法DM_STRING_VOID_CTOR
185性能 - 方法调用了低效的浮点书构造方法;应该使用静态的valueOf代替DM_FP_NUMBER_CTOR
186性能 - 方法调用了效率很低的new String(String)构造方法DM_STRING_CTOR
187性能 - 方法调用低效的数字构造方法;使用静态valueOf代替DM_NUMBER_CTOR
188性能 - 无用的属性UUF_UNUSED_FIELD
189性能 - 未读取的属性:这个属性是否应该是static的?SS_SHOULD_BE_STATIC
190性能 - 直接调用垃圾回收,特别是在性能测试中的可疑代码DM_GC
191性能 - 读不到的属性URF_UNREAD_FIELD
192恶意代码漏洞 - Finalizer应该是protected,不能是publicFI_PUBLIC_SHOULD_BE_PROTECTED
193恶意代码漏洞 - Public static方法可能因为返回了一个数组而暴露内部实现MS_EXPOSE_REP
194恶意代码漏洞 - 可能暴露内部实现,通过与可变对象引用协作EI_EXPOSE_REP2
195恶意代码漏洞 - 可能通过返回一个可变对象的引用暴露了内部实现EI_EXPOSE_REP
196恶意代码漏洞 - 字段不是final的,不能防止恶意代码的攻击
197恶意代码漏洞 - 属性不是final,但是应该设置成final
198恶意代码漏洞 - 属性应该从接口中移除并将访问权限设置为包保护MS_OOI_PKGPROTECT
199恶意代码漏洞 - 属性应该同时是final 和 package protected的MS_FINAL_PKGPROTECT
200恶意代码漏洞 - 属性应该是package protectedMS_PKGPROTECT
201恶意代码漏洞 - 属性是可变数组MS_MUTABLE_ARRAY
202恶意代码漏洞 - 属性是可变的HashtableMS_MUTABLE_HASHTABLE
203恶意代码漏洞 - 把可变对象保存到静态字段中可能会暴露内部静态状态
204方法参数顺序翻转
205方法可能因为checked exception导致清理流或资源失败
206方法名应该以小写字母开头NM_METHOD_NAMING_CONVENTION
207方法忽略了返回值,这是正常的吗?
208无用的局部变量可能与实例属性同名
209未初始化的public 或 protected 属性
210未被使用的public 或 protected 属性
211未被读取的public/protected属性
212格式化代码应该使用%n代替
213比较两个类型不兼容的值
214测试类没包含测试用例(仅对应JUnit 3.x)
215由double构造BigDecimal时没有指定精确度
216由于switch语句导致的无用存储SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH
217简化布尔验证
218类名应该以大写字母开头NM_CLASS_NAMING_CONVENTION
219类定义了equal(Object),应该是equals(Object)吧?NM_BAD_EQUAL
220类定义了hashcode(); 应该是hashCode()吧?NM_LCASE_HASHCODE
221类定义了tostring(); 应该是toString()吧?NM_LCASE_TOSTRING
222装箱的值被拆箱,然后立刻重新装箱了
223试验 - findbugs丢失了期待或需要的警告
224试验 - OpenJDK中存在潜在的丢失logger的风险,因为弱引用LG_LOST_LOGGER_DUE_TO_WEAK_REFERENCE
225试验 - 在final类上调用了equals,但是没有覆盖Object的equals方法
226试验 - 抽象方法已经在实现的接口中定义了
227试验 - 方法代理到父类方法
228试验 - 方法可能在清理流或资源时失败OBL_UNSATISFIED_OBLIGATION
229试验 - 方法访问了一个拥有的类的私有成员
230试验 - 未期待/未期望的findbugs警告
231试验 - 类间存在循环引用
232试验 - 错误的Applet构造方法依赖未初始化的AppletStub
233读取了未初始化的public或protected属性
234调换了compareTo()/compare()结果的正负
235错误 - 在thread实例上调用了静态Thread.interrupted()方法STI_INTERRUPTED_ON_UNKNOWNTHREAD
236错误 - 对数组执行toStringDMI_INVOKING_TOSTRING_ON_ANONYMOUS_ARRAY
237错误 - 非常容易迷惑的方法名NM_VERY_CONFUSING
238错误比较int值和long常量
239错误用法 - "."用作正则表达式
240错误用法 - close()调用了一个永远是null的值NP_CLOSING_NULL
241错误用法 - currentThread()调用的不必要用法,调用了interrupted()STI_INTERRUPTED_ON_CURRENTTHREAD
242错误用法 - equals()方法定义没有覆盖Object.equals(Object)EQ_OTHER_USE_OBJECT
243错误用法 - equals()方法定义,但是没有覆盖equals(Object)EQ_OTHER_NO_OBJECT
244错误用法 - equals()比较无关的类和接口EC_UNRELATED_CLASS_AND_INTERFACE
245错误用法 - equals()用来比较数组和非数组EC_ARRAY_AND_NONARRAY
246错误用法 - equals方法一直返回falseEQ_ALWAYS_FALSE
247错误用法 - equals方法总是返回trueEQ_ALWAYS_TRUE
248错误用法 - equals方法比较类名而不是比较类EQ_COMPARING_CLASS_NAMES
249错误用法 - equals方法覆盖了父类的equals可能功能不符EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC
250错误用法 - File.separator用做正则表达式RE_CANT_USE_FILE_SEPARATOR_AS_REGULAR_EXPRESSION
251错误用法 - hasNext方法调用了next方法
252错误用法 - instanceof一直返回falseBC_IMPOSSIBLE_INSTANCEOF
253错误用法 - int值转换成float,然后传递给Math.roundICAST_INT_CAST_TO_FLOAT_PASSED_TO_ROUND
254错误用法 - int转换成double,然后传递给Math.ceilICAST_INT_CAST_TO_DOUBLE_PASSED_TO_CEIL
255错误用法 - null值一定会被调用NP_GUARANTEED_DEREF
256错误用法 - null值会在exception处理中被用到NP_GUARANTEED_DEREF_ON_EXCEPTION_PATH
257错误用法 - readResolve方法没有生命为static方法SE_READ_RESOLVE_IS_STATIC
258错误用法 - TestCase声明了一个错误的suite方法IJU_BAD_SUITE_METHOD
259错误用法 - TestCase定义的tearDown没有调用super.tearDown()
260错误用法 - TestCase实现了非static suite方法
261错误用法 - TestCase没有任何测试
262错误用法 - 一个已知的null值被检测它是否是一个类型的实例NP_NULL_INSTANCEOF
263错误用法 - 一个集合被添加到自身IL_CONTAINER_ADDED_TO_ITSELF
264错误用法 - 不兼容的位掩码(BIT_AND)BIT_AND
265错误用法 - 不兼容的位掩码(BIT_IOR)BIT_IOR
266错误用法 - 不可能转型BC_IMPOSSIBLE_DOWNCAST
267错误用法 - 不必要的类型检测使用instanceof操作符SIO_SUPERFLUOUS_INSTANCEOF
268错误用法 - 不能使用反射检测没有标记为runtime rentention的注解的存在DMI_ANNOTATION_IS_NOT_VISIBLE_TO_REFLECTION
269错误用法 - 不要使用removeAll清空集合DMI_USING_REMOVEALL_TO_CLEAR_COLLECTION
270错误用法 - 传递了多余实际使用的格式化字符串的参数VA_FORMAT_STRING_EXTRA_ARGUMENTS_PASSED
271错误用法 - 使用指针比较不同的类型EC_UNRELATED_TYPES_USING_POINTER_EQUALITY
272错误用法 - 使用格式化字符串对数组进行了无用的格式化
273错误用法 - 使用空参数调用equals()EC_NULL_ARG
274错误用法 - 值不要求有类型标示,但是标记为未知
275错误用法 - 值可能带着一个类型修饰符,一直使用的方式是与这个类型修饰符相悖的
276错误用法 - 值可能没有携带一个类修饰符,但是使用中会一直需要这个类修饰符
277错误用法 - 创建了没有任何线程的ScheduledThreadPoolExecutor
278错误用法 - 匿名内部类中定义的不可调用的方法UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS
279错误用法 - 协变equals()方法定义,继承了Object.equals(Object)EQ_SELF_USE_OBJECT
280错误用法 - 参数没有被使用,但是被重新赋值了IP_PARAMETER_IS_DEAD_BUT_OVERWRITTEN
281错误用法 - 可疑的引用与常量的比较RC_REF_COMPARISON_BAD_PRACTICE
282错误用法 - 可能出现空指针引用
283错误用法 - 右移的数值不在0..31范围内
284错误用法 - 在int上调用了Double.longBitsToDoubleDMI_LONG_BITS_TO_DOUBLE_INVOKED_ON_INT
285错误用法 - 在run方法中的JUnit检验不能报告给JUnitIJU_ASSERT_METHOD_INVOKED_FROM_RUN_METHOD
286错误用法 - 在哈希数据结构中使用的类没有定义hashCode()方法HE_USE_OF_UNHASHABLE_CLASS
287错误用法 - 在哈希构造中声明了不能哈希的类HE_SIGNATURE_DECLARES_HASHING_OF_UNHASHABLE_CLASS
288错误用法 - 在带符号的byte值上进行位add运算
289错误用法 - 在带符号的byte值上进行位OR运算
290错误用法 - 在数组上调用了hashCodeDMI_INVOKING_HASHCODE_ON_ARRAY
291错误用法 - 基本类型数组传递给一个期待可变对象类型参数的方法
292错误用法 - 基础类型拆箱后用于三元表达式
293错误用法 - 对一个变量进行无意义的自我计算 (比如 x & x)SA_LOCAL_SELF_COMPUTATION
294错误用法 - 对一个已经使用的值进行了null检测
295错误用法 - 对于month错误的常量值DMI_BAD_MONTH
296错误用法 - 对属性进行双重赋值SA_FIELD_DOUBLE_ASSIGNMENT
297错误用法 - 尝试修改ScheduledThreadPoolExecutor的最大数
298错误用法 - 尝试向一个对象输出流添加信息IO_APPENDING_TO_OBJECT_OUTPUT_STREAM
299错误用法 - 属性已经标记为NonNull,但是设置了一个null值NP_STORE_INTO_NONNULL_FIELD
300错误用法 - 属性曾经设置为nullUWF_NULL_FIELD
301错误用法 - 属性自己与自己进行了比较SA_FIELD_SELF_COMPARISON
302错误用法 - 属性自身赋值SA_FIELD_SELF_ASSIGNMENT
303错误用法 - 异常创建后就丢弃了,没有抛出RV_EXCEPTION_NOT_THROWN
304错误用法 - 忽略了putIfAbsent的返回值,传递给putIfAbsent的值被重用
305错误用法 - 执行到下一行的无用流程控制UCF_USELESS_CONTROL_FLOW_NEXT_LINE
306错误用法 - 提供的参数类型与格式化标记不符VA_FORMAT_STRING_BAD_CONVERSION
307错误用法 - 数值需要类型标示,但是却标记为未知
308错误用法 - 整数乘法的结果是整数IM_MULTIPLYING_RESULT_OF_IREM
309错误用法 - 整数剩余模1
310错误用法 - 方法传递null给一个非空参数NP_NONNULL_PARAM_VIOLATION
311错误用法 - 方法可能返回null,但是声明了 @NonNullNP_NONNULL_RETURN_VIOLATION
312错误用法 - 方法在布尔表达式中分配了boolean文字QBA_QUESTIONABLE_BOOLEAN_ASSIGNMENT
313错误用法 - 方法定义了一个变量,与实例变量同名。MF_METHOD_MASKS_FIELD
314错误用法 - 方法尝试访问PreparedStatement参数的索引是0
315错误用法 - 方法尝试访问一个ResultSet,但是使用的index是0
316错误用法 - 方法必须是private的为了让序列化正常工作SE_METHOD_MUST_BE_PRIVATE
317错误用法 - 方法忽略了返回值RV_RETURN_VALUE_IGNORED
318错误用法 - 方法忽略了返回值
319错误用法 - 方法没有检查空参数NP_ARGUMENT_MIGHT_BE_NULL
320错误用法 - 方法没有覆盖父类的方法,因为参数的包不正确NM_WRONG_PACKAGE
321错误用法 - 方法的异常路径中可能引用空指针NP_NULL_ON_SOME_PATH_EXCEPTION
322错误用法 - 方法的异常路径中引用了空指针NP_ALWAYS_NULL_EXCEPTION
323错误用法 - 方法调用传递null给非空参数 (ALL_TARGETS_DANGEROUS)NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS
324错误用法 - 方法调用把null传递给一个非null参数
325错误用法 - 方法进行数学运算时使用了浮点数的精度
326错误用法 - 无意义的自我计算 (比如 x & x)
327错误用法 - 明显的方法/构造方法混淆NM_METHOD_CONSTRUCTOR_CONFUSION
328错误用法 - 明显的无限循环IL_INFINITE_LOOP
329错误用法 - 明显的无限递归循环
330错误用法 - 未赋值属性
331错误用法 - 构造方法中对未初始化的类进行了读取UR_UNINIT_READ
332错误用法 - 构造方法没有初始化属性UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR
333错误用法 - 枚举定义了协变equals()方法定义EQ_DONT_DEFINE_EQUALS_FOR_ENUM
334错误用法 - 某个值使用了注解标记不会限制类型,但是这个限制是必须的
335错误用法 - 格式化字符串占位符与传入的参数不匹配VA_FORMAT_STRING_BAD_ARGUMENT
336错误用法 - 格式化字符串参数的数目与占位符不相等
337错误用法 - 格式化字符串引用的参数丢失VA_FORMAT_STRING_MISSING_ARGUMENT
338错误用法 - 格式化字符串没有前面的参数VA_FORMAT_STRING_NO_PREVIOUS_ARGUMENT
339错误用法 - 检查 ((...) & 0) == 0 是否成立BIT_AND_ZZ
340错误用法 - 检查位运算的符号BIT_SIGNED_CHECK_HIGH_BIT
341错误用法 - 泛型参数与方法参数没有相互关系GC_UNRELATED_TYPES
342错误用法 - 测试是否与NaN相等FE_TEST_IF_EQUAL_TO_NOT_A_NUMBER
343错误用法 - 父类的构造方法调用未初始化属性的方法UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR
344错误用法 - 类中保存了无用字符DLS_DEAD_STORE_OF_CLASS_LITERAL
345错误用法 - 类定义了属性覆盖了父类的属性MF_CLASS_MASKS_FIELD
346错误用法 - 类覆盖了父类中实现的方法适配器错误BX_UNBOXED_AND_COERCED_FOR_TERNARY_OPERATOR
347错误用法 - 自己和自己的值比较SA_LOCAL_SELF_COMPARISON
348错误用法 - 读取未初始化的属性
349错误用法 - 调用equals()比较不同的接口类型EC_UNRELATED_INTERFACES
350错误用法 - 调用equals(),与==效果一样
351错误用法 - 调用了null指针NP_ALWAYS_NULL
352错误用法 - 调用了数组的toStringDMI_INVOKING_TOSTRING_ON_ARRAY
353错误用法 - 返回语句中的无用的赋值DLS_DEAD_LOCAL_STORE_IN_RETURN
354错误用法 - 重写了自增DLS_OVERWRITTEN_INCREMENT
355错误用法 - 重复判断条件RpC_REPEATED_CONDITIONAL_TEST
356错误用法 - 错误比较带符号的byteINT_BAD_COMPARISON_WITH_SIGNED_BYTE
357错误用法 - 错误比较非负值与负数INT_BAD_COMPARISON_WITH_NONNEGATIVE_VALUE
358错误用法 - 错误的尝试计算带符号的32位hashcodde的绝对值RV_ABSOLUTE_VALUE_OF_HASHCODE
359错误用法 - 集合不应该包含自身DMI_COLLECTIONS_SHOULD_NOT_CONTAIN_THEMSELVES
360错误用法 - 集合的调用不能被感知DMI_VACUOUS_SELF_COLLECTION_CALL
361错误用法 - 集合转换为数组元素时发生的类型转换错误BC_IMPOSSIBLE_DOWNCAST_OF_TOARRAY
362错误用法 - 需要使用printf样式时使用了MessageFormatVA_FORMAT_STRING_EXPECTED_MESSAGE_FORMAT_SUPPLIED
363错误用法 - 非法的格式化字符串VA_FORMAT_STRING_ILLEGAL
364错误用法 - 非法的正则表达式RE_BAD_SYNTAX_FOR_REGULAR_EXPRESSION
365错误用法 - 非静态内部类和ThreadLocal的致命结合SIC_THREADLOCAL_DEADLY_EMBRACE
366非null字段没有初始化
367高危 - for循环中存在复杂,微妙或者错误的自增QF_QUESTIONABLE_FOR_LOOP
368高危 - hashCode的结果可能是负数negative
369高危 - instanceof会一直返回trueBC_VACUOUS_INSTANCEOF
370高危 - int相除的结果转换成double或floatICAST_IDIV_CAST_TO_DOUBLE
371高危 - 其余32位带符号随机整数RV_REM_OF_RANDOM_INT
372高危 - 初始化死循环IC_INIT_CIRCULARITY
373高危 - 加载了已知的null值
374高危 - 参数必须非null但是标记为可为nullNP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE
375高危 - 可疑的非短路逻辑NS_NON_SHORT_CIRCUIT
376高危 - 在两个switch语句中使用了相同的代码DB_DUPLICATE_SWITCH_CLAUSES
377高危 - 在两个分支中使用了相同的代码DB_DUPLICATE_BRANCHES
378高危 - 在整形上进行位操作时有一些位上出现空洞
379高危 - 对一个已知不是null的值重复进行空值判断RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE
380高危 - 对奇偶判断不能用于负数
381高危 - 局部变量的自我赋值SA_LOCAL_SELF_ASSIGNMENT
382高危 - 已知的null值被重复的检测
383高危 - 希望传入Runnable的地方传入了一个Thread
384高危 - 扩展Servlet的类使用了实例变量MTIA_SUSPECT_SERVLET_INSTANCE_FIELD
385高危 - 把null设置给不会用到的局部变量DLS_DEAD_LOCAL_STORE_OF_NULL
386高危 - 捕获了没有抛出的异常REC_CATCH_EXCEPTION
387高危 - 整形乘法的结果转换为long型ICAST_INTEGER_MULTIPLY_CAST_TO_LONG
388高危 - 整形的空比较INT_VACUOUS_COMPARISON
389高危 - 方法丢掉了readLine的结果,在检测它是非空之后。RV_DONT_JUST_NULL_CHECK_READLINE
390高危 - 方法检查检查String.indexOf的结果是否为正数
391高危 - 方法直接调用了xml接口的一个具体实现XFB_XML_FACTORY_BYPASS
392高危 - 无用控制流UCF_USELESS_CONTROL_FLOW
393高危 - 无符号右移转换为short/byteICAST_QUESTIONABLE_UNSIGNED_RIGHT_SHIFT
394高危 - 未检查/未证实的类型转换BC_UNCONFIRMED_CAST
395高危 - 未用的局部变量DLS_DEAD_LOCAL_STORE
396高危 - 没有判断readLine()的结果是否为空NP_DEREFERENCE_OF_READLINE_VALUE
397高危 - 测试浮点数相等FE_FLOATING_POINT_EQUALITY
398高危 - 潜在危险使用非短跳出逻辑NS_DANGEROUS_NON_SHORT_CIRCUIT
399高危 - 私有readResolve方法不是继承自父类SE_PRIVATE_READ_RESOLVE_NOT_INHERITED
400高危 - 立刻使用了readLine()的结果NP_IMMEDIATE_DEREFERENCE_OF_READLINE
401高危 - 类包含一个硬编码的绝对路径DMI_HARDCODED_ABSOLUTE_FILENAME
402高危 - 类在公用接口中暴露了同步和信号
403高危 - 类太大不能分析
404高危 - 类实现了父类一样的接口RI_REDUNDANT_INTERFACES
405高危 - 类是final的,但是定义了protected属性CI_CONFUSED_INHERITANCE
406高危 - 类没有覆盖父类的equals方法EQ_DOESNT_OVERRIDE_EQUALS
407高危 - 类的transient属性不能序列化
408高危 - 给局部变量双重赋值SA_LOCAL_DOUBLE_ASSIGNMENT
409高危 - 继承了struts Action的类使用了实例变量
410高危 - 罕见的equals方法
411高危 - 考虑返回空数组而不是nullPZLA_PREFER_ZERO_LENGTH_ARRAYS
412高危 - 被继承的或外部的方法的模棱两可的调用
413高危 - 计算平均值可能溢出IM_AVERAGE_COMPUTATION_COULD_OVERFLOW
414高危 - 调用substring(0)会返回原值DMI_USELESS_SUBSTRING
415高危 - 调用不支持的方法
416高危 - 调用返回返回值可能出现null值NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE
417高危 - 转换成具体集合可能有问题BC_BAD_CAST_TO_CONCRETE_COLLECTION
418高危 - 转换成抽象集合值得怀疑BC_BAD_CAST_TO_ABSTRACT_COLLECTION
419高危 - 这个路径上空指针引用是不可实现的
420高危 - 通过一个实例方法更新静态属性
421高危 - 重复比较两个null值RCN_REDUNDANT_COMPARISON_TWO_NULL_VALUES
422高危 - 重复比较非空值和nullRCN_REDUNDANT_COMPARISON_OF_NULL_AND_NONNULL_VALUE
423高危 - 非布尔参数使用%b进行了格式化VA_FORMAT_STRING_BAD_CONVERSION_TO_BOOLEAN
424高危 - 非持久化的对象写入了ObjectOutputDMI_NONSERIALIZABLE_OBJECT_WRITTEN

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文