1.字符串替换出现character to be escaped is missing的问题
- 原因:导致该问题的原因为字符串替换的原理使用的正在表达式通配符替换的原理
- 解决办法:主要是通过Matcher.quoteReplacement("\")方法解决,而java中出现转义字符的原因就是区分是想表达字符串\还是目录,之前一直没有对这块很关注,通过网上查找资料发在使用字符串替换replaceAll或者spilt中针对一些常见特殊都需要转义的,否则就会出现报错的情况
特殊字符转义 参考网络资料
2.关于系统开发中遇到需要统计某个字符 在字符串中出现次数的解决办法 - 项目开发中 需要将企业编号包含2个A的经销商(实际就是2级以上的经销商)去除订单审核的功能,所以需要写一个方法能够进行统计某个字符在字符串中出现的个数.
解决方法思路:通过indexOf(String “str”,int index)方法 获取指定字符串的位置,通过不断移动indexOf开始的位置,来计算字符串中出现str字符串的个数.
/**
* 计算字符串在给定字符串中出现的位置
* 1.判断2个字符串是否为空,如果为空 直接返回0
* 2.创建字符串查询开始位置start=0,出现次数count=0;
* 3.循环判断str字符串在给定字符串des中出现的位置,如果等于-1跳出循环,如果存在进入循环体中设置出现次数count++以及 start的位置
* @param str 字符串
* @param des 给定字符串
* @return 出现次数
*/
public static int findCount(String str,String des){
if(StringUtil.isEmpty(str)||StringUtil.isEmpty(des)){
return 0;
}
int start=0;
int count=0;
while((start=des.indexOf(str, start))!=-1){
start=start+str.length();
count++;
}
return count;
}
3.文件上传过程中出现Druid连接池 报错:abandon connection原因分析
出现这一问题的主要原因是Druid设置超时时间为2分钟太短了,上传文件导致接口响应速度超过 数据库链接池设置的最大活跃时间,导致数据库自动回收该线程.平时在接口调试的过程如果长时间卡住不放,那也会出现这种问题。解决的办法就是Druid链接池时间设置更大一点。120设置为180或者更长时间即可(s为单位)
4.关于阿里云上行带宽 下行带宽的理解.(用以提高使用OSS文件上传或下载的速度)
最近在开发过程中碰到有关OSS文件上传过慢的问题,开始以为是nginx反向代理到tomcat服务器使用公网ip而不是127.0.0.1的形式所导致的,后面发现是因为OSS文件走的是公网网络 上传速度取决于ECS服务器的带宽质量.而ECS服务器走内网上传到OSS速度则会很快.使用内网传输需要保证OSS域名与ECS域名在同一区域下,否则无法传输。而为什么内网传输相比公网传输的速度更快,主要是由于走内网实际ECS服务器与OSS服务器处于同一区域下,类似于本地磁盘之间文件传输 速度肯定快。
ECS上行带宽:就是上传文件到ECS服务器中,此网络最大100M不受ECS开通带宽限制。(所以实际上我们上传文件到ECS服务器 取决于我们本地的宽带速度,正常来讲速度还是蛮快的)
ECS下行带宽:从ECS上文件下载下来到本地服务器,根据客户实际开通的宽带速度决定.(从ECS上下载文件会很慢的,所以需要放到OSS公网路径)
解决办法:OSS文件上传走内网,实际存储路径存公网用以外届访问.