自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 【Maven】生命周期与插件机制

Maven 的生命周期Maven 的生命周期本质是项目构建的生命周期,比如在迭代过程中我们需要清理项目环境、编译、测试、打包及部署。由于工作环境等原因,每个人的构建工作方式不同,有的以手工方式逐行命令执行,有的写了自动化脚本执行,这些方式不可重用,经常换个项目就需要从头再来。Maven 的生命周期的初衷就是对这些项目的构建过程进行抽象和统一。Maven 总结提供了高度完善的生命周期:清除(clean)、初始化(initialize)、编译(compile)、测试(test)、打包(package)、部署

2021-10-26 21:19:43 263

原创 【Calcite】Apache Calcite 框架初探及概念详解

1. 简介Calcite 是什么?如果用一句话形容 Calcite,Calcite 是一个用于优化异构数据源的查询处理的基础框架。最近十几年来,出现了很多专门的数据处理引擎。例如列式存储 (HBase)、流处理引擎 (Flink)、文档搜索引擎 (Elasticsearch) 等等。这些引擎在各自针对的领域都有独特的优势,在现有复杂的业务场景下,我们很难只采用当中的某一个而舍弃其他的数据引擎。当引擎发展到一定成熟阶段,为了减少用户的学习成本,大多引擎都会考虑引入 SQL 支持,但如何避免重复造轮子又成了

2021-10-18 19:44:30 7439 10

原创 Flink 源码笔记03—StreamGraph到JobGraph

文章目录简介入口函数traverseStreamGraphAndGenerateHashesgenerateDeterministicHashgenerateUserSpecifiedHashsetChainingisChainable简介JobGraph 可以认为是 StreamGraph 的优化图,它将一些符合特定条件的 operators 合并成一个 operator chain,以减少数据在节点之间序列化/反序列化以及网络通信带来的资源消耗。入口函数与 StreamGraph 的生成类似,调

2021-10-13 15:14:08 580

原创 Flink 源码笔记02—从DataStream生成StreamGraph

StreanGraph是一个 DAG(以邻接表的形式存储),存储了整个流的拓扑结构信息,由一系列 StreamEdge 和 StreamNode 组成。调用 StreamExecutionEnvironment.getStreamGraph() 即可以生成 StreamGraph。StreamExecutionEnvironment.getStreamGraph() 默认会清除 StreamExecutionEnvironment 中保存的 transformations,后续就无法调用 StreamE

2021-10-11 12:19:12 145

原创 Flink 源码笔记01—DataStream 和 Transformation

文章目录DataStreamTransformationStreamOperatorFunctionTransformation ChainfromElementsfromCollectionaddSource创建 DataStreamSourceflatMapkeyBysumprintDataStreamA DataStream represents a stream of elements of the same type. A DataStream can be transformed into

2021-10-11 12:17:26 234

原创 SpringBoot 学习笔记02—常用注解和自动装配

1. Spring 常用注解1.1 自动装配1.1.1 @ConfigurationSpring 3.0之后开始支持了一种更优的配置方式:基于 Java 类的配置方式。通过增加 @Configuration 注解表明这是一个配置类,其底层为 @Component(即该类的bean对象也会被Spring容器接管)。proxybeanMethods 属性作用:指定被@Bean注解修饰的方法是否被代理,true表示该方法被代理(底层cglib,即该方法不能为private、final修饰),每次对该方法进

2021-04-21 18:51:17 185

原创 详解ThreadLocal原理及内存泄漏

1. ThreadLocal作用ThreadLocal的作用是使得每个线程都能拥有各自独立的对象副本,假设多个线程拥有同一个实例,ThreadLocal<T>类型的变量在每个线程中都有一个副本,从而为变量提供了线程间隔离的作用。2. ThreadLocal实例public class ThreadLocalDemo implements Runnable{ private static ThreadLocal<People> local = new ThreadLoc

2021-03-03 00:41:56 278 3

原创 Java注解实现原理笔记

1.先验知识阅读本文需要先了解以下知识:如何编写Java注解Java反射的基本使用Java动态代理Class文件格式2.注解的字节码原理根据JAVA虚拟机规范标准(JAVA SE 8),注解其实是class文件的“属性”(变长字节数组),根据不同的场景,有不同的字节码格式表示,具体可以分为:since1.5RuntimeVisibleAnnotations:运行时可见注解RuntimeInvisibleAnnotations:运行时不可见注解RuntimeVisibleParam

2021-02-24 17:09:14 378

原创 SpringBoot 学习笔记01— Spring 基础入门

1. Spring简介一句话概括Spring,Spring是一个开源的、轻量的**控制反转(IOC)和面向切面编程(AOP)**的框架。1.1 Spring、SpringMVC、Spring Boot和Spring Cloud的区别SpringMVC是在Spring基础之上结合了MVC三层架构的框架,使用DispatchServlet和视图解析器做到了更方便的视图跳转和控制器调度处理,主要负责处理WEB应用开发。SpringMVC是Spring的一个子模块。SpringBoot则使用了约定大于配置的

2021-02-23 17:33:31 97 2

原创 从递归的异同分析二叉树先序、中序、后序遍历共同流程并实现非递归方式的三种遍历。

本文主要从递归的遍历原理分析遍历的流程以及三种遍历方式的相同不同之处,并依此写出非递归的共同流程,在此基础上实现非递归的三种遍历方式。首先,给出树类的定义:public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) {

2017-08-07 00:01:32 562

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除