面试总结

1.cookie的优点(为什么要使用cookie)与缺点?

2.cookie与session的联系与区别?

3.触发器?

4.字符串匹配?

(一)算法:BF(暴力检索匹配)、KMP、BM、Sunday

BM算法的效率比KMP算法高3~4倍。BM算法的思想如下:首先将原字符串与子串按首字符串对齐,从子串的尾部元素开始与原字符串进行比对。若不相同,则判断该子串元素所对应父串的元素是否包含在子串中,若不包含,则将子串移动至该元素的后一个元素对应的位置;若包含,则移动子串将子串中的元素与该元素对齐。接下来再次从子串末尾开始比较,如果出现了多个匹配的情况,从开始不匹配的位置,寻找子串中是否包含有原字符串中的元素,若包含,则将子串该元素与原字符串对齐。

https://www.cnblogs.com/Franky-ln/p/5890201.html

(二)java的api方法:

  1).indexOf(char[]),lastindexof(char[])

    public void fun(){
         int j = "dfdfdfe3e".indexOf("e");//从头开始索引
         System.out.println(j);
         int p = "dfsggrtg".indexOf("g",5); //从指定索引5处,开始检索
         System.out.println(p);
         int k = "dfdfdee".lastIndexOf("fd"); //从右端开始匹配
         System.out.println(k);
         int k2 = "dfdfee".lastIndexOf("f",2); //从右端指定索引2处,开始检索
         System.out.println(k2);
    }

6
7
3
1

 

  2).正则表达式,使用pattern和Matcher。pattern是一个编译好的正则表达式,Matcher是一个正则表达式适配器,我们一般用Pattern来获取一个Mather对象,然后用Matcher来操作

正则表达式对象。

    //统计子串在父串中出现的次数
    public void ThroughMatch(String pattern, String str){
       Pattern p =   Pattern.compile(pattern);//pattern是匹配模式
       Matcher matcher = p.matcher(str);
       int count = 0;
       while(matcher.find()){
           count++;
       }
       System.out.println(count);
    }
ThroughMatch("f", "sfffde");
运行结果:3

  3)split()函数,通过给定正则表达式来划分字符串

    public void split(String str,String regex){
         String[] list = str.split(regex);
         System.out.println(Arrays.toString(list));
    }
  split("df1gd","1");
运行结果:[df, gd]

(三)用栈来实现:

5.json字符串解析包?

jackson、fastjson

原文地址:https://www.cnblogs.com/menbo/p/10447305.html