1.maven安装跳过测试:install -DskipTests
2.Mybatis配置文件#表达,避开转成sql符号: like CONCAT('%',#{liveName},'%')
3.表单提交要用json格式
4.Linux安装rz(文件上传工具); yum install -y lrzsz
5.日志查看管道; less requestLog.log.2018-03-03 | grep live | grep update | grep 500
6.Preconditions.checkArgument(StringUtils.isNotBlank(originFileName).检查checkArgument(boolean)中条件是否为真,不为真抛出异常
7.判断一个字符串是否是数字字符串:StringUtils.isNumeric(param)
8.开关mock的使用思想;
9.两个集合封装到一个集合,使用map思想;
10.防止接口重复请求: @InvokeLimiter(key = {"keys"}, overHint = "请不要重复请求", ttl = 3)
11.修改虚拟机内存 : -Xms1024m -Xmx1024m
12.Spring Cache返回结果判断使用unless :@Cacheable(value = "indexLive", key = "methodName", unless = "#result.code != 200")
13.Redis缓存Json数据,反序列化异常-->import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@JsonIgnoreProperties(value = "apiSuccess", ignoreUnknown = true)
14.HashMap初始化尽量指出集合的长度
15.使用Entry遍历Map,而不是keySet-->keySet是遍历了两次map.一次是转换成迭代器,另一次是拿出所有的value(效率低)
16.线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式
17.多线程之volatile锁:每个线程有自己的工作内存,而共享的成员属性放在了主内存中,多个线程访问并修改属性的值只会放在自己的工作内存中;
从而导致线程的不安全;volatile修饰共享的变量,当某个线程修改该属性的值,会及时同步到主内存中,线程读取值时也会读取主内存中的新值.
18.在高并发场景中,避免使用"等于"判断作为中断或退出的条件,使用大于和小于来判断区间(防止if判断语句击穿)
19.if判断的条件尽量不要写复杂的逻辑语句,可赋值给一个boolean变量,作为if的条件判断;
20.@Cacheable注解的使用,如果是固定不变的值,使用方法名作为key,如果是根据形参改变的值,要以参数作为key;
网友评论