平时总结

//1、查看字母a在字符串出现的次数
//方法一:使用indexof计算出第一次匹配的位置count++,然后将往后匹配,直到匹配不到
@Test
public void searchByIndexOf(){
String str="abcjavadefjavadddjavc";
String newStr="a";
int count=0;
int i=0;
while(str.indexOf(newStr,i)>=0){
count++;
i=str.indexOf(newStr,i)+newStr.length();
}
System.out.println(newStr+"匹配到"+count+"次");
}

//方法二:使用replaceAll方法将要匹配的字串转成"",将替换前的长度减去替换后的长度
@Test
public void searchByReplaceAll(){
String str="abcjavadefjavadddjavc";
String newStr="a";
int count=0;
int i=0;
int len1=str.length();
String str1=str.replace(newStr,"");
int len2=str1.length();
System.out.println(newStr+"匹配到"+(len1-len2)+"次");
}
//2、字符串比较方法
@Test
public void compare(){
String str1 = new String("abc");
String str2 = new String("ABC");
int a = str1.compareTo(str2);//a>0
int b = str1.compareToIgnoreCase(str2);//b=0
System.out.println("a:"+a+","+"b:"+b);
boolean c = str1.equals(str2);//c=false
boolean d = str1.equalsIgnoreCase(str2);//d=true
}

 3、非对称加密

非对称加密是我自己手握私钥,别人给我的信息是通过我的公钥加密,到我手里用我的私钥解密;

我发给别人也是用他的公钥加密,他用他自己的私钥解开

4、java8新特性

  • Lambda 表达式 − Lambda 允许把函数作为一个方法的参数(函数作为参数传递到方法中)。

  • 方法引用 − 方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。

  • 默认方法 − 默认方法就是一个在接口里面有了一个实现的方法。

  • 新工具 − 新的编译工具,如:Nashorn引擎 jjs、 类依赖分析器jdeps。

  • Stream API −新添加的Stream API(java.util.stream) 把真正的函数式编程风格引入到Java中。

  • Date Time API − 加强对日期与时间的处理。

  • Optional 类 − Optional 类已经成为 Java 8 类库的一部分,用来解决空指针异常。

  • Nashorn, JavaScript 引擎 − Java 8提供了一个新的Nashorn javascript引擎,它允许我们在JVM上运行特定的javascript应用。

  • https://www.runoob.com/java/java8-new-features.html

5、xss和csrf的区别

xss:跨站脚本攻击

csrf:(Cross-site request forgery):跨站请求伪造。

xss:用户过分信任网站,放任来自浏览器地址栏代表的那个网站代码在自己本地任意执行。如果没有浏览器的安全机制限制,xss代码可以在用户浏览器为所欲为;

csrf:网站过分信任用户,放任来自所谓通过访问控制机制的代表合法用户的请求执行网站的某个特定功能。

6、常见7种排序算法

https://www.runoob.com/w3cnote/sort-algorithm-summary.html

冒泡排序

选择排序

插入排序

希尔排序

快速排序

归并排序

堆排序

基数排序

 

原文地址:https://www.cnblogs.com/saifei1125/p/12664892.html