- 博客(28)
- 收藏
- 关注
原创 Scala篇—implicit隐式入门
Scala篇—implicit隐式入门一、implicit概述1、简介2、为什么需要implicit3、隐式转换机制4、隐式转换规则5、使用implicit须知二、Demo示例1、隐式方法2、隐式类3、隐式参数4、隐式对象一、implicit概述1、简介scala在2.10版本中引入了implicit关键字,包括两个方面的内容:隐式参数和隐式转换。隐式参数:把一些变量声明为隐式参数,把一些方法的参数声明为可以支持隐式参数的,当调用方法时,如果没有传递该参数,那么可以去使用隐式参数。隐式转
2021-08-03 14:34:43
714
原创 《微服务架构设计模式》笔记3—微服务架构中的进程间通信
《微服务架构设计模式》笔记3—微服务架构中的进程间通信三、微服务架构中的进程间通信1、本章导读2、概述1、交互方式2、在微服务架构中定义API3、API的演化3、基于同步远程过程调用模式的通信1、使用REST2、使用gRPC3、使用断路器模式处理局部故障4、服务发现机制1、应用层服务发现模式:2、平台层服务发现模式5、基于异步消息模式的通信1、消息传递2、使用消息机制实现交互方式3、基于消息机制的API规范4、消息代理5、处理并发和消息顺序6、处理重复消息7、事务性消息8、消息相关的类库和框架6、使用异步消
2021-06-29 17:22:07
298
5
原创 Lua基础学习笔记
Lua基础学习笔记一、概述二、基本语法1、交互式编程2、脚本式编程3、注释4、标识符5、关键词6、全局变量7、变量与赋值8、索引9、循环10、流程控制11、函数12、运算符三、数据类型1、nil (空)2、boolean(布尔)3、number(数字)4、string(字符串)5、table(表)6、function(函数)7、thread(线程)8、userdata(自定义类型)四、字符串1、基础表示2、转义字符3、字符串操作五、数组1、一维数组2、多维数组六、迭代器1、泛型 for 迭代器2、无状态的迭
2021-06-23 17:29:31
865
原创 《微服务架构设计模式》笔记2—服务拆分策略
《微服务架构设计模式》笔记2—服务拆分策略二、服务拆分策略1、软件架构2、架构的风格1、分层式架构风格2、六边形架构:3、微服务架构是一种架构风格1、什么是服务2、什么是松耦合3、共享类库的角色4、服务大小并不重要4、为应用程序定义微服务架构5、识别操作系统1、创建抽象领域模型2、定义系统操作3、根据业务能力进行服务拆分4、根据子域进行服务拆分5、拆分的指导原则6、拆分单体应用为服务的难点7、定义服务API6、本章小结二、服务拆分策略1、软件架构软件架构:软件的架构是一种抽象的结构,它由软件的各个组
2021-06-18 17:25:09
578
原创 《微服务架构设计模式》笔记1—概述、逃离单体地狱
《微服务架构设计模式》笔记1—概述、逃离单体地狱一、概述1、章节总述2、程序架构设计基础3、本书目的二、逃离单体地狱1、单体架构特点2、单体地狱3、微服务架构1、扩展立方体2、模块化3、独立数据库4、FTGO的微服务架构5、微服务架构和SOA的异同6、微服务架构好处7、微服务架构弊端8、微服务模式选择1、模式和模式语言2、模式结构3、模式语言概述4、主要模式介绍9、微服务之上:流程和组织10、本章小结一、概述1、章节总述第一章:单体应用程序的弊端微服务架构模式概述第二章:软件架构
2021-06-17 15:11:33
122
原创 工具篇—《MD文档辅助工具,PicGo使用》
MD文档辅助工具,PicGo使用一、概念二、配置教程1、 安装PicGo2、Typora配置3、常见错误1、failed to fetch2、上传失败三、设置GitHub图床四、设置PicGo的GitHub图床一、概念众所周知,我们习惯于使用Markdown来写一些优秀的博文或笔记,但其弊端也很明显,文档中插入图片都是保存在本地,如果我们挪动了文档,那么很容易造成图片打不开的问题。现解决方案就是利用typora+picGo实现图片的一键上传,完美解决上述问题。二、配置教程1、 安装PicGo
2021-06-15 09:38:40
407
2
原创 多线程篇1—《多线程基础、线程池、线程通信》
参考资料: 线程池之ThreadPoolExecutor概述一文读懂多线程java3y一、基础概念1、进程在windows下打开任务管理器,可以发现我们在操作系统上运行的程序都是进程:进程的定义:进程是程序的一次运行。进程是具有独立功能的程序在一个数据集合上运行的过程。进程是系统进行资源分配和调度的独立单位。每个进程都有自己的内存空间和系统资源。2、线程为使程序能并发进行,系统必须进行一系列操作:创建进程:系统在创建一个进程时,必须为它分配其所必须
2021-05-11 17:53:18
169
原创 设计模式篇—《行为型设计模式》
行为型模式1、策略模式简介:适用场景:结构:代码实现:2、观察者模式简介:适用场景:结构:代码实现:3、模板方法模式简介:适用场景:结构:代码实现:4、迭代器模式简介:适用场景:结构:代码实现:5、责任链模式简介:适用场景:结构:代码实现:6、命令模式简介:适用场景:结构:代码实现:7、备忘录模式简介:适用场景:结构:8、状态模式简介:适用场景:结构:9、访问模式简介:适用场景:结构:代码实现:10、中介者模式简介:适用场景:结构:代码实现:11、解释器模式简介:适用场景:结构:代码实现:1、策略模式简
2021-04-24 13:06:58
214
原创 设计模式篇—《结构型设计模式》
结构型设计模式1、代理模式简介:适用场景:结构:代码实现:2、适配器设计模式简介:适用场景:结构:代码实现:3、装饰器模式简介:适用场景:结构:代码实现:4、外观模式简介:适用场景:结构:代码实现:5、桥接模式简介:适用场景:结构:代码实现:6、组合模式简介:适用场景:结构:代码实现:7、享元模式简介:适用场景:结构:代码实现:结构型设计模式涉及如何组装类和对象以获得更大的结构。结构型类模式采用继承机制来组合接口或实现。1、代理模式简介:代理模式(Proxy Pattern)使用一个类代表另
2021-04-12 18:20:03
170
原创 设计模式篇 —《创建型设计模式》
《创建型设计模式》1、单例模式简介:适用场景:结构:代码实现:2、工厂方法模式简介:适用场景:结构:代码实现:3、抽象工厂模式简介:结构:适用场景:代码实现:4、建造者模式简介:适用场景:结构:代码实现:5、原型模式简介:适用场景:结构:代码实现:创建型模式抽象了实例化过程,他们帮助一个系统独立于如何创建、组合和表示它的那些对象。一个类创建型模式使用继承改变被实例化的类。一个对象创建型模式将实例化委托给另一个对象。1、单例模式简介:单例模式:单例模式确保某一个类只有一个实例,
2021-04-11 13:47:35
131
原创 设计模式篇—《设计模式概述》
《设计模式概述》1、什么是设计模式2、学习设计模式的意义3、设计模式四要素4、设计模式分类1、什么是设计模式软件设计模式(Software Design Pattern),又称设计模式。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。是解决特定问题的一系列套路。是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。其目的是为了提高代码的可重用性、代码的可读性和代码的可靠性。它描述了在软件设计过程中的一些不断重复发生的问题
2021-04-11 13:44:30
141
原创 SpringBoot篇—SpringBoot启动流程及源码分析
一、SpringBoot启动结构图 上图为SpringBoot启动结构图,我们发现启动流程主要分为三个部分:第一部分进行SpringApplication的初始化模块:主要配置一些基本的环境变量、资源、构造器、监听器,第二部分实现了应用具体的启动方案:包括启动流程的监听模块、加载配置环境模块、及核心的创建上下文环境模块,第三部分是自动化配置模块:该模块作为springboot自动配置核心启动流程图分析1、SpringApplication开始启动2、new Sp
2021-04-08 17:27:53
181
原创 数据结构篇—八大数据结构及代码实现
八大数据结构及实现一、简述二、基本的概念三、Array1、介绍2、模拟实现四、Stack1、介绍2、模拟实现五、Queue1、介绍2、模拟实现六、Linked List1、介绍2、模拟实现七、Binary Tree1、介绍2、**模拟实现**八、Heap1、介绍2、堆的应用:3、堆的实现:4、根据数组构建大顶堆5、大顶堆的实现6、小顶堆的实现九、Hashing1、介绍2、实现HashMap十、Graph一、简述 在编程过程中,经常会遇到一个问题就是,性能瓶颈,很多时候考虑的都是怎么去做横向扩展,但偏
2021-04-04 19:12:57
1563
原创 DataX篇—Oracle支持Update模式
参考资料:https://blog.csdn.net/qq_27915891/article/details/107746629Oracle支持Update模式前言源码下载源码目录结构源码分析源码修改测试应用前言最近在做离线网络环境下数据同步,根据我们自己的业务改造阿里的开源框架DataX,发现其中遗留问题挺多的,其中就包括oracle的update模式它是不支持的,在我们beta1.0版本中,我们采用的是preSQL和postSQL来曲线Update数据的,这样虽然解决了问题,但是配置相对繁琐,由此
2021-04-04 09:57:56
3087
3
原创 微服务框架之Dubbo(SpringBoot+Dubbo+Zookeeper)
SpringBoot+Dubbo+Zookeeper一、名词解释1、RPC2、SOA二、dubbo1、概念2、dubbo连接方式3、Dubbo 架构流程图三、Zookeeper1、介绍:2、Zookeeper 在Linux系统的安装3、服务启动四、Demo1、搭建环境ZooKeeper:dubbo-admin:2、搭建项目1、父项目 dubbo-demo-parent1、项目结构2、pom文件2、服务接口 demo-service1、项目结构2、pom文件3、实体类User4、服务UserService5、
2021-04-03 23:49:24
211
原创 JVM篇3 —《GC垃圾回收机制》
GC垃圾回收机制一、GC概述二、判断对象是否存活1、引用计数法思路:优点:缺点:code:2、可达性分析法1、可达性分析:2、第一次标记 & 筛选finalize()3、第二次标记 & 筛选3、四大引用类型1、强引用2、软引用3、弱引用4、虚引用4、方法区的回收三、垃圾收集算法1、标记清除算法**原理:****缺点:**2、标记复制算法原理:缺点:3、标记整理算法原理:缺点:4、三色标记跟读写屏障1、浮动垃圾2、漏标3、读写屏障总结:5、复制算法原理:缺点:6、分代收集四、GC流程1、年轻代
2021-03-31 18:31:43
818
原创 JVM篇2 —《JVM内存模型》
参考大佬资料: https://juejin.cn/post/6933080274594955271#heading-15JVM内存模型1、内存模型java内存分配运行时常量池2、JVM内存区域划分3、线程共享区域1、堆区2、元空间方法区元空间:总结:4、直接内存区域直接内存5、线程私有区域程序计数器虚拟机栈动态链接局部变量表操作数栈本地方法栈6、堆、栈、方法区交互1、内存模型每一个线程有一个工作内存和主存独立。工作内存存放主存中变量的值的拷贝。当数据从主内存复制到工作存储时,必须出现两
2021-03-28 12:19:27
97
1
原创 JVM篇1 —《启动流程、基本结构、类加载器》
一、JVM启动流程1、执行命令,java -jar 启动2、装载配置,根据当前路径和系统版本寻找jvm.cmg3、根据配置寻找JVM.dll4、初始化JVM获得JNIEnv接口,JNIEnv为JVM接口,findClass等操作通过它实现5、找到main方法并运行二、JVM基本结构1、通过类加载器加载子系统(双亲委托机制)2、加载进内存空间 内存空间有方法区、java heap、java stack、native method stack 垃圾收集器3、其他 通过PC寄存器
2021-03-27 10:38:12
358
原创 数据库篇—Redis
一、概述Redis: Remote Dictionary Server,远程数据服务。 C语言编写,典型nosql服务。 Redis 是速度非常快的非关系型(NoSQL)内存键值数据库。 是一个key-value存储系统,支持:String、list、set、zset、hash. Redis 支持很多特性,例如将内存中的数据持久化到硬盘中,使用复制来扩展读性能,使用分片来扩展写性能。二、数据类型数据类型可以存储的值操作STRING字符串、整数或者浮点数对整个字符串
2021-03-24 18:35:22
110
原创 计算机网络篇—《自顶向下方法》学习笔记
前言1、眼过千遍,不如手过一遍2、内容太多,梳理理解记忆3、菜鸟初学,写笔记的方式容易坚持下来,并且不易分心。于是有了这篇计算机网络学习笔记,如有问题,欢迎指正。一、概述1、因特网因特网是一个世界范围的计算机网络,即它是一个互联了全世界的计算设备的网络。因特网术语中,计算机网络又称为主机(host)或端系统(end system)。因特网服务供应商—internet Service Provider (ISP);2、协议协议,网络协议的简称,是通信计算机双方必须共同遵从的一组约定。
2021-03-23 19:57:19
2450
原创 算法篇—八大排序
文章目录前言一、冒泡排序思路时间复杂度code二、选择排序思路时间复杂度code三、插入排序思路时间复杂度code四、快速排序思路时间复杂度code五、归并排序(二路归并)思路时间复杂度code六、希尔排序(缩小增量排序)思路时间复杂度code七、堆排序思路时间复杂度code八、桶(基数)排序思路时间复杂度code总结前言基础算法之排序算法及其思路,本文主要是做个记录。一、冒泡排序思路俩俩交换,大的放在后面,第一次排序后最大值已在数组末尾。因为每次都需要俩俩交换,需要n-1趟排序,比如10个数
2021-03-23 19:16:52
92
原创 DataX篇—分布式任务调度框架xxl-job学习
参考资料: https://juejin.cn/post/6938034809197297694一、作业类型xxl-job支持七种作业类型: Bean、GLUE(Java)、GLUE(Shell)、GLUE(Python)、GLUE(PHP)、GLUE(Nodejs)、GLUE(PowerShell)。其中,GLUE类型作业都是在admin管理端编辑业务代码,而Bean类型作业是将用户业务代码逻辑集成到xxl-job进行调度,源码位于用户项目中,而非xxl-job的admin模块。xxl-
2021-03-22 19:26:44
2568
3
原创 DataX篇—离线同步作业分析及JSON构建
DataX系列[第一章 DataX篇—阿里开源ETL同步工具](https://blog.csdn.net/qq_33451695/article/details/115048824?spm=1001.2014.3001.5501).离线同步作业分析及JSON构建DataX系列前言一、思路二、增量同步问题触发器双向同步循环问题二、插件扩展前言 因业务需要,存在数据源之间网络环境不通的情况,无法直连数据源,我们可以利用DataX实现现有业务系统在分离网络上的数据增量同步提示:以下是本篇
2021-03-21 15:35:43
559
原创 DataX篇—阿里开源ETL同步工具
DataX篇—阿里开源ETL同步工具DataX插件简介DataX架构核心模块介绍DataX 执行流程编程接口模板:dataX-web 可视化管理工具DataX-web架构图Data-web 功能说明日志分析DataX插件简介DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据
2021-03-21 14:54:43
2125
1
转载 Maven 错误找不到符号 (IDEA版本)
转自:原文:https://blog.csdn.net/u012062455/article/details/52347099作者:我是李超人错误原因:可能项目编码格式不统一。可能项目编码使用的JDK版本不统一。pom依赖问题,这种依赖可能是没有添加包的依赖,如果是聚合项目可能是没有添加其他模块的依赖,或者是添加了其它模块的依赖,但是没有将依赖的模块打包到本地仓库等。解决方...
2019-02-16 12:58:28
4072
原创 关于IDEA中web项目中web.xml配置文件爆红的解决办法
关于IDEA中web项目中web.xml配置文件爆红的解决办法web.xml文件爆红错误提示:报错原因:解决方法:OK,搞定!!!web.xml文件爆红错误提示:报错原因:出现这种情况的大多数原因是使用者没有按照规范创建web.xml,导致配置文件加载路径没有配置完全。换句话说也就是facets中Deployment Desciptors(项目部署)和Web Resouce Dir...
2019-01-28 23:22:01
19621
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人