Java Web技术经验总结(十六)

时间:2022-06-05
本文章向大家介绍Java Web技术经验总结(十六),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
  1. 使用Java读取文件时,要评估文件的大小,避免因为文件过大而造成OOM,参见:Java高效读取文件
  2. RateLimiter可以用来限制请求的速率,有两种应用场景:针对一些核心接口,在参与大促(双十一)等活动时,为了避免服务被突然暴涨的流量打挂,需要限流;在进行数据迁移或数据扫描时,为了避免对DB的压力过大,也需要限流。
  3. 在Linux下要求两个文件的差集:grep -F -v -f b.txt a.txt | sort | uniq,参考:LINUX Shell 下求两个文件交集和差集的办法
  4. logback配置,将不同级别的日志输入到不同文件(或日志平台)中,参考:logback日志输出不同级别到不同文件(开发实例配置)。这篇文章中是将四个级别的日志放在不同文件中,所以使用了LevelFilter,我今天遇到的需求是:本地只打印WARN以上级别的日志,日志平台打印INFO级别上的日志,所以不能使用LevelFilter,应该使用ThresholdFilter配置对应的Appender。
  5. 为什么JavaAPI的返回值中不能包含枚举类,或者不能含有包含枚举类的POJO对象?答:当服务端更新了枚举类的个数,反序列化的时候,老的调用方会出错。参考:Link
  6. 使用了一个对象来把各参数传入进去,是多参数查询接口设计的不错范例
  7. replace、replaceFirst和replaceAll的区别?!
  8. mybatis中,返回值为对象时,如果查不到对应的记录则返回Null,返回值为List<T>时,如果查不到记录则返回空数组
  9. Java Web如何从HttpRequest中获取客户端的IP地址?参考:从HttpRequest中获取IP地址
  10. IP地址和Long互相转换?诉求是:便于索引和IP校验,可以根据数值范围验证客户端IP的有效性。参考:JAVA【long值与ip地址互转】 - ip的判别