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

对二次网站开发的认识绵阳的网站制作公司

对二次网站开发的认识,绵阳的网站制作公司,sem竞价教程,网页设计制作素材下载后端杂七杂八系列篇四-Java8篇 ① Lombok插件① RequiredArgsConstructor② SneakyThrows③ UtilityClass④ Cleanup ② Lambda 4个常用的内置函数① FunctionT, R - 接受一个输入参数并返回一个结果② Consumer - 接受一个输入参数#xff0c;并执行某种操作#xf… 后端杂七杂八系列篇四-Java8篇 ① Lombok插件① RequiredArgsConstructor② SneakyThrows③ UtilityClass④ Cleanup ② Lambda 4个常用的内置函数① FunctionT, R - 接受一个输入参数并返回一个结果② Consumer - 接受一个输入参数并执行某种操作无返回值③ Supplier - 不接受任何参数但产生一个结果④ Predicate - 接受一个输入参数并返回一个布尔值 ③ Optional④ 常用Stream流stream 中间操作stream 终端操作 Java 8中的Future和CompletableFutureFutureCompletableFuture ① Lombok插件 Lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具。 ① RequiredArgsConstructor ② SneakyThrows 在 Java 中异常被分为了受查异常 checked exception和 非受查异常unchecked exception两种。 非受查异常又叫运行时异常即 RuntimeException。 受查异常即 Exception。 受查异常是Java给你检查的异常需要你手动try catch 比如这个写的时候会报错IDE会提示我们需要加上try catch 运行时异常是Java 运行时候报出来的异常一般是我们程序员写错了。 我们的SneakyThrows就是为了让我们少写try catch 代码 即在有受查异常的时候我们加上注解就不用写try catch了。 代码举例 import lombok.SneakyThrows;public class SneakyThrowsDemo {// 使用注解SneakyThrowspublic String readFile(String filePath) {File file new File(filePath);BufferedReader reader new BufferedReader(new FileReader(file));StringBuilder content new StringBuilder();String line;while ((line reader.readLine()) ! null) {content.append(line).append(\n);}reader.close();return content.toString();}// 不使用注解public String readFileWithout(String filePath) {try{File file new File(filePath);BufferedReader reader new BufferedReader(new FileReader(file));StringBuilder content new StringBuilder();String line;while ((line reader.readLine()) ! null) {content.append(line).append(\n);}reader.close();return content.toString();}catch(e){}}public static void main(String[] args) {SneakyThrowsDemo demo new SneakyThrowsDemo();// 无需捕获FileNotFoundException和IOExceptionSystem.out.println(demo.readFile(example.txt));} }③ UtilityClass 用于定义工具类的时候不用定义static的方法了。 举个例子 public class UtilClass {// 静态变量全局存储public static int globalCount 0;// 静态方法可以直接通过类名调用无需创建对象public static void incrementCount() {globalCount;}// 其他静态工具方法public static String formatString(String input) {return Formatted: input.toUpperCase();}// 使用示例public static void main(String[] args) {// 不需要创建UtilClass对象直接访问静态成员UtilClass.incrementCount();System.out.println(UtilClass.globalCount); // 输出1String formattedString UtilClass.formatString(hello world);System.out.println(formattedString); // 输出Formatted: HELLO WORLD} }在Java中静态工具类中的属性默认情况下是可以一直保留的除非显式地进行修改或者JVM垃圾回收机制清除了该类的Class对象这在正常应用中非常罕见。 使用注解时候的demo UtilityClass public class WxMpContextHolder {private final ThreadLocalString THREAD_LOCAL_APPID new TransmittableThreadLocal();/*** TTL 设置appId* param appId*/public void setAppId(String appId) {THREAD_LOCAL_APPID.set(appId);}/*** 获取TTL中的appId* return*/public String getAppId() {return THREAD_LOCAL_APPID.get();}public void clear() {THREAD_LOCAL_APPID.remove();}} ④ Cleanup // Java 标准的写法public class CleanupExample {public static void main(String[] args) throws IOException {InputStream in new FileInputStream(args[0]);try {OutputStream out new FileOutputStream(args[1]);try {byte[] b new byte[10000];while (true) {int r in.read(b);if (r -1) break;out.write(b, 0, r);}} finally {if (out ! null) {out.close();}}} finally {if (in ! null) {in.close();}}} }// 注解的写法 public class CleanupExample {public static void main(String[] args) throws IOException {Cleanup InputStream in new FileInputStream(args[0]);Cleanup OutputStream out new FileOutputStream(args[1]);byte[] b new byte[10000];while (true) {int r in.read(b);if (r -1) break;out.write(b, 0, r);}} }② Lambda 4个常用的内置函数 ① FunctionT, R - 接受一个输入参数并返回一个结果 public class FunctionDemo {public static void main(String[] args) {ListString names Arrays.asList(Alice, Bob, Charlie);// 使用lambda表达式转换字符串为大写FunctionString, String toUpperCase s - s.toUpperCase();names.stream().map(toUpperCase).forEach(System.out::println);} }② Consumer - 接受一个输入参数并执行某种操作无返回值 public class ConsumerDemo {public static void main(String[] args) {ListInteger numbers Arrays.asList(1, 2, 3, 4, 5);// 使用lambda表达式打印数字ConsumerInteger printNumber n - System.out.println(Number: n);numbers.forEach(printNumber);} }③ Supplier - 不接受任何参数但产生一个结果 public class SupplierDemo {public static void main(String[] args) {// 使用lambda表达式生成随机数SupplierInteger randomIntSupplier () - (int) (Math.random() * 100);System.out.println(Random number: randomIntSupplier.get());} }④ Predicate - 接受一个输入参数并返回一个布尔值 public class PredicateDemo {public static void main(String[] args) {ListString fruits Arrays.asList(Apple, Banana, Cherry, Durian);// 使用lambda表达式检查字符串长度是否大于5个字符PredicateString isLongFruit fruit - fruit.length() 5;fruits.stream().filter(isLongFruit).forEach(System.out::println);} }③ Optional 用法例子一 public class Student {private String name;private int age;private Integer score;//省略 construct get set }public ListStudent initData(){Student s1 new Student(张三, 19, 80);Student s2 new Student(李四, 19, 50);Student s3 new Student(王五, 23, null);Student s4 new Student(赵六, 16, 90);Student s5 new Student(钱七, 18, 99);Student s6 new Student(孙八, 20, 40);Student s7 new Student(吴九, 21, 88);return Arrays.asList(s1, s2, s3, s4, s5, s6, s7); }Test public void beforeJava8() {ListStudent studentList initData();for (Student student : studentList) {if (student ! null) {if (student.getAge() 18) {Integer score student.getScore();if (score ! null score 80) {System.out.println(入选 student.getName());}}}} }Test public void useJava8() {ListStudent studentList initData();for (Student student : studentList) {OptionalStudent studentOptional Optional.of(student);Integer score studentOptional.filter(s - s.getAge() 18).map(Student::getScore).orElse(0);if (score 80) {System.out.println(入选 student.getName());}} }用法例子二 public String test0(AlarmAllParmeter alarmAllParmeter) {String errorResult ;if (null ! alarmAllParmeter) {Integer alarmId alarmAllParmeter.getAlarmEventInputId();if (null ! alarmId) {AlarmEventInput alarmEventInput alarmEventInputService.get(alarmId);if (null ! alarmEventInput) {String alarmName alarmEventInput.getAlarmName();int alarmType alarmEventInput.getAlarmType();return String.valueOf(alarmType) - alarmName;} else {return errorResult;}} else {return errorResult;}} else {return errorResult;}}// 改进方案一public String test1(AlarmAllParmeter alarmAllParmeter){String errorResult ;OptionalAlarmAllParmeter op Optional.ofNullable(alarmAllParmeter);if(op.isPresent()){Integer alarmId op.get().getAlarmEventInputId();OptionalInteger op1 Optional.ofNullable(alarmId);if(op1.isPresent()){AlarmEventInput alarmEventInput alarmEventInputService.get(op1.get());OptionalAlarmEventInput op2 Optional.ofNullable(alarmEventInput);if (op2.isPresent()) {String alarmName alarmEventInput.getAlarmName();int alarmType alarmEventInput.getAlarmType();return String.valueOf(alarmType) - alarmName;} else {return errorResult;}}else {return errorResult;}}else {return errorResult;}}// 改进方案二 public String test2(AlarmAllParmeter alarmAllParmeter){return Optional.ofNullable(alarmAllParmeter).map(a - a.getAlarmEventInputId()).map(a - alarmEventInputService.get(a)).map(a - String.valueOf(a.getAlarmType())-a.getAlarmName()).orElse();}④ 常用Stream流 stream 中间操作 // filter ListPerson result list.stream().filter(Person::isStudent).collect(toList());// distinct ListPerson result list.stream().distinct().collect(toList());// limit ListPerson result list.stream().limit(3).collect(toList());// skip ListPerson result list.stream().skip(3).collect(toList());// map ListString result list.stream().map(Person::getName).collect(toList());stream 终端操作 // anyMatch boolean result list.stream().anyMatch(Person::isStudent);// allMatch boolean result list.stream().allMatch(Person::isStudent);// noneMatch boolean result list.stream().noneMatch(Person::isStudent);// findAny OptionalPerson person list.stream().findAny();// findFirst OptionalPerson person list.stream().findFirst();Java 8中的Future和CompletableFuture Future 用法demo public class FutureExample {public static void main(String[] args) throws ExecutionException, InterruptedException {// 创建一个线程池ExecutorService executor Executors.newSingleThreadExecutor();// 提交一个Callable任务到线程池返回一个Future对象FutureString future executor.submit(new CallableString() {Overridepublic String call() throws Exception {Thread.sleep(2000); // 模拟耗时操作return Hello from Future!;}});// 主线程可以继续执行其他任务不被阻塞System.out.println(Main thread is doing other tasks...);// 当需要获取结果时调用Future的get方法该方法会阻塞直到结果准备好String result future.get();System.out.println(result);// 关闭线程池executor.shutdown();} }CompletableFuture 用法demo public class CompletableFutureExample {public static void main(String[] args) throws ExecutionException, InterruptedException {// 创建一个CompletableFuture对象并提供一个异步计算的任务CompletableFutureString future CompletableFuture.supplyAsync(() - {try {Thread.sleep(2000); // 模拟耗时操作} catch (InterruptedException e) {Thread.currentThread().interrupt();}return Hello from CompletableFuture!;});// 使用thenApply方法进行链式处理将上一步的结果转换为新的结果CompletableFutureInteger lengthFuture future.thenApply(result - result.length());// 使用thenAccept方法处理完成后的结果不返回任何值lengthFuture.thenAccept(length - System.out.println(Length: length));// 等待所有任务完成CompletableFuture.allOf(future, lengthFuture).join();// 或者直接获取结果这会阻塞直到结果准备好// int length lengthFuture.get();// System.out.println(Length: length);} }
http://www.w-s-a.com/news/311284/

相关文章:

  • 佛山网页网站设计线上怎么做推广和宣传
  • 多个域名绑定同一个网站案例
  • 建设网站都需要准备什么代理加盟微信网站建设
  • 网站备案没有了wordpress 添加按钮
  • 湖南建设银行宣传部网站福田蒙派克空调滤芯安装位置图
  • wap网站搜索wordpress工作室模板
  • 青岛金融网站建设如何提交网站地图
  • 制作简单门户网站步骤网站建设论文的摘要
  • 可以直接进入网站的正能量照片学做静态网站
  • 织梦做社交网站合适吗网站的市场如何制作
  • 阳曲网站建设价格多少四川佳和建设工程网站
  • 免费注册店铺位置sem seo什么意思
  • 建筑网站搜图电子商务网站建设渠道
  • 学校网站内容四川手机网站开发
  • 网站制作公司违法商业网站运营成本
  • 显示佣金的网站是怎么做的广告设计主要做哪些
  • 做阿里网站的分录济南seo网站排名关键词优化
  • 北京建设银行纪念钞预定官方网站wordpress中文优化版
  • 宝安做棋牌网站建设找哪家效益快创意设计师个人网站
  • 做线上网站需要多少钱系统开发板价格
  • 建筑企业登录哪个网站wordpress feed地址
  • 网站建设流程百科提升seo搜索排名
  • 杭州网站建设 巴零做销售怎么和客户聊天
  • 北京自己怎样做网站wordpress oauth2插件
  • 上海800做网站wordpress建站的好处
  • 婚纱摄影网站设计模板如何做好网站内容
  • cdn网站加速招商计划书模板ppt
  • 我在某网站网站做代理开发小程序外包
  • 设计网站国外商城网站的建设费用
  • 网站开发工作需要什么专业学做网站游戏教程