当前位置: 首页 > news >正文

找人做网站需要什么条件51个人网站

找人做网站需要什么条件,51个人网站,php mysql购物网站开发,wordpress页面如何显示分类背景 在频繁调用场景#xff0c;如方法体内或者循环语句中#xff0c;新定义Pattern会导致重复预编译正则表达式#xff0c;降低程序执行效率。另外#xff0c;在 JDK 中部分 入参为正则表达式格式的 API#xff0c;如 String.replaceAll, String.split 等#xff0c;也…背景 在频繁调用场景如方法体内或者循环语句中新定义Pattern会导致重复预编译正则表达式降低程序执行效率。另外在 JDK 中部分 入参为正则表达式格式的 API如 String.replaceAll, String.split 等也需要关注性能问题。 验证 正例 将 Pattern 对象预编译并在常量中声明。 private static final String IP_V4 ^(((\\d)|([1-9]\\d)|(1\\d{2})|(2[0-4]\\d)|(25[0-5]))\\.){3}((\\d)|([1-9]\\d)|(1\\d{2})|(2[0-4]\\d)|(25[0-5]))$;// Pattern 常量private static final Pattern IP_V4_PATTERN Pattern.compile(IP_V4);public static boolean isValidIpv4V2(String input) {if (input null) {return false;}return IP_V4_PATTERN.matcher(input).matches();}反例 每次调用时才声明 Pattern。 private static final String IP_V4 ^(((\\d)|([1-9]\\d)|(1\\d{2})|(2[0-4]\\d)|(25[0-5]))\\.){3}((\\d)|([1-9]\\d)|(1\\d{2})|(2[0-4]\\d)|(25[0-5]))$;public static boolean isValidIpv4V1(String input) {if (input null) {return false;}Pattern pattern Pattern.compile(IP_V4);return pattern.matcher(input).matches();}测试代码 package com.ysx.utils.pattern.performance;import org.junit.jupiter.api.Test;import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; import java.util.regex.Pattern;/*** author youngbear* email youngbearaliyun.com* date 2023-09-17 8:31* blog a hrefhttps://blog.csdn.net/next_second.../a* github a hrefhttps://github.com/YoungBear.../a* description 正则表达式性能测试*/ public class PrecompilePerformanceTest {private static final String IP_V4 ^(((\\d)|([1-9]\\d)|(1\\d{2})|(2[0-4]\\d)|(25[0-5]))\\.){3}((\\d)|([1-9]\\d)|(1\\d{2})|(2[0-4]\\d)|(25[0-5]))$;// Pattern 常量private static final Pattern IP_V4_PATTERN Pattern.compile(IP_V4);// 缓存private static final MapString, Pattern cacheCompilePatternMap new ConcurrentHashMap();public static boolean isValidIpv4V1(String input) {if (input null) {return false;}Pattern pattern Pattern.compile(IP_V4);return pattern.matcher(input).matches();}public static boolean isValidIpv4V2(String input) {if (input null) {return false;}return IP_V4_PATTERN.matcher(input).matches();}public static boolean isValidIpv4V3(String input) {if (input null) {return false;}if (!cacheCompilePatternMap.containsKey(IP_V4)) {cacheCompilePatternMap.put(IP_V4, Pattern.compile(IP_V4));}Pattern pattern cacheCompilePatternMap.get(IP_V4);return pattern.matcher(input).matches();}Testpublic void performanceTest() {String input1 192.168.12.13;long start System.currentTimeMillis();for (int i 0; i 10000; i) {isValidIpv4V1(input1);}long stop System.currentTimeMillis();System.out.println(isValidIpv4V1, input1, consume: (stop - start) ms);String input2 192.168.12.13;long start2 System.currentTimeMillis();for (int i 0; i 10000; i) {isValidIpv4V1(input2);}long stop2 System.currentTimeMillis();System.out.println(isValidIpv4V1, input2, consume: (stop2 - start2) ms);}Testpublic void performanceV2Test() {String input1 192.168.12.13;long start System.currentTimeMillis();for (int i 0; i 10000; i) {isValidIpv4V2(input1);}long stop System.currentTimeMillis();System.out.println(isValidIpv4V2, input1, consume: (stop - start) ms);String input2 192.168.12.13;long start2 System.currentTimeMillis();for (int i 0; i 10000; i) {isValidIpv4V2(input2);}long stop2 System.currentTimeMillis();System.out.println(isValidIpv4V2, input2, consume: (stop2 - start2) ms);}Testpublic void performanceV3Test() {String input1 192.168.12.13;long start System.currentTimeMillis();for (int i 0; i 10000; i) {isValidIpv4V3(input1);}long stop System.currentTimeMillis();System.out.println(isValidIpv4V3, input1, consume: (stop - start) ms);String input2 192.168.12.13;long start2 System.currentTimeMillis();for (int i 0; i 10000; i) {isValidIpv4V3(input2);}long stop2 System.currentTimeMillis();System.out.println(isValidIpv4V3, input2, consume: (stop2 - start2) ms);}} 执行结果 isValidIpv4V1, input1, consume: 232ms isValidIpv4V1, input2, consume: 74ms isValidIpv4V2, input1, consume: 24ms isValidIpv4V2, input2, consume: 19ms isValidIpv4V3, input1, consume: 20ms isValidIpv4V3, input2, consume: 12ms根据执行结果可以明显看到预编译正则表达式可以提升性能。 总结 通常情况下正则表达式为常量所以可以将其作为常量量在类编译时预编译。 private static final Pattern xxx_PATTERN Pattern.compile(xxx);对于动态的正则表达式可以将其缓存即缓存其 Pattern 结果。参考 isValidIpv4V3 )。另外对于外部收入的正则表达式一定要校验其安全性防止 ReDos 攻击。
http://www.w-s-a.com/news/991048/

相关文章:

  • 柳州建设公司网站辽宁建设工程信息网评标专家入库
  • 合肥建设学校官方网站excel导入wordpress
  • 禹城网站设计做网站需要考虑哪些
  • 深圳做营销网站建设wordpress添加文章封面
  • 阿里云的网站建设方案织梦和wordpress哪个安全
  • 聊城网站建设公司电话wordpress怎么重新配置文件
  • 创业如何进行网站建设泰州公司注册
  • 免费网站建设培训学校手机百度高级搜索入口在哪里
  • 建站经验安徽六安发现一例新冠阳性检测者
  • 滨州内做网站系统的公司汕头网络营销公司
  • 苏州制作网站的公司哪家好wordpress google搜索
  • c语言做项目网站wordpress博客被书为什么还
  • 企业建站用什么系统网站建设补充协议模板
  • 常州网站关键字优化淘客网站怎么做排名
  • 全flash网站制作教程网站做进一步优化
  • 建设网站步骤是如何做自媒体和网站签约赚点击
  • 网站建设的闪光点网站 备案 拍照
  • 那些企业需要做网站九洲建设集团网站
  • 中山企业做网站昆明做网站价格
  • wordpress 新网站 代码网站可以做系统还原吗
  • 百度给做网站公司餐饮设计装饰公司
  • 专门卖医疗器械的网站网站建设方案一份
  • 吉林省建设安全监督站网站wordpress 4.7.5下载
  • 网页制作视频的网站建设营销策划公司
  • 玉雕网站建设八点品牌设计公司招聘
  • 服务器可以自己的网站吗flash 网站 源码
  • 湖南做网站 搜搜磐石网络网站注册收入
  • 北京软件网站开发装修设计培训机构
  • 哪个网站能帮助做路书网站建设的技巧
  • 上海网站备案在哪里在国外怎么做网站