一、字符串
二、慎重使用正则表达式,比如String.split(“指定一个正则表达式”)方法
在编程语言中,使用的正则表达式库都是基于NFA自动机实现的,而NFA自动机存在回溯的问题 所以能不用就不用 如何避免回溯,使用懒惰、和独占模式 1.贪婪模式"ab{1,3}c" 正则表达式会匹配尽可能多的内容,回溯 2.懒惰模式"ab{1,3}?c" 尽可能少的重复匹配字符 3.独占模式"ab{1,3}+bc" 正则表达式会匹配尽可能多的内容,不回溯,匹配失败就会结束 优化: 1.少用贪婪,多用独占 2.减少分支选择 如:"(x|y|z)",尽量不使用 其次可以提取共用模式,"(abcd|abef)"->"ab(cd|ef)" 3.减少捕获嵌套 ():一个捕获组 (?:exp):不进行捕获 如:"(<input.*?>)(.*?)(</input>)" -> "(?:<input.*?>)(.*?)(?:</input>)"
三、ArrayList和LinkedList