ToB企服应用市场:ToB评测及商务社交产业平台

标题: 空安全编程的典范:Java 8中的安全应用指南 [打印本页]

作者: 慢吞云雾缓吐愁    时间: 2024-7-17 00:50
标题: 空安全编程的典范:Java 8中的安全应用指南


  
一、Base64 编码解码

1.1 基本的编码和解码

  1. public static void main(String[] args) {
  2.         // 原始字符串
  3.         String originalInput = "Hello World!";
  4.         // 编码为Base64
  5.         String encodedString = Base64.getEncoder().encodeToString(originalInput.getBytes());
  6.         System.out.println("Encoded string: " + encodedString);
  7.         // 解码Base64
  8.         byte[] decodedBytes = Base64.getDecoder().decode(encodedString);
  9.         String decodedString = new String(decodedBytes);
  10.         System.out.println("Decoded string: " + decodedString);
  11.     }
  12. // 输出
  13. Encoded string: SGVsbG8gV29ybGQh
  14. Decoded string: Hello World!
复制代码
1.2 URL 和文件名安全的编码解码器

  1. public static void main(String[] args) throws UnsupportedEncodingException {
  2.         // 原始字符串
  3.         String originalInput = "Hello World!";
  4.         // URL 和文件名安全的 Base64 编码
  5.         String encodedString = Base64.getUrlEncoder().encodeToString(originalInput.getBytes("utf-8"));
  6.         System.out.println("Encoded string (URL safe): " + encodedString);
  7.         // 解码 URL 和文件名安全的 Base64
  8.         byte[] decodedBytes = Base64.getUrlDecoder().decode(encodedString);
  9.         String decodedString = new String(decodedBytes, "utf-8");
  10.         System.out.println("Decoded string: " + decodedString);
  11.     }
  12. // 输出
  13. Encoded string (URL safe): SGVsbG8gV29ybGQh
  14. Decoded string: Hello World!
复制代码
1.3 MIME Base64编码和解码

   MIME Base64编码与平凡的Base64编码在行尾添加换行符,以便在电子邮件等MIME(Multipurpose Internet Mail Extensions)环境中进行传输。
  
  1. public static void main(String[] args) throws UnsupportedEncodingException {
  2.         // 原始字符串
  3.         String originalInput = "Hello World!";
  4.         // MIME Base64 编码
  5.         String encodedString = Base64.getMimeEncoder().encodeToString(originalInput.getBytes("utf-8"));
  6.         System.out.println("Encoded string (MIME):" + encodedString);
  7.         // 解码 MIME Base64
  8.         byte[] decodedBytes = Base64.getMimeDecoder().decode(encodedString);
  9.         String decodedString = new String(decodedBytes, "utf-8");
  10.         System.out.println("Decoded string: " + decodedString);
  11.     }
  12. // 输出
  13. Encoded string (MIME):SGVsbG8gV29ybGQh
  14. Decoded string: Hello World!
复制代码
二、Optional类

   java.util.Optional 类是用来处理处罚可能为null的值的容器。提供了一种优雅的方式来制止 NullPointerException,并且可以更清晰地表达某个值可能不存在的情况。
  
  1. public static void main(String[] args) {
  2.         // 创建一个包含非空值的 Optional 对象
  3.         Optional<String> optional1 = Optional.of("Hello");
  4.         System.out.println("Optional 1 value: " + optional1.get());
  5.         // 创建一个可能为 null 的 Optional 对象
  6.         String nullableValue = null;
  7.         Optional<String> optional2 = Optional.ofNullable(nullableValue);
  8.         System.out.println("Optional 2 is present? " + optional2.isPresent());
  9.         // 获取 Optional 对象中的值
  10.         String value = optional1.get();
  11.         System.out.println("Value: " + value);
  12.         // 检查 Optional 对象中是否有值
  13.         if (optional1.isPresent()) {
  14.             System.out.println("Optional contains value.");
  15.         } else {
  16.             System.out.println("Optional is empty.");
  17.         }
  18.         // 使用 orElse 提供默认值
  19.         String result1 = optional2.orElse("Default Value");
  20.         System.out.println("Result 1: " + result1);
  21.         // 使用 orElseGet 提供默认值
  22.         String result2 = optional2.orElseGet(() -> {
  23.             // 处理逻辑,返回默认值
  24.             return "Default Value from Supplier";
  25.         });
  26.         System.out.println("Result 2: " + result2);
  27.         // 如果 Optional 对象中有值,则执行操作
  28.         optional1.ifPresent(val -> System.out.println("Value is present: " + val));
  29.         // 过滤值
  30.         Optional<String> filteredOptional = optional1.filter(val -> val.startsWith("H"));
  31.         System.out.println("Filtered Optional value: " + filteredOptional.orElse("Not found"));
  32.         // 映射值
  33.         Optional<String> transformedOptional = optional1.map(val -> val.toUpperCase());
  34.         System.out.println("Transformed Optional value: " + transformedOptional.orElse("No value"));
  35.         // 抛出异常
  36.         try {
  37.             value = optional2.orElseThrow(() -> new IllegalArgumentException("Value is required."));
  38.             System.out.println("Value: " + value);
  39.         } catch (IllegalArgumentException e) {
  40.             System.out.println("Exception: " + e.getMessage());
  41.         }
  42.     }
  43. // 输出
  44. Optional 1 value: Hello
  45. Optional 2 is present? false
  46. Value: Hello
  47. Optional contains value.
  48. Result 1: Default Value
  49. Result 2: Default Value from Supplier
  50. Value is present: Hello
  51. Filtered Optional value: Hello
  52. Transformed Optional value: HELLO
  53. Exception: Value is required.
复制代码
三、Nashorn JavaScript

   Java 8 引入了 Nashorn 作为新的 JavaScript 引擎,用于更换旧版的 Rhino 引擎,可以在 Java 应用程序中执行 JavaScript 代码。Nashorn 通过优化和与 Java 的本地集成提供了更好的性能。
  
  1. public static void main(String[] args) throws Exception {
  2.     // 创建 Nashorn 脚本引擎
  3.     ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
  4.    // 执行 JavaScript 代码
  5.     engine.eval("print('Hello Nashorn!')");
  6. }
复制代码
  1. public static void main(String[] args) throws Exception {
  2.    ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
  3.    // 将 Java 变量传递给 JavaScript
  4.    engine.put("name", "Alice");
  5.    engine.eval("print('Hello, ' + name + '!')");
  6. }
复制代码
  1. // Java 类
  2. public class Person {
  3.     public String getName() {
  4.         return "Alice";
  5.     }
  6. }
  7. // JavaScript 代码
  8. engine.eval("var person = new Person(); print(person.getName());");
复制代码
  1. $ jjs script.js
复制代码
懒惰也是天生的,勤奋需本身努力,一放松就懒了

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4