自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 资源 (1)
  • 收藏
  • 关注

原创 设计模式 - 装饰者模式

先不讲设计模式,先讲一个生活中的例子。山东煎饼(或者肉夹馍)相信大家都吃过,可以自己选择需要的食材,比如,可以加一串里脊,或者培根,多加个蛋,到最后,老板会根据你选择的不同食材给你算价格。其实我们可以拆分开,一个基本面饼+鸡蛋+生菜+里脊+豆奶,这就是一层一层嵌套起来,最后只要输出最终价格。这就是装饰者模式,装饰者模式本质是一种组合的思想(不同于继承的思想),多组合少继承,一层一层添加,共存的意思。装饰者模式:动态将职责附加到对象上,若要扩展功能,装饰者提供了比继承更具弹性的代替方案。Componen

2020-06-29 23:46:03 169

原创 Java static

静态代码块对于定义在它之后的静态变量,可以赋值,但是不能访问.public class Singleton {//声明为 private 避免调用默认构造方法创建对象private Singleton() {}// 声明为 private 表明静态内部该类只能在该 Singleton 类中被访问private static class SingletonHolder {private static final Singleton INSTANCE = new Singleton();}p

2020-05-20 16:41:22 164

原创 记Spring Bean的坑

org.springframework.beans.factory.support.DisposableBeanAdapter#hasDestroyMethod

2020-04-16 23:33:31 426

原创 Logback日志小记

日志系统Java中常用的日志系统有很多,比如logging、log4j、logback等等。广泛使用的是logback+slf4j,同时代码里加入Lombok的插件,这样快速方便的使用日志。一、包引入<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logbac...

2020-04-09 00:00:00 662

原创 设计模式 - 策略模式

  看这个名字就知道对策略的分析的一种模式。什么是策略,从家里去上学可以选择走路、自行车、汽车、地铁,具体今天怎么去,就是策略的选择。  策略模式用于哪些场景呢?策略是将具体的算法分装成一个类,各个算法之间的使用相互并不影响,也有利于扩展,适用于算法经常在变动的,更换,替代的一类需求中。  下面用从家到学校的出行选择为例子:  首先分析下,从家到学校的出行方式有哪几种算法:走路自行车:...

2020-04-06 23:04:39 108

原创 对JDBC、DataSource、hibernate、MyBatis的一点看法

1、JDBC  JDBC是一种基准,是java连接各大厂商的关系型数据库的接口规范。/**** @description: JDBC连接MySQL数据库进行CRUD操作* * 步骤: * 1、加载驱动和注册数据库信息。 * 2、打开Connection,获取PreparedStatement对象。* 3、通过PreparedStatement执行SQL,返回结果到ResultSe...

2020-03-27 22:28:39 174

原创 SpringBoot项目的pom杂记

1、加载SpringBoot  SpringBoot可以在pom文件中使用继承parent的方式,这种方式简便易用。<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> ...

2020-03-27 22:18:42 173

原创 Spring中事务的一些理解

Spring的事务管理是依靠底层数据库的,也就是说他自己不管理事务,只提供接口,由底层数据库实现,

2020-03-27 19:54:29 202

原创 Java泛型

  偶然看见这种泛型的方式<T extends Comparable<? super T>>,一时间懵逼了,这写的是啥,然后找资料去理解这种泛型定义。  要理解这种类型的泛型,先理解以下这种泛型的含义:<T extends Comparable<T>>  这种泛型的很好理解,就是类型T必须是或者继承某种类型。这种类型就是需要实现Compara...

2020-03-10 11:22:00 481

转载 Arrays.asList

  Arrays.asList()方法是Java中常见的将数组转换成列表的方式。String[] myArray = { "Apple", "Banana", "Orange" }; List<String> myList = Arrays.asList(myArray);List<String> myList = Arrays.asList("Apple","Ban...

2020-03-09 23:54:50 100

原创 @Primary 和 @Qualifier的区别

  当一个接口有多个不同实现时,注入Spring的时候会产生org.springframework.beans.factory.NoUniqueBeanDefinitionException异常信息。  解决方式有2种,使用@Primary 和 @Qualifier注解。注解区别@Primary优先注入该注解的标注的bean@Qualifier确定注入该注解标定的...

2020-02-28 14:31:57 1722 1

原创 Servlet、Listener、Filter、Interceptor

杂记3一、Servlet、Listener、Filter、Interceptor1、tomcat 和 Servlet 关系  Java的Web应用是基于Servlet规范运转的,而Servlet规范的核心接口即是Servlet接口,它是所有Servlet类必须实现的接口,描述了Servlet 生命周期为从创建直到销毁的整个过程。  有的人往往以为就是servlet直接处理客户端的http请...

2020-02-13 23:21:33 268

原创 设计模式 - 工厂模式

一、面向对象的设计原则:1、单一原则:  高内聚,低耦合。简单的说就是一个类尽可能只做一件事。dao.class就只是数据库的操作;controller就只是对restfull的请求的接收;math.class只做数学上的计算处理。专注于单一的功能。2、开闭原则:  对扩展开放,对修改关闭。即在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。3、里氏替换原则:  尽可能...

2019-06-09 00:01:56 100

原创 fastjson转换

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2019-05-26 23:05:18 119

原创 java 反射

  Spring中往往一个注解(如@Controller@Service)就可以完成一些复杂的操作。注解应用于反射之上,反射是java的重中之重。反射强调的是运行时状态,获取类的方法和属性的一些信息。  通过反射获取类的几种方式:1、通过Class.forName Class&amp;amp;lt;?&amp;amp;gt; clazz = Class.forName(&amp;quot;java.lang.String&amp;quot;...

2019-05-26 21:49:31 166

原创 Scala基础一

  选用的Scala版本:2.11.8

2019-03-11 22:30:25 175

原创 kafka

  kafka说到底其实就是一个数据缓存池的作用。

2019-01-08 13:01:52 158

原创 Spark Streaming - 基础

一、概述  Spark Streaming是Spark对流式的计算框架,严格意义上说其实并不是真正实时性很高的流式计算,而是以时间片作为批次进行计算。Spark Streaming底层是以Spark Core为基础。  如上图所示,Spark Sreaming 是将流切分成一个一个的批次(batches),然后以批次为单位处理并输出。  Spark Core是以RDD为编程基础,Spark...

2018-12-29 21:55:46 346

原创 Spring @RequestBody和@RequestParam的请求方式get和post关系

  首先Spring的微服务是通过URL进行交互的。在http的请求中post和get的请求方式所带的参数对于Spring的@Controller下的注解有一些不同。一、URL和URI  先来理解一下什么是URL和URI。  URI可以分为URL,URN或同时具备locators 和names特性的一个东西。URN作用就好像一个人的名字,URL就像一个人的地址。换句话说:URN确定了东西的...

2018-11-29 20:42:55 11882 2

原创 Spark SQL 基础

一、为什么要用SQL  为什么大数据需要SQL。为什么SQL已经诞生这么长时间还在使用。为什么说一个框架不能落地到SQL上就不是一个好的框架。其实这个和SQL有关。SQL是用来统计数据信息的一种方式。比如统计一个班有多少男生,多少人上课迟到。大数据也需要处理这些统计信息,所以需要SQL。MySQL,Oracle等都是单机文件存储,因为数据量逐渐变大,性能跟不上,所以云化成大数据,以前的业务...

2018-11-25 21:14:13 3915

原创 Java基础-线程池

  Java应用程序需要运用线程,线程的出现使得程序能进行并行化操作。但如果遇上并行化量大,且运行时间短的场景来说,每个任务都创建一个线程,其实并不合适,启动和销毁线程占用大量的资源,所以,用线程池,重复使用线程完成任务。一、线程池的基本概念  已知一个工厂的流水线上有正式工人10人,工厂刚开工任务单比较少,每来一个工作单就让一个空闲的工人离开办公室安排到生产线上劳作,当任务单比较多,10个工...

2018-11-22 19:53:36 85

原创 Java-线程基础

一、线程的状态New新建Runnable可运行Running运行Blocked阻塞Dead死亡  New新建,就是创建一个线程。  Runnable可运行,线程启动start,等待cpu调度。  Running运行,线程正在执行,cpu正在调度。  Blocked阻塞。由于某种原因,线程暂停,释放cpu的使用权。直到结束,重新返回就绪状态,等待cpu调用。  Dead死亡,...

2018-11-21 17:55:26 87

原创 Java - 数据结构

  什么是数据结构?数据结构是计算机存储、组织数据的方式。数据的基本功能是对数据的增删改查,不同的数据结构效率和侧重点不一样。常见数据结构 数据结构 优点 缺点 数组 随机访问快 删除、指定位置插入慢 链表 插入和删除快 随机访问慢 树 查找快 删除比较复杂 图 适用多对多 算法复杂 Hash 查...

2018-10-17 10:03:41 105

原创 spark 算子

  什么是spark算子?可以理解成spark RDD的方法,这些方法作用于RDD的每一个partition。   因为spark的RDD是一个 lazy的计算过程,只有得到特定触发才会进行计算,否则不会产生任何结果。大体上分:Transformation 变换/转换算子,不触发执行Action 行动算子,立马触发执行常用算子一、map二、reduce三、二、red...

2018-09-01 16:23:10 1100

原创 Spark Core 基础

  我使用的Hadoop是cdh版本的,官网的spark二进制文件使用的是Apache版本的,所以必须要重新编译过的。一、编译  前期准备: - java 1.8 - maven 3.3.9 - scala 2.11 - spark-2.3.1.src.tgz   由于我用的是cdh版本的hadoop,所以在spark源码包的pom.xml中加入&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp

2018-08-28 23:32:55 183

原创 设计模式 - 代理模式

  今天看了下几篇文章,终于把代理模式讲清楚了。   Java的代理模式用于解决如下的几个问题:隔离作用:使用方只需要关注业务功能,其他的不需要关注,这就需要隐藏相关的内容,隔离原来的委托对象。增加功能:还可以通过给代理类增加额外的功能来扩展委托类的功能。  举个例子:传统观念中,学生只需要学习,不用关心日常生活琐事(当然这是不对的)。早上起来,你只要到学校开始早读、上课就行了,至...

2018-08-20 15:46:17 204 1

原创 Flume二

  一般的agent的数据源过来是从Source-&amp;amp;amp;amp;gt;Channel-&amp;amp;amp;amp;gt;Sink。在上一长讲解的时候都是单Sink,单Channel,单Source,其实三个组件之间还有有一层架构。

2018-08-14 22:47:11 114

原创 ZooKeeper

  使用的CDH版本的5.7.0,这样可以减少各个组件之间的版本冲突问题。ZK提供的是一个分布式协调服务。ZK的使用大的方向:hadoop生态组件的使用,hadoop的生态如HBase、Kafka等都是要使用ZK;其次,ZK API,各种自己的业务需要用到ZK的分布式协调,比如监视节点、各个节点配置文件更新等等。   ZK的部署还是老三样,解压、添加环境变量、生效。配置,只需要配置zoo.cfg...

2018-08-11 07:53:51 138

原创 Flume

  如果数据是在MySQL中的话,需要用到Sqoop工具将数据导入大数据平台。如果是日志类型的日志,需要用到Flume导入大数据平台。   Flume是一个分布式、 基于流式数据。Flume的灵魂(Agent)就是采集(source)、聚合(channel)、转移(sink)。对于Flume只需要会配置,并不需要(或者很少)需要自己开发代码。Flume在CDH中是更改过的,使用的是1.6.0版本...

2018-07-30 23:40:13 791

原创 Hive高级

  Hive是一个客户端的概念,不存在集群的概念。所以没有概念说Hive有集群。不过可以部署一台两台的Hive Service 2,用来让客户端连接,提交Hive的作业。一、Hive的操作的方式1.1 HiveService 2  HiveService2是一个服务,使得客户端可以查询提交作业。客户端有哪写呢?beeline/webui/Java API等等。   启动方式:...

2018-07-29 17:31:37 504

原创 Scala基础四

隐式转换  隐式转换就是将原来类没有的功能,给他加上新的功能。在项目中能不用就不用,会涉及到不好阅读。比如以下功能,原来狗是没有说话的能力,加上说话的功能。一个普通的狗:class Dog(val name:String)一个会讲话的狗:class SpeakDog{ def speak: Unit ={ println("I am SuperDog") }}...

2018-07-26 22:27:47 126

原创 Scala基础三

一、集合的高阶函数1.1 map  map是对集合中的每一个元素都做相同的操作,返回一个新的集合。常用的写法1、a.map((x:Int) =&amp;amp;gt; x * 2)2、a.map(x =&amp;amp;gt; x * 2)3、a.map(_ * 2) //_表示集合中的每一元素1.2 foreach  foreach是对集合进行一次操作,但不会返回新的集合,常用于控制台输出信息。...

2018-07-26 21:25:55 157

原创 Scala基础二

一、Object和Class的区别1.1 存放的数据不同  同名的Object和class互为半生关系。同名的object是class的半生对象,class是object的半生类。所以一个scala的文件存放同名的Object和Class,Object存放的内容就是像Java中的静态属性和静态方法,Class的是要new一个出来才能使用,所以Object是静态方法和属性的集合,class是...

2018-07-24 21:49:07 143

原创 hdu ACM oj - java版本

1089-简单求和import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc =new Scanner(System.in); while(sc.hasNext()){ int a = sc.ne...

2018-07-17 10:56:00 412

原创 Linux - shell 脚本学习

  shell 脚本是一种解释型语言。所以需要配套解释器来解释你的脚本。首先,先来个例子:创建一个test.sh文件,在文件里输入以下内容#! /bin/bashecho &amp;amp;amp;amp;quot;hahaha&amp;amp;amp;amp;quot;  以上就是简单的Shell脚本,用于输出”hahaha”字符。如何去运行这个脚本(首先这个脚本得有权限)。有以下几种方式。1、当前路径下运行./test.sh2、绝对路径运行/tmp/t...

2018-07-05 16:28:24 137

原创 Spring MVC入门 - web.xml

未完待续……  SpringMVC入口就是web.xml配置文件,里面定义了一些监听器(Listener)、调度服务程序(DispatcherServlet)、过滤器(Filter)等。这些组件共同完成Spring MVC对不同的URL请求的响应处理。过滤器(filter)监听器(listener)调度服务程序(servlet)默认URL(welcome-file-list)错误...

2018-07-03 10:25:39 160

原创 Sqoop

  Sqoop这个工具是做数据迁移用的,是关系型数据库和Hive/Hadoop的数据迁移,方便大量数据的导入导出工作。Sqoop底层是通过MapReduce去实现的,但只是只有Map没有Reduce。一、准备  使用内建函数得有一个表做例子,这样才能了解函数的输出与传入参数。...

2018-06-23 18:50:22 690

原创 Spring MVC - 运行流程

  上图是MVC的客户端请求的处理流程图。 Spring工作流程:客户端发出一个请求,被DispatcherServlet捕获。DispatcherServlet收到请求调用HandlerMapping处理映射器查找具体的Handler(可以根据xml配置、注解进行查找),查找对应URL的Hander。如果查找到具体的Handler,获取该Handler配置的所有相关的对象(包括H...

2018-06-21 20:29:51 140

原创 Hive - 自建函数

  Hive中和RDBMS中的语法类似也带有一些函数,方便做聚合、转化之用。如果想要显示内置函数可以使用show functions;查看。如果想要知道某个函数的用法可以使用desc function xxx;来查看用法。同样,想要详细写法就使用desc function extended xxx;来查看。常用的内建函数自建函数...

2018-06-18 10:18:18 1022

原创 Hive - 内建函数

  Hive中带有一些函数,方便Hive SQL做出一些聚合、转换、分割操作。最常见的就是聚合函数(SUM,COUNT,AVG)。当然这些属于内建函数,就是当部署好Hive以后,这些函数都在,可以随时调用。查看一个函数的信息,比如查看SUM函数的信息,在Hive CLI中“desc function sum;”,如果说要详细信息:“show function extended sum;”。一、...

2018-06-15 22:05:55 288

matlab教学ppt

用于初学者学习matlab,这里面包含了最基本的matlab知识对初学者来说是一个不错的选择

2011-06-06

空空如也

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

TA关注的人

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