1.方法可分为静态方法和成员方法,通过有无static来区分,静态方法可通过类名称.方法名直接调用,成员方法可以必须先new出来一个实现类,然后才能使用。
2.方法引用:格式为:
静态:方法名(类名称: :方法名)
成员方法ming:方法ming(对象名::方法名)
public interface onlyone {//接口
public abstract int getabs(int a) ;//抽象方法
//public abstract void sleep();//抽象方法
}
public static void main(String[] args) throws IOException {
method(num -> {
int result;
if(num>=0)
result=num;
else
result=-num;
return result;
});
method(Math::abs);//通過類名稱引用靜態方法
}
public static void method(onlyone one) {
int result=one.getabs(-25);
System.out.println(result);
}
3。Streaml流式操作
public static void main(String[] args) throws IOException {
ArrayList<String>recordlist=new ArrayList<>();
recordlist.add("y,98");
recordlist.add("k,99");
recordlist.add("g,87");
recordlist.stream().map(s->s.split(",")[1]).map(Integer::parseInt)//將一大串代碼用一句代碼解決
.filter(n->n>90).forEach(System.out::println);
}
a.映射方法:(map)把老对象映射到新对象
public static void main(String[] args) throws IOException {
ArrayList<String>recordlist=new ArrayList<>();
recordlist.add("y,98");
recordlist.add("k,99");
recordlist.add("g,87");
// recordlist.stream().map(s->s.split(",")[1]).map(Integer::parseInt)//將一大串代碼用一句代碼解決
// .filter(n->n>90).forEach(System.out::println);
System.out.println("=========");
Stream<String> stream1=recordlist.stream().map((String str)->{
String[] array=str.split(",");
String result=array[1];
return result;
});
Stream<String> stream2=recordlist.stream().map(s->s.split(",")[1]);
//for(int i=0;i<recordlist.size();i++) {
//System.out.println(recordlist.get(i));
}
b,过滤方法filter(能产生boolean结果的Lambda),若为true,则留下元素,否则剔除元素
c,forEach(Lambda)表达式:对流当中的每一个元素进行操作,Lambda表达式必须能够一次消费一个参数,且不产生数据结果
4,并发流parallelStream
对流当中的元素,使用多个人进行处理,就是并发流,不会出现多个人抢到同一个元素的情况
public static void main(String[] args) throws IOException {
ArrayList<String>list=new ArrayList<>();
for(int i=0;i<20;i++) {
list.add("hello-"+i);
}
list.parallelStream().forEach(System.out::println);
}
如果已经使用了普通流,那么使用一个parallel也会变成一个并发流
list.stream().parallel().forEach(System.out::println);
5,module-info.java java中转门用来描述模块的文件,里面写的是模块描述信息,格式如下
moudule 模块名称{
exports 对外暴露的包路径(其他模块可以访问的包都在这里面)
requires 需要依赖其他模块的名称(代码的运行需要其他模块的帮助)
}