我爱编程

新手工作笔记

2018-03-30  本文已影响0人  Mr_三明治

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;

上一篇 下一篇

猜你喜欢

热点阅读