编写高质量代码,改善Java程序的151个建议,读书笔记!
1、判断奇偶数,i%2==0? "偶数","奇数"
2、长整形转化 long ds1 = 1L* 60*8
3、防止边界问题,int类型的最大值为2147482649
4、包装类型要判断是否为null
5、若非必要,不要设置随机数种子 如 Random r = new Random(1000); (X)
6、静态方法不能覆写。通过实例对象访问静态方法或静态属性不是好习惯,应谨慎
7、构造函数尽量简单,避免在构造函数中初始化其它类
8、匿名类ArrayList list = new ArrayList(){}
形同class Sub extends ArrayList{
}
List l2 = new Sub
9、在覆写equals时建议使用getClass进行类型判断,而不要使用instanceof,避免子类钻空子
10、不要主动进行垃圾回收,占用浪费资源
11、Collator类 可以对中文进行排序
12、变长数组扩容 Arrays.copyof(datas,new Length)
13、原始类型数组不能作为Arrays.asList()的输入参数,否则会引起程序逻辑混乱并引起错误
14、Arrays.asList() 返回的是一个长度不可变的列表,不能进行增加和删除操作
List<String> list = Arrays.asList("张三","李四","王五");
list.remove("张三"); //会抛异常
15、判断集合是否相等时只须关注元素是否相等即可
16、subList产生的列表只是一个视图,所有的修改动作直接作用于原列表
17、subList生成子列表后,保持原列表的只读状态,不要再操作原列表
18、集合中的元素必须做到compareTo和equals同步
19、并集 list1.addAll(list2) 交集list1.retainAll(list2) 差集list1.removeAll(list2);
无重复的并集list2.removeAll(list1); list1.addAll(list2);
20、集合排序对于直接量的(8个基本类型、String类型)等,推荐使用TreeSet,
对于可变量,自定义类等,建议使用List自行排序
21、泛型数组的处理,不能初始化泛型参数和数组
class Foo<T>{
private T t;
private T[] tArray;
private List<T> list = new ArrayList<T>();
public Foo(){
try {
Class<?> tType = Class.forName("");
t = (T)tType.newInstance();
tArray = (T[])Array.newInstance(tType, 5);
} catch (Exception e) {
e.printStackTrace();
}
}
}
22、无法从代码中推断出泛型类型的情况下,即可强制声明泛型类型
static class ArrayUtils{
public static<T> List<T> asList(T...t){
List<T> list = new ArrayList<T>();
Collections.addAll(list, t);
return list;
}
}
List list5 =ArrayUtils.<Number>asList(1,2,3.1);
List list4 =ArrayUtils.asList();
23、反射让模板方法更强大,JUnit的实现思想,程序更灵活、更强大
24、不要再finally块中处理返回值
1)覆盖了try代码块中的return返回值
public static int doTest(){
int a = 1;
try {
return a;
} catch (Exception e) {
}finally{
a= -1;
}
return 0;
}//始终返回1
Person p = new Person();
p.setName("张三");
try {
return p;
} catch (Exception e) {
}finally{
p.setName("王五");
}
p.setName("李四");
return p;//始终返回王五
2)屏蔽了异常
25、在构造函数中尽可能不出现异常。
26、多线程:继承自Thread类的多线程没有必要覆写start()方法
27、线程优先级推荐使用MIN_PRIORITY、NORM_PRIORITY、MAX_PRIORITY三个级别,不建议
使用其它数字
28、异步计算机及线程调用需返回调用结果时考虑使用Callable接口
29、优秀开源框架Apache,google Guava,Joda
相关推荐
地级市GDP及产业结构数据-最新.zip
2006-2023年上市公司资产误定价Misp数据集(4.9万样本,含原始数据、代码及结果,最新).zip
本文对两大主流FPGA厂商的从串配置模式(Altera:Passive Serial Mode;Xilinx:Slave Serial Mode)进行了描述,并指出了主要的不同之处。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
R语言高级建模课程全集-最新整理.zip
内容概要:本文档展示了使用 Python绘制一个三维爱心的具体方法与步骤。 适用人群:适合对Python编程语言有一定了解,并且希望学习如何完成复杂图像渲染的研究者或开发者。 使用场景及目标:本项目适用于教学环境或是个人兴趣爱好,能够帮助读者更好地掌握三维图形编程技巧以及了解隐函数作图的基本原理。
该文档为核心配置实验思路,在实验中有不懂的请参考该思路
四大政策效应评价方法全集-最新.zip
该实验为核心配置实验,与下一个采用其不同的方法进行配置,其核心思路一样,顺序略有差异,请大家进行对比反复琢磨
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
单基因生物信息学分析视频教程-完整版最新.zip
在现代工业自动化和电动汽车领域,永磁同步电机(PMSM)因其高效率、高性能和紧凑设计而备受青睐。本文将详细介绍如何在Simulink中实现PMSM的控制,包括矢量控制(FOC)策略的实现,以及必要的代码示例,旨在为工程师和研究者提供实用的指导。 一、PMSM控制概述 永磁同步电机(PMSM)以其高功率密度、高效率和优异的动态响应而广泛应用于工业和汽车领域。在Simulink中实现PMSM控制,通常采用矢量控制(Field-Oriented Control, FOC)策略,该策略通过磁场定向控制实现电机转矩和速度的精确控制。 二、PMSM数学模型与Simulink实现 PMSM的数学模型包括电压方程、磁链方程和转矩方程。在Simulink中,我们可以通过构建相应的模块来实现这些方程。 1. PMSM数学模型 电压方程: u d = R s i d − ω e L q i q + L d d i d d t + ω e ψ f u d =Rsid−ω e L q iq+
2000-2020年中国海洋统计年鉴-最新数据发布.zip
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
安慰剂检验代码与数据文章-最新研究成果.zip
VB+ACCESS学生公寓管理系统(源代码+系统)
职业规划(1).zip
网络办公系统 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B
地级市进出口贸易及外资利用数据(297城)-最新.zip
Jupyter-Notebook