jdk8新特性

  • 1,lambda表达式
    • 1.1,使用() -> {} 代替匿名类
    • 1.2,lambda表达式在集合中的基本应用
      • 1.2.1,遍历集合
      • 1.2.2,包含与筛选
      • 1.2.3,将一个集合合并到另一个集合
      • 1.2.4,流水线处理
      • 1.2.5,并行流处理
      • 1.2.6,外部迭代和内部迭代
  • 2,stream流
    • 2.1,并行流
    • 2.2,串行流
  • 3,函数式接口
    • 3.1,Supplier接口(生成数据)
      • 3.1.1,直接创建Supplier字符串对象,调用get方法
      • 3.1.2,Supplier创建对象
      • 3.1.3,Supplier作为方法参数
    • 3.2,consumer接口(消费数据)
      • 3.2.1,直接使用consumer对象
      • 3.2.2,consumer作为参数1
      • 3.2.3,consumer作为参数2
    • 3.3,Predicate接口(返回boolean)
      • 3.3.1,test()方法
      • 3.3.2,and()方法
      • 3.3.3,or()方法
      • 3.3.4, 默认方法 negate() 取反
      • 3.3.5,比较两个对象是否相等 isEqual ()
      • 3.3.6,应用实例
    • 3.4,Fuction接口
      • 3.4.1,apply()
      • 3.4.2,andThen()
      • 3.4.3,compose() 反转
      • 3.4.4,function应用实例
    • 3.5,BinaryOperator 接口
      • 3.5.1,apply()
      • 3.5.2,静态方法 parallelPrefix()用于操作替换前一个数组元素
      • 3.5.3,Comparator
    • 3.6,UnaryOperator 接口
  • 4,Optional类
  • 5,Date类
    • 5.1,instant
    • 5.2,zoneId
    • 5.3,LocalDateTime

在这里插入图片描述

1,lambda表达式

完整的Lambda表达式由三部分组成:参数列表、箭头、声明语句;

(Type1 param1, Type2 param2, ..., TypeN paramN) -> { statment1; statment2; //............. return statmentM;}

(1)绝大部分情况下不用声明参数类型。上下文可以识别

(param1,param2, ..., paramN) -> { statment1; statment2; //............. return statmentM;}

(2)当参数只有一个

param1 -> { statment1; statment2; //............. return statmentM;}

(3)当声明语句只有一句

param1 -> statment

###代码实例

1.1,使用() -> {} 代替匿名类

jdk7的写法

public class TestThread {public static void main(String[] s) {/*** 不使用Lambda*/Thread t1 = new Thread(new Runnable() {@Overridepublic void run() {System.out.println("no use lambda");}});

lambda jdk8的写法

  Thread t2 = new Thread(() -> System.out.println("use lambda"));t1.run();t2.run();

###lambda表达式就像一个抽象方法。没有方法体一样。

1.2,lambda表达式在集合中的基本应用

1.2.1,遍历集合

package com.testjdk8.test.thread;import java.util.*;public class Test {public static void main(String[] args) {List<String>list=new ArrayList<>();list.add("a");list.add("b");list.add("c");//1,jdk7,循环遍历listfor(String str:list){System.out.println(str);}//2,jdk7,循环遍历listIterator<String> iterator= list.iterator();while(iterator.hasNext()){System.out.println(iterator.next());}//jdk8,lambda表达式list.forEach((s) -> System.out.println(s));}
}

1.2.2,包含与筛选

1,jdk1.7判断集合是否包含这个元素

  System.out.println(list.contains("a"));

2,lambda表达式筛选,用到stream流

 Predicate<String>contain1=n -> n.contains("a");Predicate<String>contain2=n -> n.contains("b");
list.stream().filter(contain1).forEach(n -> System.out.println(n));

3.lambda表达式判断集合是否包含这个元素

System.out.println(contain1.test("a")); 

4,或者直接通过是否包含这个元素,并且遍历

 list.stream().filter(n -> contain1.test(n)).forEach(s -> System.out.println(s));

5,是否同时包含,遍历

list.stream().filter(contain1.and(contain2)).forEach(s -> System.out.println(s));

6,是否其中一个包含。全部遍历

 list.stream().filter(contain1.or(contain2)).forEach(s -> System.out.println(s));

5,6有点类似mysql的and和or

1.2.3,将一个集合合并到另一个集合

 List<String>newlist=list.stream().filter(contain1.or(contain2)).collect(Collectors.toList());System.out.println(newlist.isEmpty());newlist.forEach(n -> System.out.println(n));

1.2.4,流水线处理

  List<Integer> integers = Arrays.asList(4, 5, 6,1, 2, 3,7, 8,8,9,10);//过滤出偶数列表 [4,6,8,8,10]List<Integer> evens = integers.stream().filter(i -> i % 2 == 0).collect(Collectors.toList());//转成平方列表List<Integer> squareList = integers.stream().map(i -> i * i).collect(Collectors.toList());//分别打印输出evens.forEach(f -> System.out.println(f));squareList.forEach(f -> System.out.println(f));

1.2.5,并行流处理

将之前1.2.4的代码拷贝

//转成平方列表,并行处理
List<Integer> squareList1 = integers.stream().parallel().map(i -> i * i).collect(Collectors.toList());

结果一样速度更快。线程不安全

1.2.6,外部迭代和内部迭代

1.7我们用的是外部迭代。就是foreach增强for循环
1.8以后用lambda表达式就是内部迭代
可以用内部迭代取代外部迭代

 //外部迭代List<String> features1 = Arrays.asList("Lambdas", "Default Method", "StreamAPI");for (String feature : features1) {System.out.println(feature);}//内部迭代List<String> features2 = Arrays.asList("Lambdas", "Default Method", "StreamAPI");features2.stream().forEach(n -> System.out.println(n));

2,stream流

这个流不同于io流
完全不同的两个概念

先看一段伪代码

List<Person> personList = fromDB(); // 获得List<Person>
int limit = 10; // 限制条件
List<String> nameList = new ArrayList(); // 收集的姓名集合
for(Person personItem : personList){if(personItem.age == 70){ // 满足条件nameList.add(personItem.name); // 加入姓名集合if(nameList.size() >= 10){ // 判断是否超过限制break;}}
}
return nameList;

这段是不是很熟悉?
各种判断条件和循环语句

如果换成下面呢?

List<Person> personList = fromDB(); // 获得List<Person>
List<String> nameList = personList.stream().filter(item->item.age == 70) // 过滤条件.limit(10)    // limit限制条件.map(item->item.name) // 获得姓名.collect(Collector.toList()); // 转化为listreturn nameList;

这就是整一套的流操作

代码实例

package com.testjdk8.test.thread;public class Person {private int age;private String name;Person(){}public Person(int age, String name) {this.age = age;this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}
}
package com.testjdk8.test.thread;import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;public class Test {//仿造数据库返回对象和listpublic static void main(String[] args) {//创建三个person对象Person person=new Person(35,"xiaowang");Person person2=new Person(20,"xiaofang");Person person3=new Person(20,"jiansong");//创建集合对象List<Person>list=new ArrayList<>();list.add(person);list.add(person2);list.add(person3);//jdk1.7操作集合List<String>nameList=new ArrayList<>();for(Person person1:list){if(person1.getAge()==20){nameList.add(person1.getName());}if(nameList.size()>=1){break;}}for(String name:nameList){System.out.println("在集合中的名字:"+name);}//jdk1.8 stream流操作List<String>nameList2=list.stream().filter(item ->item.getAge()==20).limit(1).map(item -> item.getName()).collect(Collectors.toList());nameList2.forEach(f -> System.out.println("流式操作"+f));}}

####需求:需要一个j开头名字的namelist集合如何操作?打印

  //进阶List<String>nameList3=list.stream().filter(item -> item.getAge()>=20).filter(item -> item.getName().startsWith("j")).limit(1).map(item -> item.getName()).collect(Collectors.toList());nameList3.forEach(f -> System.out.println("过滤==="+f));

###stream流的特性是惰性操作。。包括中间操作和终止操作。因为所有的中间操作都是返回stream所以可以链式,流水线式的操作。而终止操作只能有一个。

流的中间操作
1.filter(Predicate) :将结果为false的元素过滤掉

2.map(fun) :转换元素的值,可以用方法引元或者lambda表达式

3.flatMap(fun) :若元素是流,将流摊平为正常元素,再进行元素转换

4.limit(n) :保留前n个元素

5.skip(n) :跳过前n个元素

6.distinct() :剔除重复元素

7.sorted() :将Comparable元素的流排序

8.sorted(Comparator) :将流元素按Comparator排序

9.peek(fun) :流不变,但会把每个元素传入fun执行,可以用作调试

流的终结操作
(1)约简操作

1.reduce(fun) :从流中计算某个值,接受一个二元函数作为累积器,从前两个元素开始持续应用它,累积器的中间结果作为第一个参数,流元素作为第二个参数

2.reduce(a, fun) :a为幺元值,作为累积器的起点

3.reduce(a, fun1, fun2) :与二元变形类似,并发操作中,当累积器的第一个参数与第二个参数都为流元素类型时,可以对各个中间结果也应用累积器进行合并,但是当累积器的第一个参数不是流元素类型而是类型T的时候,各个中间结果也为类型T,需要fun2来将各个中间结果进行合并

(2)收集操作

1.iterator():

2.forEach(fun):

3.forEachOrdered(fun) :可以应用在并行流上以保持元素顺序

4.toArray():

5.toArray(T[] :: new) :返回正确的元素类型

6.collect(Collector):

7.collect(fun1, fun2, fun3) :fun1转换流元素;fun2为累积器,将fun1的转换结果累积起来;fun3为组合器,将并行处理过程中累积器的各个结果组合起来

(3)查找与收集操作

1.max(Comparator):返回流中最大值

2.min(Comparator):返回流中最小值

3.count():返回流中元素个数

4.findFirst() :返回第一个元素

5.findAny() :返回任意元素

6.anyMatch(Predicate) :任意元素匹配时返回true

7.allMatch(Predicate) :所有元素匹配时返回true

8.noneMatch(Predicate) :没有元素匹配时返回true

2.1,并行流

简单的将list的元素取出来再添加到另一个集合中

package com.testjdk8.test.thread;import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;public class Test {//仿造数据库返回对象和listpublic static void main(String[] args) {// 使用一个容器装载 100 个数字,通过 Stream 并行处理的方式将容器中为单数的数字转移到容器 parallelListList<Integer> integerList= new ArrayList<Integer>();for (int i = 0; i <100; i++) {integerList.add(i);}List<Integer> parallelList = new ArrayList<Integer>() ;parallelList=integerList.stream().parallel().filter(i->i%2==1).collect(Collectors.toList());parallelList.forEach(i -> System.out.println(i));}}

2.2,串行流

之前没加.parallel()的就是串行流。。并行流转串行流的方法

    List<Integer> parallelList = new ArrayList<Integer>() ;parallelList=integerList.stream().parallel().sequential().filter(i->i%2==1).collect(Collectors.toList());parallelList.forEach(i -> System.out.println(i));

3,函数式接口

jdk8常见的函数式接口

Supplier None T 提供者 工厂方法创建对象

Consumer T void 消费者 输出一个值

Predicate T boolean 谓语,顾名思义,中文中的‘是’与‘不是’是中文语法的谓语

Function T R 函数 获得某个对象的名字

BinaryOperator (T, T) T 二元操作符,二元(就是数学里二元一次方程那个二元,代表 2 个的意思),双重的。
即有两个操作数 例如求两个数的乘积(*)

UnaryOperator T T 一元操作符,只有一个操作数 逻辑非(!)

3.1,Supplier接口(生成数据)

3.1.1,直接创建Supplier字符串对象,调用get方法

package com.testjdk8.test.thread;import java.util.function.Supplier;public class Supplierdemo {public static void main(String[] args) {Supplier supplier=() -> "helloworld";System.out.println(supplier.get());}
}

3.1.2,Supplier创建对象

package com.testjdk8.test.thread;import java.util.function.Supplier;//主类
public class DemoSupplier {//员工类private static class Employee {//注意staticpublic String toString() {return "我是员工";}}public static void main(String[] args) {//使用 Lambda 传入 Supplier 对象,将生成一个员工对象//此时仅仅是实例化了接口并未执行里面代码Supplier supplier = ()->new Employee();//输出员工对象System.out.println(supplier.get());}
}

3.1.3,Supplier作为方法参数

package com.testjdk8.test.thread;import java.util.function.Supplier;//主类
public class DemoSupplier { public static void main(String[] args) {int[] arr = {12, 68, 10, 2, 99, 313, 46};// 调用 getMax 方法获得最大值,Lambda 相当于方法体int num = getMax(() -> {int max = arr[0];for (int i = 1; i < arr.length; i++) {if (max < arr[i]) {max = arr[i];}}return max;});//输出最大值System.out.println("最大值是:" + num);
}//使用 Supplier 做为参数public static int getMax(Supplier<Integer> supplier) {return supplier.get();}}

3.2,consumer接口(消费数据)

3.2.1,直接使用consumer对象

package com.testjdk8.test.thread;import java.util.function.Consumer;public class DemoSupplier {public static void main(String[] args) {Consumer consumer=t -> System.out.println(t);consumer.accept("goodgoodstudy");}
}

3.2.2,consumer作为参数1

package com.testjdk8.test.thread;
import java.util.Arrays;
import java.util.List;public class DemoSupplier {public static void main(String[] args) {//将数组转成 List 对象List names = Arrays.asList("孙悟空", "猪八戒", "白骨精", "嫦娥");//打印每一个字符串,forEach 的参数就是 Consumernames.forEach(t -> System.out.println(t));}}

3.2.3,consumer作为参数2

数组分割字符串

package com.testjdk8.test.thread;import java.util.Arrays;
import java.util.List;
import java.util.function.Consumer;public class DemoSupplier {public static void main(String[] args) {String[] arr = {"张飞,男", "貂蝉,女", "曹操,男", "孙尚香,女"};//这里的 s 表示数组中的每个元素printInfo(arr, s -> {System.out.println("姓名:" + s.split(",")[0]);}, s -> {System.out.println("性别:" + s.split(",")[1]);});}public static void printInfo(String[] arr, Consumer<String> name, Consumer<String> gender) {for (String s : arr) {name.andThen(gender).accept(s);System.out.println("------------------");}}}

3.3,Predicate接口(返回boolean)

3.3.1,test()方法

package com.testjdk8.test.thread;import java.util.function.Predicate;public class DemoSupplier {public static void main(String[] args) {//创建一个 Predicate 谓语对象,boolean test(T t)方法接收字符串类型,返回 boolean 类型Predicate<String> predicate = s -> s.length() > 5;//两次调用 test方法看运行结System.out.println("Hello 的长度是否大于 5:" + predicate.test("Hello"));System.out.println("Predicate 的长度是否大于 5:" + predicate.test("Predicate"));}}

3.3.2,and()方法

package com.testjdk8.test.thread;import java.util.function.Predicate;public class DemoSupplier {public static void main(String[] args){//创建 2 个需要判断的字符串String s1 = "Hello world";String s2 = "Hello World";// 使用 Lambda 表达式,创建两个 Predicate 对象//判断 s 是否包含 HPredicate<String> p1 = s -> s.contains("H");//判断 s 是否包含 WPredicate<String> p2 = s -> s.contains("W");//调用 and 方法System.out.println(s1 + "是否包含 H 和 W:" + p1.and(p2).test(s1));System.out.println(s2 + "是否包含 H 和 W:" + p1.and(p2).test(s2));}
}

3.3.3,or()方法

package com.testjdk8.test.thread;import java.util.function.Predicate;public class DemoSupplier {public static void main(String[] args) {//创建三个字符串String s1 = "Hello World"; //大于 10String s2 = "Java"; //小于 5String s3 = "I am boy"; //既不大于 10,又不小于 5//使用 Lambda 创建 2 个 Predicate 接口对象Predicate<String> p1 = s -> s.length() > 10;Predicate<String> p2 = s -> s.length() < 5;//输出每个字符串的测试结果System.out.println(s1 + "=" + p1.or(p2).test(s1));System.out.println(s2 + "=" + p1.or(p2).test(s2));System.out.println(s3 + "=" + p1.or(p2).test(s3));}
}

3.3.4, 默认方法 negate() 取反

package com.testjdk8.test.thread;import java.util.function.Predicate;public class DemoSupplier {public static void main(String[] args) {int age1 = 25; //25 岁int age2 = 15; //15 岁Predicate<Integer> predicate = (a) -> a < 18; //判断是否小于 18 岁System.out.println(age1 + "小于 18 岁,取反:" + predicate.negate().test(age1));System.out.println(age2 + "小于 18 岁,取反:" + predicate.negate().test(age2));}
}

3.3.5,比较两个对象是否相等 isEqual ()

package com.testjdk8.test.thread;import java.util.function.Predicate;public class DemoSupplier {public static void main(String[] args) {//通过静态方法直接返回 Predicate 对象Predicate predicate = Predicate.isEqual("newboy");//调用 test()方法传入另两个字符串分别比较System.out.println("两个字符串是否相等:" + predicate.test("newboy"));System.out.println("两个字符串是否相等:" + predicate.test("NewBoy"));}}

3.3.6,应用实例

需求说明集合当中有多条“姓名+性别”的信息如下:“张飞,男”, “貂蝉,女”, “曹操,男”,“孙尚香,女”,“小乔,女”

请通过 Predicate 接口的 and 组合方法,将符合要求的字符串筛选到集合 ArrayList 中,

需要同时满足两个条件:1) 必须为女生 2) 姓名为两个字

开发步骤:1) 创建第 1 个 Predicate 判断条件:使用逗号分隔的第 0 个元素姓名长度是 2

  1. 创建第 2 个 Predicate 判断条件:使用逗号分隔的第 1 个元素性别等于女

  2. 创建一个新的 List 集合,用于存储过滤以后符合条件的字符串

  3. 使用 List 中的 forEach(Lambda)遍历上面的原始 List 集合,

使用 Predicate 中的 and 和 test 方法判断每个元素

  1. 两个条件都为真才添加到新的 List 集合中

  2. 创建第 1 个 Consumer 接口,输出使用逗号分隔的第 0 个元素姓名

  3. 创建第 2 个 Consumer 接口,输出使用逗号分隔的第 1 个元素性别

  4. 使用 List 中的 forEach(Lambda)遍历,输出过滤后的新的集合

  5. 使用 Consumer 接口中的 andThen 和 accept 方法,输出每一个元素

package com.testjdk8.test.thread;import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Predicate;public class DemoSupplier {public static void main(String[] args) {
//从数组中创建一个 List 集合​List<String> list = Arrays.asList("张飞,男", "貂蝉,女", "曹操,男", "孙尚香,女", "小乔,女");//创建第 1 个 Predicate 判断条件:使用逗号分隔的第 0 个元素姓名长度是 2Predicate<String> pname = s -> s.split(",")[0].length() == 2;
//创建第 2 个 Predicate 判断条件:使用逗号分隔的第 1 个元素性别等于女Predicate<String> pgender = s -> s.split(",")[1].equals("女");//创建一个新的 List 集合​List<String> infos = new ArrayList<>();
//使用 Lamba 中的 forEach()遍历上面的 List 集合,使用 Predicate 中的 and 和 test 方法判断每个元素list.forEach(s -> {
//两个都为真才添加到集合中​if (pname.and(pgender).test(s)) {infos.add(s);}});
//创建第 1 个 Consumer 接口,输出使用逗号分隔的第 0 个元素姓名Consumer<String> cname = s -> System.out.println("姓名:" + s.split(",")[0]);
//创建第 2 个 Consumer 接口,输出使用逗号分隔的第 1 个元素性别Consumer<String> cgender = s -> System.out.println("性别:" + s.split(",")[1]);
//使用 Lamba 中的 forEach()遍历,输出过滤后的集合​infos.forEach(s -> {
//使用 Consumer 接口中的 andThen 和 accept 方法,每输出一个元素隔一条线cname.andThen(cgender).accept(s);System.out.println("---------------");});}
}

自己用的lambda表达式+stream流+函数式接口写的

package com.testjdk8.test.thread;import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.stream.Collectors;public class DemoSupplier {public static void main(String[] args) {String[] arr = {"张飞,男", "貂蝉,女", "曹操,男", "孙尚香,女"};//这里的 s 表示数组中的每个元素//创建第 1 个 Predicate 判断条件:使用逗号分隔的第 0 个元素姓名长度是 2Predicate<String> predicate1 = str -> str.split(",")[0].length() == 2;//创建第 2 个 Predicate 判断条件:使用逗号分隔的第 1 个元素性别等于女Predicate<String> prodicate2 = str -> str.split(",")[1].equals("女");//创建一个新的 List 集合,用于存储过滤以后符合条件的字符串List<String> list = new ArrayList<>();// 使用 List 中的 forEach(Lambda)遍历上面的原始 List 集合,// 使用 Predicate 中的 and 和 test 方法判断每个元素List<String> list1 = Arrays.asList(arr);list=list1.stream().filter(f ->(predicate1.and(prodicate2).test(f))).collect(Collectors.toList());list.forEach(f -> System.out.println(f));}
}

3.4,Fuction接口

3.4.1,apply()

package com.example1.demo1;import java.util.function.Function;public class Test {public static void main(String[] args) {
//创建一个 Function 对象Function<Integer, String> converter = i -> Integer.toString(i);System.out.println("99 转成字符串的长度是:" + converter.apply(99).length());System.out.println("1000 转成字符串的长度是:" + converter.apply(1000).length());}
}

3.4.2,andThen()

package com.example1.demo1;import java.util.Scanner;
import java.util.function.Function;public class Test {public static void main(String[] args) {
//用户输入一个字符串System.out.println("请输入数字:");Scanner input = new Scanner(System.in);String str = input.nextLine();
//第 1 个函数将字符串转成整数Function<String, Integer> f1 = s -> Integer.parseInt(s);
//第 2 个函数将整数乘以 10 返回Function<Integer, Integer> f2 = i -> i * 10;
//调用 andThen 方法,并且输出结果System.out.println("转成整数并乘以 10 以后的结果是:" + f1.andThen(f2).apply(str));}}

3.4.3,compose() 反转

package com.example1.demo1;import java.util.Scanner;
import java.util.function.Function;public class Test {public static void main(String[] args) {Function<String, String> f1 = s -> s.toUpperCase();Function<String, String> f2 = s -> s.toLowerCase();System.out.println("转成大写:" + f1.apply("Hello"));System.out.println("转成小写:" + f2.apply("Hello"));System.out.println("先转成大写,再转成小写:" + f1.andThen(f2).apply("Hello"));System.out.println("先转成小写,再转成大写:" + f1.compose(f2).apply("Hello"));}}

3.4.4,function应用实例

需求说明:请使用 Function 进行函数拼接,按照顺序执行多个函数。操作依次为:1) 将字符串"赵丽颖,20"截取数字年龄部分,得到字符串;2) 将上一步的字符串转换成为 int 类型的数字;3) 将上一步的 int 数字累加 100,得到结果 int 数字。 开发步骤:1) 创建第 1 个 Function 对象,将字符串 20 取出,返回一个字符串2) 创建第 2 个 Function 对象,将字符串转成整数,返回整数3) 创建第 3 个 Function 对象,将整数加 100,返回计算结果4) 调用 andThen 方法 2 次,apply 方法应用字符串:“赵丽颖,20”,输出结果代码实现

package com.example1.demo1;import java.util.Scanner;
import java.util.function.Function;public class Test {public static void main(String[] args) {
//创建第 1 个 Function 对象,将字符串 20 取出,返回一个字符串Function<String, String> fun1 = s -> s.split(",")[1];
//创建第 2 个 Function 对象,将字符串转成整数,返回整数Function<String, Integer> fun2 = s -> Integer.parseInt(s);
//创建第 3 个 Function 对象,将整数加 100,返回计算结果Function<Integer, Integer> fun3 = num -> num + 100;
//调用 andThen 方法 2 次,apply 方法应用字符串,输出结果System.out.println("计算结果:" + fun1.andThen(fun2).andThen(fun3).apply("赵丽颖,20"));}}

3.5,BinaryOperator 接口

3.5.1,apply()

package com.example1.demo1;import java.util.Scanner;
import java.util.function.BinaryOperator;
import java.util.function.Function;public class Test {public static void main(String[] args) {BinaryOperator<Integer> operator = (m, n) -> m + n;System.out.println("计算结果是:" + operator.apply(3, 5));}}

3.5.2,静态方法 parallelPrefix()用于操作替换前一个数组元素

package com.example1.demo1;import java.util.Arrays;
import java.util.Scanner;
import java.util.function.BinaryOperator;
import java.util.function.Function;public class Test {public static void main(String[] args) {BinaryOperator<Integer> operator = (m, n) -> m + n;Integer[] arr = {2, 1, 3, 5};System.out.println("操作前的数组:" + Arrays.toString(arr));Arrays.parallelPrefix(arr, operator);System.out.println("操作后的数组:" + Arrays.toString(arr));}}

3.5.3,Comparator

package com.example1.demo1;
import java.util.Comparator;
import java.util.function.BinaryOperator;
public class Test {public static void main(String[] args) {//naturalOrder()是 Comparator 中的静态方法,即按数字的正常大小进行比较BinaryOperator oper1 = BinaryOperator.minBy(Comparator.naturalOrder());System.out.println("最小值是:" + oper1.apply(3,5));//naturalOrder()是 Comparator 中的静态方法,即按字符串的正常大小进行比较BinaryOperator oper2 = BinaryOperator.maxBy(Comparator.naturalOrder());System.out.println("最大值是:" + oper2.apply("ABCD","xyz"));}
}

3.6,UnaryOperator 接口

package com.example1.demo1;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.function.BinaryOperator;
import java.util.function.UnaryOperator;public class Test {public static void main(String[] args) {//创建一个 UnaryOperator对象,UnaryOperator operator = UnaryOperator.identity();//调用 apply()方法,输出参数的值System.out.println("输出与输出一样:" + operator.apply("abc"));List nums = Arrays.asList(3, 10, 8, 2);System.out.println("替换前:" + nums);UnaryOperator <Integer>oper = x -> x * 2;nums.replaceAll(oper);System.out.println("替换后:" + nums);List <String>names = Arrays.asList("Jack","Rose","Tom","NewBoy");System.out.println("替换前:" + names);names.replaceAll(s -> s.toUpperCase());System.out.println("替换后:" + names);}
}

常用的函数式接口小结

Supplier 提供数据者 T get();没有传入参数,有结果。
​
Consumer 消费数据者 void accept(T t); 传入数据,没有结果。 andThen()Predicate 谓语 boolean test(T t); 对传入的数据逻辑判断 and()or()negate()isEqual()Function 函数 R apply(T t); 传入一个变量返回计算结果 andThen()compose()identity()BinaryOperator 二元操作符 T apply(T t,T u); 传入两个参数返回一个结果 andThen()继承于 BiFunctionUnaryOperator继承于 Function一元操作符 T apply(T t); 传入一个参数返回一个结果 andThen()compose()identity()

4,Optional类

为防止空指针异常
平时我们操作是

if(User!=null){if(User.getAddress()!=null)if(User.getAddress().getCountry()!=null)if(User.getAddress().getCountry().getIsoCode()!=null)String isocode=User.getAddress().getCountry().getIsoCode().toUpperCase()
}

Optional类可以防止空指针异常,代码如下

(1)User类

package com.example1.demo1;public class User {private String address;User(){}public User(String address) {this.address = address;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}
}

(2)Test类

package com.example1.demo1;import java.util.Optional;public class Test {public static void main(String[] args) {User user=new User();User user1=new User("南头");String result= Optional.ofNullable(user).map(c -> user.getAddress()).orElse("我在防止空指针");String result1= Optional.ofNullable(user1).map(c -> user1.getAddress()).orElse("我在防止空指针");System.out.println(result);System.out.println(result1);}
}

5,Date类

5.1,instant

package com.example1.demo1;import java.time.Clock;
import java.time.Instant;
import java.util.Date;public class Test {public static void main(String[] args) {Clock clock=Clock.systemDefaultZone();Long milis=clock.millis();System.out.println(milis);//instant类创建以前的data类Instant instant=clock.instant();Date date=Date.from(instant);System.out.println(date.toString());}
}

5.2,zoneId

package com.example1.demo1;import java.time.ZoneId;public class Test {public static void main(String[] args) {ZoneId zone1=ZoneId.of("Europe/Berlin");System.out.println(zone1.getRules());}
}

5.3,LocalDateTime

package com.example1.demo1;import java.time.DayOfWeek;
import java.time.LocalDateTime;
import java.time.Month;
import java.time.ZoneId;public class Test {public static void main(String[] args) {LocalDateTime time=LocalDateTime.of(2020, Month.JUNE,8,21,22,22);DayOfWeek dayOfWeek=time.getDayOfWeek();System.out.println(dayOfWeek);Month month=time.getMonth();System.out.println(month);}
}
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. IsolatedStorageFile

    此对象对应于特定的独立存储范围,其中的文件由 IsolatedStorageFileStream 对象表示。 应用程序可以使用独立存储将数据保存在文件系统自身的隔离部分中,而无需在文件系统中指定特定路径。 由于独立存储区的作用域为特定程序集,因此,大多数其他托管代码将无法访问您的代码的…...

    2024/4/24 11:56:10
  2. 关于静态static变量的一些使用

    今天我在写项目的时候用到了静态变量,然后我在使用到了static变量的类里面创建方法的时候我直接用变量名,就是比如我在A类里写了static a;那我要在B类里面使用a就是用A.a,来使用。但是我在A类里写方法的时候用a是直接就用a,没有使用A.a ,然后运行的时候我发现方法里的a …...

    2024/5/6 0:47:01
  3. 扬州游学攻略 是什么造就了扬州的千年风韵?

    ...

    2024/4/24 11:56:10
  4. hello程序在开发板上的运行

    vi hello.carm-cortex_a9-linux-gnueabi-gcc hello.c -o hello_armcp hello_arm busybox-1.23.2/_install/在板子上执行 ./hello_arm : error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory出现的问题…...

    2024/5/6 12:26:56
  5. $ ssh -T git@github.com ssh: connect to host ssh.github.com port 22: Connection timed out

    最近更新项目,发现push的时候出现: Ssh: connect to host github.com port 22: Connection timed out Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.然后输入ssh -T git@github.com出现:ssh: con…...

    2024/5/7 2:15:01
  6. 如何通过python实现--监控服务器是否有人远程登录(详细思路+代码)

    文章目录起源思路实现cmd命令netstat监控3389端口python脚本实现展示思维导图 起源 当同一个远程服务器有多个人使用的时候,想知道服务器是否有人在用,我们不能直接的去登录,因为这样可能会把对方挤下来,这并不友好,所以这里提供一个监控远程服务器是否有人连接的方式 思路…...

    2024/5/6 23:44:01
  7. 基于opengl的3d漫游游戏 - 古堡危机之丧尸围城

    作品名称:《古堡危机》小组团队名称: 拾荒三人组日期:2018年12月目录第一章 简介 3前言 3项目的创意设想、游戏类型、实现的功能、项目意义 3Opengl 4作品代表图 5软硬件环境说明 5游戏操作说明 6项目制作过程进度,开发周期 6本说明文档结构 7第二章 场景搭建 8建立坐标系 …...

    2024/5/6 15:07:25
  8. 指数基金

    目录一、指数基金简介二、指数基金的购买三、指数基金的投资策略四、如何购买指数基金一、指数基金简介 什么是指数? 简单来说,指数就是一个选股规则!它的目的是按照某个规则挑选出一篮子股票,并反映这一篮子股票的平均价格走势!例如:沪深 300 指数,规则是:对沪深两市…...

    2024/5/6 12:06:14
  9. 【序列化】Kryo 的几种常见序列化实现方式,及其兼容性

    Kryo 是啥Kryo是Java生态中的一种序列化框架。许多软件组织在使用Dubbo(Dubbox)这套RPC框架时,经常会搭配使用 Kryo 作为其序列化方案。Kryo本身自带了很多针对 Java 原始数据类型 和 JDK常见类型的 序列化实现(如,DefaultSerializers)。它的姐妹工程 Kryo-Serializers 还…...

    2024/4/24 11:56:02
  10. JSON Web 令牌(JWT)是如何保护 API 的

    API 验证JSON Web TokenToken 的结构HeaderPayload哈希算法JWT 签名认证过程登录验证请求退出登录总结你可以已经听说过 JSON Web Token (JWT) 是目前用于保护 API 的最新技术。与大多数安全主题一样,如果你打算使用它,那很有必要去了解它的工作原理(一定程度上)。问题在于…...

    2024/4/15 4:51:54
  11. 3:函数进阶

    目标:掌握函数的定义和调用 清楚函数内部this指向 了解严格模式 知道高阶函数 弄明白闭包,递归 清楚原生js如何进行数据的浅拷贝、深拷贝1. 函数的定义和调用 1.1 函数的定义方式方式1 函数声明方式 function 关键字 (命名函数)function fn(){}方式2 函数表达式(匿名函数)var…...

    2024/5/6 17:47:00
  12. 单线程穷举法破解密码

    穷举使用多层for循环完成: for (int i = 48; i < 122; i++) {for (int j = 48; j < 122; j++) {for (int k = 48; k < 122; k++) {ch[0] = (char)i;ch[1] = (char)j;ch[2] = (char)k;String str = new String(ch);}}}完整实现如下: package javalearning; public c…...

    2024/5/6 23:43:30
  13. window10出现安装cuda失败原因

    提示说 cuda 和 cudnn 版本不兼容问题出现时,本机已经是 CUDA v10.0.130 ,cudnn 忘记查了,反正 nvcc -V没有查出来。按照这篇方法解决的,去这里下 cudnn,记得开VPN,不然速度比较慢https://developer.nvidia.com/rdp/cudnn-archive...

    2024/4/15 4:51:49
  14. 用IntelliJ IDEA自带的代码对比

    目前介绍两种对比和文件对比或者和剪贴板对比 (1)对比和剪贴板 直接将需要对比的文件复制到剪贴板(Ctrl+C)上,直接在idea中右击Compare with Clipboard即可显示差异。 2 对比和文件 1、首先,选中要比对的文件右键选择Compare With.2、选择本地需要带比对的文件,双击即可…...

    2024/4/15 4:51:47
  15. 资深大牛的建议,你想知道如何学习,怎么进入阿里吗?

    引言其实本来真的没打算写这篇文章,主要是小编的记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。小编自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的。但是,…...

    2024/4/15 4:51:47
  16. 快速入门Django开发教程(旅游推荐系统实现教程)

    本人开发环境直接用的是pycharm商业版,直接可以新建一个Django工程,大家可以在这里直接设置application name,这个也将会在下面会大家详细介绍。本次实战,主要涉及如下5个方面,分别对应该文件下的jinhong、static、templates、untitled4、travle.db,如果换成专业名词的话…...

    2024/4/17 0:25:42
  17. hualinux java 1.3:win10安装jdk8或14及配置

    jdk8_u251_win64.zip从0自学linux运维java jdk安装 这个是oracle jdk8官网目前最新版本的 jdk-8u251-windows-x64.exe立即下载目录前言:JDK和OpenJDK区别一、jdk8安装及配置1.1 jdk8下载及安装1.1.1 jdk8下载1.1.2 jdk安装1.2 配置jdk8环境变量1.2.1 配置path和classpath1.2.2…...

    2024/4/15 4:51:56
  18. C++中强制转换为static_cast, dynamic_cast,const_cast, reinterpret_cast

    四种强制转换static_castconst_castreinterpret_castdynamic_cast(动态类型转换) static_cast static_cast< new_type >(expression) 该运算符把expression转换为new_type 类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法: (1)用于基本数据类型…...

    2024/5/6 23:43:36
  19. 尤雨溪 Vue2 设计过程 Vue3 的蜕变?

    Lessons from rewriting the next major version of Vue.js 在过去的一年中,Vue团队一直在研究Vue.js的下一个主要版本,我们希望在2020年上半年发布该版本。(在撰写本文时,这项工作仍在进行中)。 Vue的主要版本于2018年底形成,当时Vue 2的代码库已有两年半的历史了。在通…...

    2024/4/24 11:56:00
  20. tomcat控制台出现com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:的错误——解决办法

    com.mysql.jdbc.PreparedStatement@a806a9: insert into leave (employeeid,name,startime,endtime,appreason) values (G2014565,李丽,2020-06-09,2020-06-11,肠胃炎,需看医生。)com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax…...

    2024/5/7 4:03:58

最新文章

  1. VALSE 2024年度进展评述内容分享-视觉基础大模型的进展

    2024年视觉与学习青年学者研讨会&#xff08;VALSE 2024&#xff09;于5月5日到7日在重庆悦来国际会议中心举行。本公众号将全方位地对会议的热点进行报道&#xff0c;方便广大读者跟踪和了解人工智能的前沿理论和技术。欢迎广大读者对文章进行关注、阅读和转发。文章是对报告人…...

    2024/5/7 10:41:05
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. JVM学习笔记

    文章目录 一、内存模型1. 程序计数器2. 栈3. 本地方法栈4. 堆5. 方法区方法区位置字符串常量池位置 6. 直接内存 二、虚拟机参数设置三、类的生命周期1. 加载2. 连接1&#xff09;验证2&#xff09;准备3&#xff09;解析 3. 初始化4. 卸载 四、类加载器1. 启动类加载器2. 扩展…...

    2024/5/7 6:47:46
  4. MQ的作用及分类

    概念&#xff1a; MQ(message queue)&#xff0c;从字面意思上看&#xff0c;本质是个队列&#xff0c;FIFO先入先出&#xff0c;只不过队列中存放的内容是message而已&#xff0c;还是一种跨进程的通信机制&#xff0c;用于上下游传递消息。在互联网架构中&#xff0c;MQ是一…...

    2024/5/5 8:45:53
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/7 5:50:09
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/7 9:45:25
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/6 9:21:00
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/4 23:55:16
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/4 23:55:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/4 23:55:06
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/4 23:55:16
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/6 21:42:42
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57