Java教程

补充阅读

本文主要是介绍补充阅读,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

02. 字符串转Interger

  • Integer.valueOf( "123") 将字符串转成Integer类型
  • Integer.parseInt("123") 将字符串转成有符号的int类型

03. 富函数(Rich Functions)

“富函数”是DataStream API提供的一个函数类的接口,所有Flink函数类都有其Rich版本。它与常规函数的不同在于,可以获取运行环境的上下文,并拥有一些生命周期方法,所以可以实现更复杂的功能。

  • RichMapFunction
  • RichFlatMapFunction
  • RichFilterFunction

Rich Function有一个生命周期的概念。典型的生命周期方法有:

  • open()方法是rich function的初始化方法,当一个算子例如map或者filter被调用之前open()会被调用。
  • close()方法是生命周期中的最后一个调用的方法,做一些清理工作。
  • getRuntimeContext()方法提供了函数的RuntimeContext的一些信息,例如函数执行的并行度,任务的名字,以及state状态

富函数普遍拥有方法:

  • open(Configuration):void
  • close():void
  • setRuntimeContext(RuntimeContext):void
  • getRuntimeContext():RuntimeContext
  • 私有静态变量: runtimeContext:RuntimeContext

04. 正则字符串切割("\W+" 与"\s+"的区别)

  • \W+ :是匹配除了字母、数字、下划线和汉字之外的任意字符
  • \s+ : 是匹配空格、制表符(tap键)

05. 生成随机序列号(UUID)

  • 工具类:
    • UUID.randomUUID().toString().substring(0, 18)

06. 生成随机数 Random的使用

image-20210907200229316

  • 生成[0,2]的整数

    • Random r = new Randow();

      r.nextInt(3); //[0, 3)的整数,即:0,1,2

07. 系统当前毫秒值

  • System.currentTimeMillis()

08. 线程休眠

  • TimeUnit.MILLISECONDS.sleep(50); //线程休眠50毫秒

  • TimeUnit.SECONDS.sleep(1); //线程休眠1秒

09. 序列化和反序列化

  • 序列化是将对象序列化成二进制数据保存到本地或者通过网络传输给其它节点
  • 反序列化是将二进制的数据反序列化为对象
  • 利用序列化和反序列化可以在网络中传输对象。
  • 对象的本质其实也就是内存中一块存储区域的数据。

10. scala与Java元组元素的个数

  • Scala 元组元素个数最多22个

  • java元组元素个数最多25个

11. Java中获取元祖元素

  • 方式一: .getField(0)
  • 方式二: .f0

12. Java中时间戳转指定日期格式

  • 先定义转换格式

    • FastDateFormat format = FastDateFormat.getInstance("yyyy-MM-dd HH:mm:ss:SSS")
  • 转换

    • System.out.println(format.format(123))
  • image-20210908221112455

  • 结果:image-20210908221136512

  • Spark
    • 1、
    • 2、
    • 3、
    • 4、
    • 5、
  • Flink
    • 1、执行环境-env
    • 2、数据源-source
    • 3、数据转换-transformation
    • 4、输出终端-sink
    • 5、触发执行-execute
      • (批处理有sink就加上,没有不加上)
      • (流处理必须加上execute才能触发执行程序)

14. 切割字符串时的细节点

  • 代码
    • image-20210909223449050
  • 结果:
    • image-20210909223500663
  • 结论:
    • 如果前面有被切了,那么得到的字符串数组第一个必有个空字符串
    • 注意结尾也切了,但结尾却没有.

15. TimeZone 时区中没有Asia/Beijing, 只有Asia/Shanghai 和 Asia/Chongqing

image-20210912203432727

16. 字符串格式化format (本质:字符串填空)

  Random random = new Random();
  TimeZone timeZone = TimeZone.getTimeZone("Asia/Chongqing");
  Instant instant = Instant.ofEpochMilli(
          System.currentTimeMillis()+ timeZone.getOffset(System.currentTimeMillis())
  );
 System.out.println(instant.toString());
  String ouptut = String.format(
          "{\"ts\": \"%s\",\"user_id\": \"%s\", \"item_id\":\"%s\", \"category_id\": \"%s\"}",
          instant.toString(),
          "user_" + (10000 + random.nextInt(10000)),
          "item_" + (100000 + random.nextInt(100000)),
          "category_" + (200 + random.nextInt(200))
  );
  System.out.println(ouptut);

17. fastjson的使用

  • import com.alibaba.fastjson.JSON;
  • 功能:
    • JavaBean =》 JSON格式字符串
    • JSON格式字符串 =》 JavaBean
  • 用法:
    • JSON.toJSONString(javaBean); //将JavaBean对象转化成JSON格式字符串
      • image-20210914120413255
  @Data
  @NoArgsConstructor
  @AllArgsConstructor
  private static class DataBean {
      private String value;
  }

DataBean data = new DataBean(String.valueOf(i));
JSON.toJSONString(data);
这篇关于补充阅读的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!