1、serialVersionUID
用来作为Java对象序列化中的版本标示之用;
作用:序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。
如果一个序列化类没有声明这样一个static final的产量,JVM会根据各种参数为这个类计算一个;
如果不想定义它,在Eclipse的设置中也可以把它关掉的,设置如下:
Window ==> Preferences ==> Java ==> Compiler ==> Error/Warnings ==> Potential programming problems
将Serializable class without serialVersionUID的warning改成ignore即可。
2、@SuppressWarnings
批注允许您选择性地取消特定代码段(即,类或方法)中的警告。
其中的想法是当您看到警告时,您将调查它,如果您确定它不是问题,您就可以添加一个 @SuppressWarnings 批注,使您不会再看到警告。虽然它听起来似乎会屏蔽潜在的错误,但实际上它将提高代码安全性,因为它将防止您对警告无动于衷 — 您看到的每一个警告都将值得注意。
3、判断list是否为空时,为了防止list有时包含了已实例化的对象,但却没有赋值,
要这样判断才正确:list!=null&&list.size()>0
判断String类型:spring!=null&&!"".equals(spring)
4、当两个整数相除时,由于小数点以后的数字会被截断,使运算结果为整数,故此时若希望得到运算结果为所预期的浮点数,则此时必须将两整数其一或是全部强制转换类型为浮点数。
例如:
(float)a/b // 将整数其中一个强制转换成浮点数,再与另一个整数相除
a/(float)b
(float)a/(float)b // 将两个整数同时强制转换成浮点数后再彼此相除
float size = (float)stringNumber/1024;
DecimalFormat df = new DecimalFormat("0.00");//格式化小数,不足的补0
String filesize = df.format(size);//返回的是String类型的
5、操作File时,路径分隔符应用File.separatorChar来避免不同系统分隔符不同的错误
6、删除文件夹先删除所有文件再删除目录
File[] files=file.listFiles();
//删除所有文件
for(File f:files){
if(f.exists()){
f.delete();
}
}
//删除当前目录
if(file.exists()){
file.delete();
}
7、java.lang.UnsupportedClassVersionError: Bad version number in .class file异常
在myEclipse中改变编译器的方法:Project->Properties->Java Compiler->Configure Workspace Setting