高效开发总结
1、用静态工厂方法代替构造器 |
获取类的实例时,使用静态工厂方法,返回一个类的静态方法 |
优势:静态方法有名称,不必每次调用时创建新对象,可以返回原返回类型的任何子类型对象 |
2、ArrayList的sublist()方法 |
返回的list不可以强转成为ArrayList |
否则会报异常classCastException |
3.单元测试 |
是AIR,自动化,独立性,可重复 |
|
|
全自动执行,并非交互式 |
不准使用System.out来进行人肉验证,必须使用assert来验证 |
|
单元测试不能互相调用,也不能依赖执行的先后次序 |
|
4、安全规约 |
隶属于用户个人的页面或功能必须进行权限控制校验; 对敏感数据进行脱敏; 用户传出的任何参数必须做有效性验证; 禁止向html页面输出未经安全过滤或未正确转义的用户数据; 必须实现防重放限制,如数量限制、疲劳度控制、验证码校验、避免被滥刷导致劳损; 实现防刷、文本内容违禁词过滤等风控策略。 |
|
5.get和post的区别 |
Get是从服务器中获取数据,post是向服务器传送数据 |
|
6.Mysql中comment的用法 |
字段或列的属性用comment来添加注释。 CREATE TABLE sys_user( id BIGINT not null auto_increment COMMENT '用户id')comment=’用户表’; ALTER table sys_user comment '用户表'; 查看已有表中所有字段的注释, SHOW FULL COLUMNS FROM sys_user; 查看表的注释的sql show CREATE table sys_user; |
|
7.对应的字段 |
private byte[] headImg; 对应数据库中数据类型 的 blob,longvarbirnar以及一些和二进制流有关的字段类型 |
|
8.在实体类中,尽量不要使用基本类型 |
由于java中基本类型会有默认值,例如,在private int age;创建这个字段时,age就会有默认值0,所以总会有值,因此在某些情况下,不能使age为null,并且在动态sql部分,如果使用 age !=null;判断,结果总为true,会出现很多隐藏问题。 |