自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SmilingCobra

你喜欢吗,喜欢就来看看吧

  • 博客(117)
  • 资源 (2)
  • 收藏
  • 关注

原创 华为推送(Push)API实现(Java语言)

在上一个FCM推送发布上线后,我开始了下一个开发任务。这次需要我接入华为服务器实现消息推送,其实接入华为要比接入fcm容易很多,因为华为的内部代码构建结构较为明了,可以很好地让开发者进行阅读和理解,从而很好地进行二次开发。话不多说,我写了一个简单的demo,将华为推送进行一个简单的介绍。该项目的地址链接: https://pan.baidu.com/s/1m4WwsOWzC3AW8V9tXVrLZQ 提取码: j7du目录1.官方API阅读2.通知消息和透传消息的发送方式(1)通知.

2020-07-31 11:10:37 3198 8

原创 FCM实现消息推送

1.FCM的开发初衷 最近刚刚毕业,在公司接到的第一个正式任务是要求我将消息推送到firebase服务器上从而实现消息推送到安卓客户端。由于该产品面向海外用户,所以需要通过谷歌提供的服务器进行消息推送。至于fcm的概念,大家可以自行百度,我不再重复。直接讲述整个代码的coding过程,代码我是已经跑通了的,可以根据我的文档进行参数设置就可以进行简单的消息推送测试了。当然,如果在了解我的代码后,也可以进行代码的重写,我提供的只是一个很简单的demo。2.设计思路 在解释我的代码...

2020-07-20 19:24:35 6075 15

原创 Spring Security OAuth2简介

最近学习了一些Spring Security OAuth2授权认证的实现过程。打算写一篇博客记录一下,毕竟自己将要参加工作了,这些技术也是需要学习的内容。1.OAuth2是什么?在开始正文内容之前,我想先解释一下,OAuth2是什么。OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 OAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 OAuth 是安全的。换言

2020-06-24 11:33:10 543

原创 JVM虚拟机 底层原理分析与性能优化

今天看了关于jvm的一些视频,个人对jvm的一些进行一下总结。目录1.JVM的概念:方法区虚拟机栈本地方法栈程序计数器堆JVM关于内存回收新生代老年代1.JVM的概念:JVM,Java Virtual Machine, java虚拟机。通过将java字节码文件转换成os需要的机器代码实现java文件的执行,java虚拟机实现了java的跨平台性。...

2020-02-02 18:28:34 364

原创 mysql索引

最近学习了关于mysql索引的一些知识,再次做一个总结。首先建立mysql索引的作用是为了更快访问一些数据,mysql索引文件是存储在磁盘上的文件。实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。目录mysql索引的数据结构类型:1.平衡二叉树:2.B树:3.B+树:4.Hash索引:mysql存储引擎:1.InnoDB(聚簇索引)2.My...

2020-02-01 18:15:08 2482

原创 Java多线程系列-------多线程的风险问题

这篇文章,我想说明一下关于Java多线程中会遇到的几种风险以及它们的 概念1.死锁:死锁的含义是指一组线程在执行过程中竞争资源导致的一种阻塞的现象,其原因是其中的每一个线程都在等待仅由该组中其他线程才可以释放的资源,这样每个线程都在等待其他线程释放自己的资源,而本身并不会释放资源,导致双方都在互相等待中形成一种阻塞的现象。 2.饥饿:多线程中的饥饿,其意思是,线程的调度如果只...

2019-12-30 16:37:10 177

原创 设计模式(十四)--------------中介者模式

这篇博客我想简单介绍一下中介者模式中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。也就是避免了多个类之间直接通信从而使得代码耦合度较大,采用一个中介类使原本的网状结构变成星型结构。意图:用一个中介对象来封装一系列的对象交互,中介者使各对象不需...

2019-07-27 21:53:10 220

原创 设计模式(十三)--------------迭代器模式

https://www.bilibili.com/video/av29579073/?p=20这篇博客我想说一下迭代器模式,迭代器模式我觉得大家并不陌生,因为在数据结构容器的遍历中我们常常用到这个迭代器。实现原理非常简单,其实就是一个指针从容器的顶端向下不断遍历,防止出现越界。它提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。代码不需要详细说明,只对相应的类进行...

2019-07-24 21:39:27 140

原创 设计模式(十二)--------------责任链模式

https://www.bilibili.com/video/av29579073/?p=19今天我想说一下责任链模式,责任链模式的应用是非常广泛的。比如Spring中的拦截器链以及ClassLoader类加载器机制都是运用了责任链模式。责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者...

2019-07-24 21:29:23 170

原创 设计模式(十一)--------------享元模式

这篇博客我来说一下享元模式。享元模式主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。享元模式的应用可以参考线程池或者数据库连接池,这些都符合如下情况1、系统有大量相似对象。 2、需要缓冲池的场景。享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。何时使用:1、系统中...

2019-07-21 22:45:15 177

原创 设计模式(十)--------------外观模式

这篇博客我想说一下外观模式,外观模式的理解非常简单。外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。可以看到就是关于封装的理解。博客只是将老师的博客代码进行粘贴。老师是以创建公司的注册流程为例,具体我就不需要解释了。首先是四个类代表注册公司时需要访问的四个机...

2019-07-21 21:47:47 168

原创 设计模式(九)--------------装饰器模式

https://www.bilibili.com/video/av29579073/?p=16今天这篇博客我来说一下装饰器模式。装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。装饰器模式相比生成子类会更加灵活。装饰器模式由于较为复杂,涉及到的类也是比较多的。总体分为四个部...

2019-07-21 21:17:37 96

原创 设计模式(八)--------------组合模式

组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。/** * 抽象组件 * @author Administrator * */public interface Component { void opera...

2019-07-19 21:58:51 129

原创 设计模式(七)--------------桥接模式

今天我来说一下桥接模式,桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。听起来这个概念是十分难懂的,那么我来解释一下。如果一个类,也就是一个实物。它具有很多类的属性,按照属性所属类型的不同,可以实例化很多的对象,那么在类的声明时就会显得十分复杂难做。举一个例子,我们都知道电脑有很多种类型,比如笔记本电脑,台式电脑以及现在比较多掌上电脑。同时笔记本电脑的品牌有很多,比如联想...

2019-07-19 21:50:12 110

原创 设计模式(六)--------------代理模式

今天这篇博客,我想来说一下我对于代理模式的理解,之前有写过关于代理模式的博客。这篇博客就再总结一下,所谓代理模式简单理解就是声明一个类作为代理的身份去执行另一个类的功能,这样就可以实现类的内部细节的隐藏同时还可以调用这个类的功能。与此同时我们可以对目标类中的方法进行加强。代理模式的实现有两种方式,一种是静态代理,一种是动态代理。静态代理就是需要用户手动声明一个代理类,对目标类进行封装和细节的隐...

2019-07-19 21:33:05 104

原创 设计模式(五)-------------- 适配器模式

https://www.bilibili.com/video/av29579073/?p=10今天我来介绍一下适配器模式,首先解释一下这个名词。在生活中我们遇见过功率转换器,将大功率转换为我们电器适合的小功率,那么在设计模式中也是存在这样的情况。如果两个类之间互相不兼容,但是又需要将这两个类结合进行工作。那么就需要一个适配类,也就是Adapter类来完成桥梁的作用。可以看到,适配器模式的意...

2019-07-18 22:42:26 92

原创 设计模式(四)-------------- 原型模式

https://www.bilibili.com/video/av29579073/?p=8https://www.bilibili.com/video/av29579073/?p=9原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。通常我们可以使用new的方式来创建一个新的对象。但是...

2019-07-17 23:06:00 237

原创 设计模式(三)-------------- 建造者模式

https://www.bilibili.com/video/av29579073/?p=7建造者模式是指使用多个简单的对象一步一步建成一个复杂的对象。这个复杂对象的生成分为两个部分,一个是简单对象的生成过程,对应的是Builder类,一个是将这些简单对象进行组建称为最终的复杂对象的类,称为Direct类。可以看到建造者模式的意图就是将一个复杂的构建与其表示相分离,使得同样的构建过程可以创...

2019-07-17 22:19:04 106

原创 设计模式(二)-------------- 工厂模式

这篇博客我想来说一下关于工厂模式的一些知识,工厂模式在Spring框架中运用是十分广泛的。由于Spring的控制反转思想,使得我们的一些bean都交由BeanFactory统一进行管理。那么今天我就来讲述一下关于工厂模式的一些知识,下方是视频连接https://www.bilibili.com/video/av29579073/?p=4https://www.bilibili.com/...

2019-07-15 21:50:38 139

原创 设计模式(一)-------------- 单例模式

今天我想总结一下关于设计模式的学习过程。首先是第一个单例模式的学习,整个设计模式的学习视频网址如下https://www.bilibili.com/video/av29579073/?p=1https://www.bilibili.com/video/av29579073/?p=2https://www.bilibili.com/video/av29579073/?p=3之前在学习...

2019-07-14 22:19:05 175

原创 LeetCode刷题日志(三)

之前看的是链表的问题,现在主要是研究关于递归的问题,对初学者来说递归问题的理解是比较困难的。我也是通过一些问题的逐步分析来进行判断和理解。这篇博客主要是针对leetcode的某一类问题进行分析。这些是关于组合求和的问题目录 1.组合总和2.组合总和 II3.电话号码的字母组合1.组合总和给定一个无重复元素的数组candidates和一个目标数ta...

2019-03-27 18:49:29 153

原创 LeetCode刷题日志(二)

昨天有些事情耽误了笔记的总结,今天要补上。上一次分析了关于链表的一些问题,我主要以模块来划分题型。这次我再总结几道关于链表的题目,链表的题目我打算告一段落。目录1.将有序数组转换为二叉搜索树2.有序链表转换二叉搜索树3.删除排序链表中的重复元素4.删除排序链表中的重复元素 II1.将有序数组转换为二叉搜索树将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜...

2019-03-21 21:25:52 112

原创 布隆过滤器,一致性哈希以及并查集

今天我对之前学到几种较为复杂的数据结构和算法进行一下总结。分别是布隆过滤器,一致性哈希和并查集。目录1.布隆过滤器2.一致性哈希3.并查集1.布隆过滤器布隆过滤器解决的问题:许多网站都维护有一个黑名单防止有些人的恶意访问,当我们在访问一个网站的时候,网站的检测系统会将我们的ip和黑名单中进行比对,如果发现比对成功,那么访问失败。这个问题看起来非常简单,只需要将...

2019-03-19 11:03:23 407

原创 LeetCode刷题日志(一)

虽然之前对java的各方面应用有了拓展的了解,但是发现自己的短板依旧很明显就是算法。之前虽然有看过算法课,但是实际的coding却没有做太多。所以从今天起,每天都要ac一些题目然后进行总结。把ac过程中自己不会的知识点记录并深化。我选择从LeetCode上写题,他的难度适中。然后很符合公司出题标准,我打算按照LeetCode提供的分类进行刷题。目录链表篇1.合并两个有序链表...

2019-03-18 22:16:26 508

原创 Dubbo面试题

转载自http://www.cnblogs.com/yang-lq/p/9168216.html

2019-03-02 11:56:35 156

原创 Dubbo框架篇(三)----------Dubbo在工程中的实际应用

之前我讲述了关于dubbo安装的一些基本的准备工作。之前也说过了,dubbo是一种远程服务调用。关于dubbo的底层原理,由于我是初学者的身份,在这里我也没有办法说明。但是根据我在网上的视频,我对dubbo在现在流行的工程框架中进行了部署和使用。这篇博客我就来讲述一下关于dubbo的具体使用。 目录 1.服务提供者的配置 2.服务消费者的配置 3.过程分...

2019-03-02 10:44:33 234

原创 Dubbo框架篇(二)----------Dubbo管理控制台的安装和使用

这次我来说一下关于dubbo管理控制台的安装和使用。在安装管理控制台之后,我们可以在控制台上进行浏览和监控我们的dubbo框架上注册的服务。一  首先需要进行相关maven工程的下载    在这里我已经完成了下载,此处是我的百度云资源链接: https://pan.baidu.com/s/1P6Xyp8P1G5i4ot55vgjDaA密码: 0aw2二  下载解压完成之后,在这...

2019-01-30 21:29:18 148

原创 Dubbo框架篇(一)----------Dubbo的基础知识

 最近在学习分布式工程的基本搭建,结合之前的学习经历,我决定从Dubbo开始入手。在介绍Dubbo的知识之前,我想先简要介绍一下分布式工程目录1.分布式系统的定义:2.RPC(远程服务调用)3.Dubbo的基本概念4.Dubbo的设计框架1.分布式系统的定义:   分布式系统是若干独立计算机的集合,对用户来说这些计算机就是一个完整的相关系统。随着网站应用的不断扩展以...

2019-01-30 21:13:13 160

原创 Spring MVC与Web环境(四):SpringMVC对HTTP请求的分发处理

这一段时间一直在看关于算法部分的书籍,所以始终没来的及更新自己的博客。之前就已经看完了Spring MVC的全部文章,今天就更新完我的关于Spring源码学习的最后一篇文章。1.大体流程上次说到了关于handler(也就是Controller层对象的获取),那么服务器是根据用户请求的url来进行确认访问某一个HandlerMapping取出其中的handler对象以及相应的拦截器链,但是这...

2018-11-29 17:54:57 529

原创 Hadoop系列(二): Hadoop的完全分布式安装

之前,实现了Hadoop的伪分布式安装。现在来讲述一下Hadoop的集群分布,在多个虚拟机上进行安装hadoop并进行集群管理。首先需要将一个虚拟机作为namenode也就是总的管理节点。另外选择三个虚拟机,作为数据节点datanode进行备份。在选择一个备用的secondary namenode作为namenode的备份。现在我将逐步来分析如何进行hadoop的集群安装。首先我们...

2018-11-16 20:38:37 151 1

原创 Spring MVC与Web环境(三):HandlerMapping的配置以及处理请求

在上一篇的博客中,我提到了关于HandlerMapping的作用。在原书中作者是这样定义它的。每一个HandlerMapping可以持有一系列从URL请求到Controller的映射。在每一个HandlerMapping中都定义了一个map来持有这一系列的映射关系。在这个方法的定义中,通过解析request请求获取其中请求的URL路径,然后找到对应的handler对象,将这个对象封装到Handle...

2018-11-09 17:57:11 624

原创 Spring MVC与Web环境(二):Spring MVC的启动以及初始化

ContextLoader在初始化完成以后,Web容器就开始初始化DispatcherServlet,这个初始化的启动与在web.xml中对载入次序进行的定义有关。DipatcherServlet会建立自己的上下文来持有Spring MVC的Bean对象。这个建立对象的过程和ContexLoader是类似的,都是通过声明好的xml文件来注册声明好的bean对象。现在我们来具体看一下关于Dispat...

2018-11-07 20:21:13 172

原创 Spring MVC与Web环境(一):IOC容器在Spring MVC中的启动

            在原书的阅读中我们可以看到,Spring并不是天生就能在Web容器中起作用的。我们同样需要把我们的IoC容器手动添加到Web容器中,也就是在web.xml文件中配置一些基础的类比如DispatcherServlet,ContextLoaderListener这些我们熟悉的类。当这些类的配置完成之后,启动tomcat。就会在IoC容器中生成这些处理我们请求的bean。在Dis...

2018-11-06 18:22:09 317

原创 Hadoop系列(一): Hadoop的伪分布式安装

在进行Hadoop的伪分布式安装之前,我们首先对Hadoop的一些基础的要点进行一下说明。关于Hadoop的详细概念,我们可以在搜狗百科上找到很详细的答案。https://baike.sogou.com/v6822175.htm?fromTitle=hadoopHadoop是由Apache基金会开发的一个分布式文件系统,用来存储,访问和计算海量数据的框架。Hadoop 3大核心组件:...

2018-11-04 19:35:34 178 1

原创 Spring事务处理的实现:Spring事务总结

这篇我想对Spring事务机制进行一次总结,总结的方式也和AOP类似那就是使用图解的方式。首先我们需要对我们事务的AOP机制进行初始化,也就是声明要对那些方法(切面)进行增强,这里涉及到了TransactionInterceptor拦截器链的生成。接着书上讲述了事务处理配置的读入。在拦截器链被设置到对象中之后,书上以 TransactionAttributeSourceAdvisor的...

2018-10-30 17:35:24 217

原创 Spring事务处理的实现:事务处理的实现

目录 事务处理的编程式使用声明式事务事物的创建事务的挂起事务的提交事务的回滚具体事务处理器的实现事务处理的编程式使用    书上首先给出了事务处理的编程式使用之后书上为我们解释了Spring框架对事务处理的统一管理,以及对并发事务和事务属性的处理。声明式事务事物的创建书上的代码中我们可以从invoke方法中找到事务创建方法@Ov...

2018-10-28 21:25:20 575

原创 Spring事务处理的实现:事务处理配置的读入以及事务处理拦截器的实现

事务处理配置的读入上次说到AOP配置已经完成,下面我们来讲述一下关于具体的事务属性配置是如何读入的。书上所述为在TransactionProxyFactoryBean中,以TransactionAttributeSourceAdvisor的实现为入口,了解具体的事务属性配置是如何被读入的。这个是我们已经见过的拦截器private TransactionInterceptor tran...

2018-10-26 19:53:16 369

原创 Spring事务处理的实现: Spring与事务

通过对于书上代码的学习和了解,本书并没有将事务最底层的实现完全展现出来。因为这是涉及到很复杂的操作系统的一些操作,比如对于线程的管理,以及ThreaLocal变量的一些维护等等。这些可以说对我们这些用户是不可见的。书上的代码只是将整个执行的流程给我们展现了出来,让我们可以比较清晰地看到整个实现的过程。在讲解代码之前,我觉得有必要对事务的一些基本知识进行一下解释,虽然我们对事务的概念已经很熟悉了...

2018-10-25 21:57:55 185

原创 Spring AOP的实现:知识框架总结

通过对于这本图书的学习,我发现其实关于每一个部分的代码的解析不是按照AOP的具体实现流程来进行,而是通过对于某一个模块的解析来模块化地讲解知识。所以在新手比如我在学习的过程中,会有很多很多疑惑的地方。所以当我学完这一章之后,我希望通过画一张图,来解析整个AOP的实现流程。首先我们先画一个最基本的数据结构,也就是我的博客中提到的三个类 这三个数据结构贯穿了AOP的始终。是AOP实现加强的...

2018-10-25 21:09:00 223

原创 Spring AOP的实现:拦截器链的生成以及Advice通知的实现

拦截器链的获取生成上一次我说到了拦截器链的获取,拦截器链的获取以及生成是从一个DefaultAdvisorChainFactory类中得到的。我们来看一下具体的实现代码public List<Object> getInterceptorsAndDynamicInterceptionAdvice( Advised config, Method method, Class&...

2018-10-21 20:55:35 914 3

openms-project.rar

关于neo4j的数据库查询部分,以及d3.js结合json文件实现关系图的显示。

2019-06-16

neo4j操作数据库

这是关于neo4j连接数据库的的代码,如果有需要的同学可以进行直接下载。只需要一个积分而且亲测可用。

2019-03-07

空空如也

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

TA关注的人

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