当前位置: 首页 > wzjs >正文

刘涛做的儿童购物网站网络营销专业是学什么的

刘涛做的儿童购物网站,网络营销专业是学什么的,学做网站php,skxy wordpress文章目录 一、jdk8新特性1. Lambda表达式2. Stream API3. 函数式接口4. 默认方法5. 方法引用6. 新的日期和时间API7. Optional类8. 并发增强 二、常用函数式接口1. Supplier<T>2. Consumer<T>3. Function<T,R>4. Predicate<T> 一、jdk8新特性 JDK 8&a…

文章目录

    • 一、jdk8新特性
      • 1. Lambda表达式
      • 2. Stream API
      • 3. 函数式接口
      • 4. 默认方法
      • 5. 方法引用
      • 6. 新的日期和时间API
      • 7. Optional类
      • 8. 并发增强
    • 二、常用函数式接口
      • 1.` Supplier<T>`
      • 2. `Consumer<T>`
      • 3. `Function<T,R>`
      • 4.` Predicate<T>`

一、jdk8新特性

JDK 8(Java Development Kit 8)为Java语言带来了许多新特性和改进,这些新特性极大地增强了Java的功能和灵活性。以下是JDK 8的一些主要新特性及其代码示例:

1. Lambda表达式

Lambda表达式是JDK 8引入的最重要的新特性之一,它允许以简洁和函数式的方式编写代码。Lambda表达式使得代码更易读、易写,并且可以提升代码的可维护性。

代码示例

List<String> list = Arrays.asList("a", "b", "c");
list.forEach(item -> System.out.println(item));

2. Stream API

Stream API是JDK 8中引入的一套用于处理集合和数组的新API。它提供了一种流式处理的方式,可以更方便地对数据进行操作和处理。Stream API支持并行处理,可以提高程序的执行效率。

代码示例

List<String> names = Arrays.asList("Tom", "Jerry", "Tony");
List<String> result = names.stream().filter(name -> name.startsWith("T")).map(String::toUpperCase).collect(Collectors.toList());

3. 函数式接口

函数式接口是只包含一个抽象方法的接口。JDK 8引入了函数式接口的概念,并且可以通过@FunctionalInterface注解来标记,以确保它只包含一个抽象方法。函数式接口的引入使得Java支持函数式编程,可以更方便地使用Lambda表达式。

代码示例

@FunctionalInterface
public interface MyFunc {int doSomething(int x);
}

4. 默认方法

在JDK 8之前,接口只能包含抽象方法和常量。JDK 8引入了默认方法的概念,可以在接口中实现方法的默认实现。默认方法可以在接口中提供一个默认的实现,从而避免因为接口的改变而导致实现类需要进行修改。

代码示例

interface MyInterface {default void hello() {System.out.println("Hello from interface");}
}

5. 方法引用

方法引用是一种更简洁地表示Lambda表达式的方式。它允许直接引用已经存在的方法,而不是通过Lambda表达式来实现。方法引用可以提高代码的可读性和可维护性,同时减少重复代码的编写。

代码示例

list.forEach(System.out::println);

6. 新的日期和时间API

JDK 8引入了一套全新的日期和时间API,用于替代旧的Date和Calendar类。新的日期和时间API更加简单易用,并且提供了更多的功能。它支持日期、时间、时区、时间间隔等的处理,同时提供了更多的操作方法和格式化选项。

代码示例

LocalDate today = LocalDate.now();
LocalDate birth = LocalDate.of(2000, 1, 1);
Period age = Period.between(birth, today);
System.out.println("年龄: " + age.getYears());

7. Optional类

Optional是JDK 8新增的容器类,用于解决null值处理问题。它可以包装一个可能为空的对象,并提供一系列的操作来处理该对象。使用Optional类可以避免空指针异常,提高代码的健壮性。

代码示例

Optional<String> name = Optional.ofNullable(getName());
name.ifPresent(System.out::println);
String defaultName = name.orElse("默认值");

8. 并发增强

JDK 8对并发编程进行了增强,引入了一些新的并发工具和类,如CompletableFuture类、StampedLock类等。这些增强使得开发人员能够更好地处理并发问题,提高程序的性能和可伸缩性。

代码示例(CompletableFuture):

CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {// 异步任务System.out.println("异步任务执行");
});future.thenRun(() -> {// 异步任务完成后的操作System.out.println("异步任务完成后执行");
});

二、常用函数式接口

在Java中,SupplierConsumerFunctionPredicate等函数式接口是Java 8引入的重要特性,它们位于java.util.function包中。这些接口通常与Lambda表达式和方法引用一起使用,以简化代码并提高可读性。以下是这些函数式接口的具体应用示例:

1. Supplier<T>

Supplier<T>接口用于提供一个结果,但不接受任何参数。它通常用于延迟生成对象或值。

应用示例

import java.util.function.Supplier;public class SupplierExample {public static void main(String[] args) {// 创建一个Supplier,用于生成当前时间Supplier<String> currentTimeSupplier = () -> java.time.LocalTime.now().toString();// 使用Supplier获取结果System.out.println("Current time: " + currentTimeSupplier.get());}
}

在这个例子中,currentTimeSupplier是一个Supplier<String>,它使用Lambda表达式来生成当前时间的字符串表示。

2. Consumer<T>

Consumer<T>接口用于接受一个输入参数并执行某些操作,但不返回结果。

应用示例

import java.util.Arrays;
import java.util.function.Consumer;public class ConsumerExample {public static void main(String[] args) {// 创建一个Consumer,用于打印字符串Consumer<String> printConsumer = System.out::println;// 使用Consumer处理集合中的每个元素Arrays.asList("Hello", "World").forEach(printConsumer);}
}

在这个例子中,printConsumer是一个Consumer<String>,它使用方法引用来打印字符串。然后,我们使用forEach方法和printConsumer来处理集合中的每个元素。

3. Function<T,R>

Function<T,R>接口用于接受一个输入参数并返回一个结果。它可以将输入参数映射到另一个结果。

应用示例

public class ServiceUtils {public static <T extends BaseDomain> int addAndUpdate(T domainObj,Function<Long, T> selectByPrimaryKey,Function<T, Integer> updateByPrimaryKeySelective,Function<T, Integer> insertSelective) {if (domainObj.getId() != null && selectByPrimaryKey.apply(domainObj.getId()) != null) {domainObj.setUpdatedBy(SecurityUtils.getCurrentUsername());domainObj.setUpdatedTime(LocalDateTime.now());return updateByPrimaryKeySelective.apply(domainObj);} else {domainObj.setStatus(1);domainObj.setInactiveFlag(false);domainObj.setCreatedBy(SecurityUtils.getCurrentUsernameTryCatch());domainObj.setCreatedTime(LocalDateTime.now());return insertSelective.apply(domainObj);}}
}// 调用:通过传入拥有公共字段(id、status、inactiveFlag等)实体类对象、主键查询方法、更新方法、插入方法,将新增或修改方法的调用统一判断处理
public int addAndUpdate(CurveRange range) {return ServiceUtils.addAndUpdate(range,mapper::selectByPrimaryKey,mapper::updateByPrimaryKeySelective,mapper::insertSelective);}

在这个例子中,intToStringFunction是一个Function<Integer, String>,它使用方法引用来将整数转换为字符串。然后,我们使用apply方法进行转换并打印结果。

4. Predicate<T>

Predicate<T>接口用于接受一个输入参数并返回一个布尔值结果。它通常用于判断输入参数是否满足某种条件。

应用示例

import java.util.Arrays;
import java.util.function.Predicate;public class PredicateExample {public static void main(String[] args) {// 创建一个Predicate,用于判断整数是否为偶数Predicate<Integer> isEvenPredicate = i -> i % 2 == 0;// 使用Predicate过滤集合中的元素Arrays.asList(1, 2, 3, 4, 5).stream().filter(isEvenPredicate).forEach(System.out::println);}
}

在这个例子中,isEvenPredicate是一个Predicate<Integer>,它使用Lambda表达式来判断整数是否为偶数。然后,我们使用streamfilterforEach方法来过滤集合中的元素并


文章转载自:

http://x2vzXaNb.mLnby.cn
http://jdL2h2sP.mLnby.cn
http://KtpnXrZS.mLnby.cn
http://fx43e4P4.mLnby.cn
http://JUHp0YT2.mLnby.cn
http://p1NFHtkP.mLnby.cn
http://TqeCJBoH.mLnby.cn
http://oZXLPcqZ.mLnby.cn
http://neWsjzao.mLnby.cn
http://OYNTADM0.mLnby.cn
http://2K8dMyfy.mLnby.cn
http://lQ1gP0pj.mLnby.cn
http://3kMs9xrZ.mLnby.cn
http://igojrpvB.mLnby.cn
http://5UPPYxwy.mLnby.cn
http://fS6AfO6N.mLnby.cn
http://GgVvxvBu.mLnby.cn
http://56MyEQSr.mLnby.cn
http://Jxu9Bsbu.mLnby.cn
http://pFopyexz.mLnby.cn
http://ndGOJfFN.mLnby.cn
http://zfieihto.mLnby.cn
http://CvCtk7vJ.mLnby.cn
http://Kq6zPp7F.mLnby.cn
http://DC0NjuG1.mLnby.cn
http://DKMosjOW.mLnby.cn
http://jSS5EnBa.mLnby.cn
http://uJLjgNId.mLnby.cn
http://9NiFFvAa.mLnby.cn
http://OpZkVzvV.mLnby.cn
http://www.dtcms.com/wzjs/712526.html

相关文章:

  • 宣传网站建设的意义图片扫一扫在线识别照片
  • 合肥网站搭建wordpress cdn 谷歌
  • 挖矿网站开发做金融的看哪些网站
  • 北京网站开发建设网络平台建设授权书
  • 铜陵做网站东莞优化公司首选3火星
  • 免费个人网站建站申请流程网站注册备案之后怎么做
  • 用什么技术来做网站怎么设计一个app
  • 邳州建网站路由下做网站映射
  • 广州建网站兴田德润团队小程序商城哪的服务好
  • 网站域龄查询附近临时工500元一天
  • 深圳网站建设那家好深圳app开发公司价格怎么算
  • 深圳做外贸网站公司wordpress显示某一类文章
  • 免费解析素材网站小程序开发视频教程
  • 上海建筑网站建个大型网站要多少钱
  • 建筑设计网站国外网页美工设计的工作流程?
  • qq免费建网站建模培训机构排名
  • 湖州公司做网站wordpress ios 源码
  • 义乌水务建设集团官方网站做印刷网站公司哪家好
  • 注册免费微网站上海网页设计方法
  • 网站推广策划方案书做网站那些好
  • .net网站开发简介wordpress教程视频 下载
  • 互联网做网站属于什么行业莱西市建设局网站
  • 黄页网站介绍网站的扁平化设计理念
  • 那个网站做室内比较好的h5页面制作app
  • 天宁常州做网站江苏建设网站公司
  • 做外贸网站效果图服装网站建设的技术可行性
  • 做网站的报价方案软件开发工具与平台
  • 寺庙网站开发策划书企业做网站公司排名
  • 仙桃建设网站打折网站模板
  • 网站开发设计公司图文设计用什么软件