在开发过程中遇到了以下问题: FindBugs: boxing/unboxing to parse a primitive 查看代码(左边是老代码,右边是新的): 问题出在 自动装箱和拆箱的检查. 参考相关资料:https://www.cnblogs.com/yongwangzhiqian/p/3977529.html 查看源码: 先看parseInt源码: Step1: 这里是radix是指10进制 Step2: 摘取了核心代码,底层是依赖Character的digit方法,是逐位去解析str…
[boxing & unboxing] Boxing is the process of converting a value type to the type object or to any interface type implemented by this value type. When the CLR boxes a value type, it wraps the value inside a System.Object and stores it on the managed h…
FindBugs 1.什么是FindBugs FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题.有了静态分析工具,就可以在不实际运行程序的情况对软件进行分析.不是通过分析类文件的形式或结构来确定程序的意图,而是通常使用 Visitor 模式来鉴别代码是否符合一些固定的规范. 2.安装  安装完之后,重启studio,会发现左下角会出现findbugs的图标 可以分析单个文件,包下面的所有文件,整个module下的文件,整个proje…
1.Bug:DM_BOXED_PRIMITIVE_FOR_PARSING "Boxing/unboxing to parse a primitive", A boxed primitive is created from a String, just to extract the unboxed primitive value. It is more efficient to just call the static parseXXX method 原因:装箱和拆箱的问题,把一个字符串…
安装就不说了,网上很多. 一些常见的错误信息 Bad practice 代码中的一些坏习惯 Class names should start with an upper case letter 主要包括类名的命名,以大写字母开头 Method names should start with a lower case letter 方法名以小写字母开头 Field names should start with a lower case letter 字段名以小写字母开头 equals()meth…
1 下载 2 重启idea 选中文件,右键 附:一些常见的错误信息 Bad practice 代码中的一些坏习惯 Class names should start with an upper case letter 主要包括类名的命名,以大写字母开头 Method names should start with a lower case letter 方法名以小写字母开头 Field names should start with a lower case letter 字段名以小写字母开头 e…
前言 Findbugs很多人都并不陌生,Eclipse中有插件可以帮助查找代码中隐藏的bug,IDEA中也有这款插件.这个插件可以帮助我们查找隐藏的bug,比较重要的功能就是查找潜在的null指针. 在编写代码的过程中,我们可能不会一直记得检查空的引用,在我们测试时可能很难发现问题,但是应用上线之后,面对大量的用户,很多问题就会浮现出来.所以在编码时,使用findbugs检查一下很有必要. 安装  安装完之后,重启studio,会发现左下角会出现findbugs的图标  可以分析单个文件,包下面…
下载 - 安装 - 重启idea即可: 项目右键或者文件右键即可看到  FindBugs 选项. 选择某个选项直接检测即可.检测结果如下图: 这里的Correctness是重点关注对象.这里面的错误往往是比较严重的.像空指针之类的错误..... 附:一些常见的错误信息 Bad practice 代码中的一些坏习惯 Class names should start with an upper case letter 主要包括类名的命名,以大写字母开头 Method names should sta…
IP地址类型转换原理: 将一个点分十进制IP地址字符串转换成32位数字表示的IP地址(网络字节顺序). 将一个32位数字表示的IP地址转换成点分十进制IP地址字符串. 1.Long.ParseLong(String)方法,将 string 参数解析为有符号十进制 long,字符串中的字符必须都是十进制数字. [java] view plaincopy parseLong(String s) |-->return parseLong(s, 10);  //返回一个long开的result基本类型值…
 前言: 检测代码中可能的bug及不规范的位置,检测的模式相比p3c更多,写完代码后检测下 避免低级bug,强烈建议用一下,一不小心就发现很多老代码的bug. 使用步骤: 1):打开 Settings---->Plugins---> 进行搜索--->选择---->"FindBugs-IDEA" ----> install 安装插件:点击插件详情中的"install"按钮,按照其提示即可完成安装,安装完成后需重启IDEA. 会发现左下角会…
1. Primitive Types        Any data types the compiler directly supports are called primitive types.        Primitive types map directly to types existing in the Framework Class Library (FCL).        For the types that are compliant with the Common La…
1.Programming Language Primitive Types primitive types:Any data types the compiler directly supports. Primitive types map directly to types existing in the Framework Class Library (FCL). use the FCL type names and completely avoid the primitive type…
Sometimes you want to write code that works for different primitive types, and as C# doesn't support generic type constraints on primitive type hence you can't avoid writing more code, but you may still one way or another minimise the code you have t…
[.net面向对象编程基础] (4)基础中的基础——数据类型转换 1.为什么要进行数据转换? 首先,为什么要进行数据转换,拿值类型例子说明一下, 比如:我们要把23角零钱,换成2.30元,就需要把整形转换成小数型. 再比如我们转换一个引用类型的数据,前面说过我们自定义类属于引用类型,假如我们定义了两个类,一个类叫“白猫”,一个类叫“黑猫”,我们要让他们都归为“猫”这个类(不管黑猫白猫,能捉老鼠就是好猫),这种情况就需要将白猫和黑猫这两个类转换成“猫”类. 因此为了运算方便,我们经常要进行不同数据…
Good about Java: friendly syntax, memory management[GC can collect unreferenced memory resources], object-oriented features, portability. Stack Stores method invocations, local variables(include object reference, but the object itself is still stored…
Java的哪些事--------------------------------------------------Java学习分2个方面: Java语法与Java类库 Java: A simple, object-oriented, network-savvy, interpeted, robust, secure, architecture-neutral, portable, high-performance, multithread, dynamic language. 第一部分: Ja…
接着上篇继续更新. /*请尊重作者劳动成果,转载请标明原文链接:*/ /*https://www.cnblogs.com/jpcflyer/p/10759447.html* / 题目一:Hashtable,HashMap,TreeMap有什么区别? 一般回答: Hashtable 是早期 Java 类库提供的一个哈希表实现,本身是同步的,不支持 null 键和值,由于同步导致的性能开销,所以已经很少被推荐使用. HashMap 是应用更加广泛的哈希表实现,行为上大致上与 HashTable 一致…
通过Mahout构建推荐系统时,假设我们须要添�某些过滤规则(比方:item的创建时间在一年以内),则须要用到IDRescorer接口,该接口源代码例如以下: package org.apache.mahout.cf.taste.recommender; /**  * <p>  * A {@link Rescorer} which operates on {@code long} primitive IDs, rather than arbitrary {@link Object}s.  * …
5. Conversions and Promotions 5.1. Kinds of Conversion 5.1.1. Identity Conversion 5.1.2. Widening Primitive Conversion 5.1.3. Narrowing Primitive Conversion 5.1.4. Widening and Narrowing Primitive Conversion 5.1.5. Widening Reference Conversion 5.1.6…
一.C# 理论 1.1.简述 private. protected. public. internal.protected internal 访问修饰符和访问权限 private : 私有成员, 在类的内部才可以访问. protected : 保护成员,该类内部和继承类中可以访问. public : 公共成员,完全公开,没有访问限制. internal: 当前程序集内可以访问. protected internal: 访问仅限于当前程序集或从包含类派生的类型. 不带修饰符的类是默认interna…
方法注册好后要经过哪些路 Android一个异常捕获项目 https://github.com/xroche/coffeecatch coffeecatch CoffeeCatch, a tiny native POSIX signal catcher (especially useful for JNI code on Android/Dalvik, but it can be used in non-Java projects) It allows to "gracefully"…
Java-Basic 谈谈final. finally. finalize有什么不同? 典型回答: final可以用来修饰类.方法.变量,分别有不同的意义, final修饰的class代表不可以继承扩展, final的变量是不可以修改的,而final的方法也是不可以重写的( override). finally则是Java保证重点代码一定要被执行的一种机制.我们可以使用try-finally或者try-catch-finally来进行类似关闭JDBC连接.保证unlock锁等动作. finali…
一.抽象与接口的区别: ,抽象(abstract): ()抽象类中可以有抽象方法,也可没有: ()抽象方法包含实现,也可以由子类实现: ()抽象类不能被sealed修饰,只能使用abstract关键字 ()抽象方法不能在抽象类外部声明: ()抽象类只能单继承: ()可以有虚方法(virtual),在不同的继承中,可以有不同的实现(需要override重写): .接口(interface): ()接口比抽象类更抽象: ()可以多继承: ()不包含方法的实现,只能由子类实现: 二.多态: 概念上:一…
一.C# 理论 1.1.简述 private. protected. public. internal.protected internal 访问修饰符和访问权限 1.2.简述abstract.sealed类修饰符 1.3.简述C#成员修饰符 1.4.ADO.NET中的五个主要对象 1.5.列举ASP.NET 页面之间传递值的几种方式和优缺点 1.6.C#中的委托是什么?事件是不是一种委托?事件和委托的关系 1.7.重写(override)与重载(overload)的区别 1.8.C#中索引器是…
一.C# 理论 1.1.简述 private. protected. public. internal.protected internal 访问修饰符和访问权限 private : 私有成员, 在类的内部才可以访问. protected : 保护成员,该类内部和继承类中可以访问. public : 公共成员,完全公开,没有访问限制. internal: 当前程序集内可以访问. protected internal: 访问仅限于当前程序集或从包含类派生的类型. 不带修饰符的类是默认interna…
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多态 第七章 接口与多态 第八章 异常处理 第九章 Collection与Map 第十章 输入/输出 第十一章 线程与并行API 第十二章 Lambda 第十三章 时间与日期 第十四章 NIO与NIO2 第十五章 通用API 第十六章 整合数据库 第十七章 反射与类加载器 第十八章 自定义类型.枚举 补充:Ja…
一.前言 编码时我们总会发现如下变量未被使用的警告提示: 上述代码编译通过且可以运行,但每行前面的"感叹号"就严重阻碍了我们判断该行是否设置的断点了.这时我们可以在方法前添加 @SuppressWarnings("unused") 去除这些"感叹号". 二. @SuppressWarings注解    作用:用于抑制编译器产生警告信息. 示例1--抑制单类型的警告: @SuppressWarnings("unchecked")…
Dictionary和Hashtable 区别: Dictionary和Hashtable 区别 Dictionary Hashtable  支持范型 不支持 需要自己做线程同步 通过调用 Synchronized() 方法可以获得线程安全的类型 枚举类型是KeyValuePair 枚举类型是DictionaryEntry .Net 2.0开始有 .Net 1.0开始有 System.Collections.Generic命名空间下 System.Collections命名空间下 获取同一个不存…
早晨起得太早,昨晚睡得太晚,一天都迷迷糊糊的.中午虽然睡了半个小时,可是依然没有缓过来.整个下午都在混沌中....不过今天下载了一款手游--<剑侠情缘>,感觉不错,喜欢这种类型的游戏. 今天主要的工作还是做业务需求,不过下午状态不好,看了下<Effective java>,正好重构了下代码. effective java 通过函数来作为策略 通过函数作为策略有两个要注意的地方: 使用接口作为策略传入 如果长期调用,应该设置为静态内部类,避免频繁创建过多的匿名对象 下面举个简单的例子…
简介:java.lang.SuppressWarnings是J2SE 5.0中标准的Annotation之一.可以标注在类.字段.方法.参数.构造方法,以及局部变量上.作用:告诉编译器忽略指定的警告,不用在编译完成后出现警告信息.使用:@SuppressWarnings("")@SuppressWarnings({})@SuppressWarnings(value={})根据sun的官方文档描述:value - 将由编译器在注释的元素中取消显示的警告集.允许使用重复的名称.忽略第二个和…