自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 普通类使用spring容器管理的bean

这里最重要的是使用ApplicationContext,我们首先要实现ApplicationContextAware接口获取到ApplicationContext。在这里写了一个类实现ApplicationContextAware接口/** * @author matao * @create 2020-08-05 */@Componentpublic class ApplicationContextUtil implements ApplicationContextAware { pri

2020-08-06 20:57:32 433

原创 alibaba的fastjson转为json首字母变小写解决方法

我们经常用fastjson的话 有时候要涉及将实体对象转为json格式,但当用Json.toJsonString()方法时,会默认将属性的首字母后转为小写,但真正有时候我们是不想将首字母变成小写的,针对这个解决办法,就是我们可以用@JSONField()注解比如: @JSONField(name = "DATA") private AEData DATA; //AEData对象 @JSONField(name = "BATCH_ID") private String BAT

2020-05-10 20:36:40 2754

原创 前端传formdata数据 后端接收不到

关于前端传formdata数据 后端接收不到问题//填写的信息提交到数据库 submitFormFriuit = function(){ var form =new FormData(); form.append("fruit_id",$("#fruit_id").val().toString()); form.append("fruit_type",$("#fruit_type").val().toString()); form.append("fruit_name

2020-05-10 20:20:51 10531

原创 Spring之ApplicationContext介绍

ApplicationContext介绍:如果说BeanFactory是Spring的“心脏”,那么ApplicationContext 就是完整的“身躯”了。ApplicationContext由BeanFactory派生而来,提供了更多面向实际应用的功能。在BeanFactory中,很多功能需要以编程的方式实现,而在ApplicationContext中则可以通过配置的方式实现。1. Ap...

2020-01-07 09:10:16 1141

原创 Spring之BeanFactory介绍

BeanFactory介绍:BeanFactory 是一一个类工厂,但和传统的类工厂不同,传统的类工厂仅负责构造-一个或几个类的实例:而BeanFactory 是类的通用工厂,它可以创建并管理各种类的对象。这些可被创建和管理的对象本身没有什么特别之处,仅是一个POJO, Spring称这些被创建和管理的Java对象为Bean。我们知道JavaBean是要满足一-定规范的,如必须提供-一个默认不带...

2019-12-09 19:53:54 556

原创 分布式文件系统——fastDFS安装

安装 1 核心安装1.1安装 FastDFS 依赖1.2解压 FastDFS 核心库1.3进入解压后的目录1.4编译安装1.5创建软连接1.6解压 FastDFS 主程序1.7进入 FastDFS 主程序源码目录1.8修改安装路径1.9编译安装 .1.10FastDFS 安装后资源简介1.10.1 服务脚本1.10.2 配置文件模板1.10.3 内置命令2 tracker 基础配置2.1创建跟踪...

2019-11-27 21:09:51 271

原创 分布式文件存储——FastDFS

FastDFS 一、简介1、架构图2、上传流程:3、下载流程:4、术语简介5、同步机制6、 FastDFS 运行时目录结构6.1、Tracker Server 目录6.2、Storage Server 目录7、 FastDFS 和其他文件存储的简单对比7.1FastDFS 和集中存储方式对比7.2FastDFS 和 mogileFS 对比一、简介FastDFS 是一个开源的轻量级分布式...

2019-11-23 11:34:38 431

原创 Spring中的那些注解和解释

常用注解 @Component@Repository@Service@Controller@RestController@Scope@Value@Autowired@Qualifier@Resource@RequestMapping@GetMapping@PostMapping@ResponseBody@RequestBody@PathVariable@Component描述类型的,代表类...

2019-11-22 20:44:18 264

原创 Spring-4.1.6源码分享

最近学习Spring源码,为了方便学习源码做笔记,特意从GitHub上下载一份,但是GitHub下载源码慢的要死,为了下载源码也是费了九牛二虎之力,为了大家学习,特意将它分享出来,动动小手给个赞哦。如果觉得有需要可以去网盘下载。网址:https://pan.baidu.com/s/1vOlcGalaKwIeOJUBjlK7tA提取码:ajer...

2019-11-20 21:21:01 207

原创 解读Mybatis中的dtd文件并配置config、mapper文件

dtd文件一般可以在哪找到规则定义dtd文件一般可以在哪找到一般我们可以在builder、factory、或者context等地方找到就以Mybatis为例:<!ELEMENT configuration (properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, objectWrapperFacto...

2019-11-20 19:58:34 885

原创 Dubbo面试题总结

1、Dubbo 是什么?Dubbo 是一个分布式、高性能、透明化的 RPC 服务框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和Spring 框架无缝集成。2、 Dubbo 的主要应用场景?1) 透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何 API 侵入。2) 软负载均衡及容错机制,可在内网替代 F5 等硬件负载均衡器,降低成本,减少单点。3...

2019-11-18 21:43:00 641

原创 mysql性能优化之sql

SQL优化方式1、避免全表扫描对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。商业化开发中,强制要求,不能全表扫描。尽量将查询type提升到ref级别之上,必须是index级别之上。const > eq_ref > ref > range > index > ALL2、避免判断null值应尽量避免在 w...

2019-11-16 20:19:55 160

原创 mysql性能优化之索引

1、存储引擎:sql语句:SELECT * from information_schema.ENGINES上图可知道mysql提供了八种存储引擎

2019-11-15 20:46:56 195

原创 弗洛伊德(Floyd)算法

1,.弗洛伊德(Floyd)算法介绍和Dijkstra算法一样,弗洛伊德(Floyd)算法也是一种用于寻找给定的加权图中顶点间最短路径的算法。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名弗洛伊德算法(Floyd)计算图中各个顶点之间的最短路径迪杰斯特拉算法用于计算图中某一个顶点到其他顶点的最短路径。弗洛伊德算法 VS 迪杰斯特拉算法:迪杰斯...

2019-11-09 21:28:13 363

原创 迪杰斯特拉算法详解

迪杰斯特拉(Dijkstra)算法介绍迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个结点到其他结点的最短路径。 它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止。应用场景-最短路径问题看一个应用场景和问题:战争时期,胜利乡有7个村庄(A, B, C, D, E, F, G) ,现在有六个邮差,从G点出发,需要分别把邮件分别送到 A, B...

2019-11-08 17:40:01 1002

原创 KMP算法(字符串匹配)

对于KMP算法来言,我自己感觉文字介绍,方法理解起来相对于代码算是简单的,KMP算法介绍1)KMP是一个解决模式串在文本串是否出现过,如果出现过,最早出现的位置的经典算法2)Knuth-Morris-Pratt 字符串查找算法,简称为 “KMP算法”,常用于在一个文本串S内查找一个模式串P 的出现位置,这个算法由Donald Knuth、Vaughan Pratt、James H. Morr...

2019-11-06 09:35:59 384

原创 查找算法以及代码实现

1.线性查找算法特别简单的算法,就是遍历数组,一一比较,返回坐标代码实现:public static void main(String[] args) { int arr[] = { 1, 9, 11, -1, 34, 89 };// 没有顺序的数组 int index = seqSearch(arr, -11); if(index == -1) { System.out....

2019-11-04 11:12:40 754

原创 链表和双向链表介绍和代码实现

链表(Linked List)链表是有序的列表,但是它在内存中是存储如下小结:1)链表是以节点的方式来存储,是链式存储2)每个节点包含 data 域, next 域:指向下一个节点.3)如图:发现链表的各个节点不一定是连续存储.4)链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定5)链表存储位置和顺序都是不一定的,头结点也不是一定在最前端//定义SingleLinke...

2019-11-02 11:19:35 388

原创 JVM的算法和垃圾收集器

标记整理标记清除复制算法OutOfMemoryError?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1BpcmF0ZXNh,size_16,color_FFFFFF,t_70)StackOverflowError栈满会抛...

2019-11-01 20:17:06 193

原创 kafka保证数据一致性机制

为保证 producer 发送的数据,能可靠的发送到指定的 topic,topic 的每个 partition 收到producer 发送的数据后,都需要向 producer 发送 ack(acknowledgement 确认收到),如果producer 收到 ack,就会进行下一轮的发送,否则重新发送数...

2019-10-30 16:22:46 1681 1

原创 kafka工作流程以及文件存储机制

Kafka 中消息是以** topic** 进行分类的,生产者生产消息,消费者消费消息,都是面向 topic的。topic 是逻辑上的概念,而 partition 是物理上的概念,每个 partition 对应于一个 log 文件,该 log 文件中存储的就是 producer 生产的数据。Producer 生产的数据会被不断追加到该og 文件末端,且每条数据都有自己的 offset。消费者组...

2019-10-29 15:59:04 446

原创 大厂面试题之JVM

JVM结构Java8 JVM内存结构基本结构与之前类似,只是Java8取消了之前的“永久代”,取而代之的是“元空间”——Metaspace,两者本质是一样的。“永久代”使用的是JVM的堆内存,而“元空间”是直接使用的本机物理内存。简单来说就是栈管运行,而堆管存储GC Roots如果判断一个对象可以被回收?引用计数算法维护一个计数器,如果有对该对象的引用,计数器+1,反之-1...

2019-10-28 15:01:40 385

原创 大厂面试关于多线程和高并发阻塞队列问题

阻塞队列概念:当阻塞队列为空时,获取(take)操作是阻塞的;当阻塞队列为满时,添加(put)操作是阻塞的。好处:阻塞队列不用手动控制什么时候该被阻塞,什么时候该被唤醒,简化了操作。体系:Collection→Queue→BlockingQueue→七个阻塞队列实现类。类名作用ArrayBlockingQueue由数组构成的有界阻塞队列LinkedBlocki...

2019-10-27 09:19:41 723

原创 BAT面试题之Collection

集合类不安全问题ListArrayList不是线程安全类,在多线程同时写的情况下,会抛出java.util.ConcurrentModificationException异常。private static void listNotSafe() { List<String> list=new ArrayList<>(); for (int i = 1; ...

2019-10-26 20:45:49 177

原创 多线程和高并发关于Java锁的问题

Java锁公平锁/非公平锁概念:所谓公平锁,就是多个线程按照申请锁的顺序来获取锁,类似排队,先到先得。而非公平锁,则是多个线程抢夺锁,会导致优先级反转或饥饿现象。区别:公平锁在获取锁时先查看此锁维护的等待队列,为空或者当前线程是等待队列的队首,则直接占有锁,否则插入到等待队列,FIFO原则。非公平锁比较粗鲁,上来直接先尝试占有锁,失败则采用公平锁方式。非公平锁的优点是吞吐量比公平锁更大。s...

2019-10-25 20:58:20 449

原创 面试题之JUC

对于JUC方面的面试题,我们首先应该讲一下JMMJMM(Java Memory Model) Java内存模型首先看一下java内存模型图对于JMM 是有以下要求:1.保持原子性2.保持可见性3.有序性对于一些操作,分别对应在下面图/** * */package com.matao.concurrent.atomic;import java.util.concur...

2019-10-24 21:57:54 8128 1

原创 稀疏数组和队列以及代码实现

1.稀疏数组基本介绍当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法是:1)记录数组一共有几行几列,有多少个不同的值2)把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模说明:应用实例1)使用稀疏数组,来保留类似前面的二维数组(棋盘、地图等等)2)把稀疏数组存盘,并且可以从新恢复原来的二维数组数3)整...

2019-10-23 21:06:31 203

原创 常见排序算法原理和实现(二)

5.快速排序快速排序法介绍:快速排序(Quicksort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列示意图:代码实现:/** * */package com.matao.sort;im...

2019-10-22 19:54:57 234

原创 常见排序算法原理和实现(一)

排序也称排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。排序的分类:内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。1.冒泡排序基本介绍:冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始)...

2019-10-21 19:23:27 222

原创 Spark优化汇总

1.资源优化搭建集群在Spark安装路径下 spark/conf/spark-env.sh配置:SPARK_WORKER_CORES=XXXSPARK_WORKER_MEMORY=XXX提交任务提交任务命令,最好使用脚本化提交,可以在提交任务时,给当前Spark 应用程序足够的资源,提交命令:./spark-submit –master spark://mynode1:7077 ...

2019-10-19 21:27:38 199

原创 数据倾斜解决方案之使用随机数以及扩容表进行join

当采用随机数和扩容表进行join解决数据倾斜的时候,就代表着,你的之前的数据倾斜的解决方案,都没法使用。这个方案是没办法彻底解决数据倾斜的,更多的,是一种对数据倾斜的缓解。原理,其实在和上一个几乎一样的。步骤:1、选择一个RDD,要用flatMap,进行扩容,将每条数据,映射为多条数据,每个映射出来的数据,都带了一个n以内的随机数,通常来说,会选择10。2、将另外一个RDD,做普通的ma...

2019-10-18 17:38:11 668 1

原创 数据倾斜解决方案之sample采样倾斜key进行两次join

这个方案的实现思路,跟大家解析一下:其实关键之处在于,将发生数据倾斜的key,单独拉出来,放到一个RDD中去;就用这个原本会倾斜的key RDD跟其他RDD,单独去join一下,这个时候,key对应的数据,可能就会分散到多个task中去进行join操作。就不至于说是,这个key跟之前其他的key混合在一个RDD中时,肯定是会导致一个key对应的所有数据,都到一个task中去,就会导致数据倾斜。...

2019-10-17 21:02:58 283

原创 数据倾斜解决方案之使用随机key实现双重聚合和将reduce join转换为map join

使用随机key实现双重聚合使用随机key实现双重聚合2、使用场景(1)groupByKey(2)reduceByKey比较适合使用这种方式;join,咱们通常不会这样来做,后面会讲三种,针对不同的join造成的数据倾斜的问题的解决方案。第一轮聚合的时候,对key进行打散,将原先一样的key,变成不一样的key,相当于是将每个key分为多组;先针对多个组,进行key的局部聚合;接着,再...

2019-10-16 20:03:17 198

原创 数据倾斜解决方案之提高shuffle操作reduce并行度

第一个和第二个方案,都不适合做。第三个方案,提高shuffle操作的reduce并行度将reduce task的数量,变多,就可以让每个reduce task分配到更少的数据量,这样的话,也许就可以缓解,或者甚至是基本解决掉数据倾斜的问题。提升shuffle reduce端并行度,怎么来操作?很简单,主要给我们所有的shuffle算子,比如groupByKey、countByKey、re...

2019-10-15 21:06:10 142

原创 数据倾斜解决方案之聚合源数据

数据倾斜的解决,跟之前讲解的性能调优,有一点异曲同工之妙。性能调优,跟大家讲过一个道理,“重剑无锋”。性能调优,调了半天,最有效,最直接,最简单的方式,就是加资源,加并行度,注意RDD架构(复用同一个RDD,加上cache缓存);shuffle、jvm等,次要的。数据倾斜,解决方案,第一个方案和第二个方案,一起来讲。最朴素、最简谱、最直接、最有效、最简单的,解决数据倾斜问题的方案。第一个方案...

2019-10-14 20:34:48 186

原创 数据倾斜解决方案之原理以及现象分析

数据倾斜在任何大数据类的项目中,都是最棘手的性能问题,最能体现人的技术能力,最能体现RD(Research Developer,研发工程师)的技术水平。数据倾斜 = 性能杀手1、数据倾斜的原理在执行shuffle操作的时候,大家都知道,shuffle的原理。是按照key,来进行values的数据的输出、拉取和聚合的。同一个key的values,一定是分配到一个reduce task进行...

2019-10-13 09:07:21 201

原创 troubleshooting之解决yarn-cluster模式的JVM内存溢出无法执行问题

yarn-client和yarn-cluster模式的不同之处:yarn-client模式,driver运行在本地机器上的;yarn-cluster模式,driver是运行在yarn集群上某个nodemanager节点上面的。yarn-client会导致本地机器负责spark作业的调度,所以网卡流量会激增;yarn-cluster模式就没有这个问题。yarn-client的driver运行...

2019-10-11 22:27:32 159

原创 troubleshooting之解决yarn-client模式导致的网卡流量激增问题

Driver到底是什么?我们写的spark程序,打成jar包,用spark-submit来提交。jar包中的一个main类,通过jvm的命令启动起来。JVM进程,这个进程,其实就是咱们的Driver进程。Driver进程启动起来以后,执行我们自己写的main函数,从new SparkContext()。。。ApplicationMaster?yarn中的核心概念,任何要在yarn上启动...

2019-10-10 21:20:23 144

原创 troubleshooting之解决yarn-client模式导致的网卡流量激增问题

Driver到底是什么?我们写的spark程序,打成jar包,用spark-submit来提交。jar包中的一个main类,通过jvm的命令启动起来。JVM进程,这个进程,其实就是咱们的Driver进程。Driver进程启动起来以后,执行我们自己写的main函数,从new SparkContext()。。。ApplicationMaster?yarn中的核心概念,任何要在yarn上启动...

2019-10-09 14:08:03 169

原创 解决算子函数返回NULL问题和错误的持久化以及checkpoint的使用

在算子函数中,返回null// return actionRDD.mapToPair(new PairFunction<Row, String, Row>() {//// private static final long serialVersionUID = 1L;// // @Override// public Tuple2<String, Ro...

2019-10-08 22:15:12 224

空空如也

空空如也

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

TA关注的人

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