自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 论坛 (1)
  • 收藏
  • 关注

原创 【设计模式(15)】行为型模式之解释器模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言在初高中的时候我们都学过语法,无论是汉语还是英语都有自己所规范的语法(尽管大部分人平时并不遵守。。。)比如同桌的你,按照语法,的表示修饰关系,你为中心词,同桌为定语规则定下来了,那么我们可以设计一个程序来识别这种语法的语句,比如头秃的程序猿,改不完的bug等等。。。再举个栗子,对于算术式1+(2*3-4)*5我们需要做的第一件事就是将其从外向里拆开,拆解过程如下将1+.

2020-11-10 17:57:33 7

原创 【设计模式(14)】行为型模式之命令模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言生活中,一件事情的请求者和执行者不一定是同一个人。比如我们申请售后的时候,将需要的信息等告知售后,然后由售后来安排处理,我们可以去做别的事情了;电视遥控器向电视发送命令,电视来执行;老板给我们分配任务等等。。。好处是我们不需要将请求者与执行者建立绑定关系,也不需要占用请求者的时间。在开发中,我们也会需要解除请求者和执行者之间的耦合,一方面利于扩展,一方面使得两者不必同步运作。.

2020-11-06 18:27:52 7

原创 【设计模式(13)】行为型模式之责任链模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言在我上个公司,如果需要请假一天,只需要获取组长同意就可以了,通知一下人事就溜;但是如果长于1天不超过3天,那么需要跟项目经理说明情况,获得允许,同样需要告知人事部;长于3天则需要获得部门经理的同意,再告知人事;也就是说,如果要请假我得先知道这些规则,并且知道所有领导的姓名和练习方式,小公司还好,大公司这可就麻烦了。很多公司采取的方式是跟自己的直属上司汇报即可,比如我报备给组长,.

2020-10-30 18:35:11 11 2

原创 【设计模式(12)】结构型模式之代理模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言“中介”这个职业大家都知道,比如买房租房,我们一般是与中介进行交流、看房、议价等等,甚至我上一次租的房住了一年都没见过房东,同理房东也没见过我。。。还有譬如买火车票并不需要去火车站,在携程或者12306app上就可以购买;订酒店通过美团或者携程也能够完成,并不需要本人去酒店;还有浏览那些“不存在”的网站的时候,我们需要“梯子“等等以租房中介来说,一方面他是我的中介,代替我去跟.

2020-10-29 16:18:03 12

原创 【设计模式(11)】结构型模式之享元模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言对于后端开发者而言,池化技术相当常见,比如线程池、数据库连接池、缓冲池,以及最最常见的Bean池对于Bean池,在系统初始化的时候初始化装载Bean对象,系统中需要使用的时候直接调用Bean池中的对象即可,而无需每次都去初始化一遍,以节省资源消耗针对String的性能优化,Java引用了缓存池的概念,即创建String类型数据的时候,会检查缓存池中是否有相同内容的String.

2020-10-27 18:22:47 9

原创 【设计模式(10)】结构型模式之外观模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言生活中,如果有什么事需要去营业厅等站点办理,我们希望的是给接待员需要的信息,然后他们去办理完成,走人!然而有些时候,我们得到的回应是我们需要先做什么,再做什么,再去哪做什么blablabla…后者一看就不专业是不是?做个事你们做不就得了吗,不然我来营业厅干嘛?掏出手机百度一下不就得了?作为专业的程序猿,那我们写的代码肯定得专业一些。对于一个系统,我们隐藏其内部细节,并向外部.

2020-10-26 16:16:27 18

原创 【设计模式(九)】结构型模式之装饰器模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言中秋刚过没多久,虽然我这种粗人对月饼无感,但是公司发的肯定得收的嘛拿回家当零食吃算了,一个硬纸袋,打开是一个盒子,盒子打开时十多个小盒子,小盒子打开是塑料包装的月饼,撕开塑料包装,终于能吃了吃了一口,emmm就这?还没小时候吃的冰糖五仁月饼好吃呢,弄这么花里胡哨就一块味道并不咋地的月饼,花里胡哨包装一层又一层,何必呢?还不如改善工艺做好吃点说的再难听点,这些精心包装的月饼,.

2020-10-26 11:31:19 18 1

原创 【设计模式(八)】结构型模式之组合模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言这个是我随手截的文件目录,这样的结构都很眼熟吧?一个个文件,组成一个文件夹,文件和文件夹又可以组成更大的文件夹,进而形成一个树形结构那么,我们在点开的时候,需要先确认目标是文件夹或者文件,文件就打开,文件夹则是展开下一级也就是说我们对于"部分"与“整体”采取了不同的方案,但是这样带来了一些不必要的麻烦,我们只想打开这个目标,具体怎么打开那是你们自己的事情进而言之,客户只关.

2020-10-22 17:20:14 31 1

原创 【设计模式(七)】结构型模式之桥接模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言设想如果要绘制矩形、圆形、椭圆、正方形4个形状,且各有红、黄、蓝3种颜色,那么显然一共有12种不同的结果如果有m个形状,n个颜色,那么需要定义m*n个类,看上去可以接受是吗?那如果要新增一种颜色,就得多定义n个类,同理增加一种形状也需要增加m个类,修改的话同理也要修改大量的类这个维护成本可就高的过分了,耦合度太高,而且违背了单一职责原则,那咋办嘛?换个思路,其实可以将形状与.

2020-10-21 16:08:04 28

原创 【设计模式(六)】结构型模式之适配器模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言将一个类的接口转成客户期望的另外一个接口。适配器模式使得原本由于接口不匹配而不能一起工作的那些类可以一起工作。——Gang of Four适配器英文为adapter,如果你是一位Android开发工程师,一定不会对这个单词陌生,在Android开发中,我们经常需要设计适配器,对数据加以处理使其以合适的形式在view中展示出来。简而言之就是数据原先无法以合适的形式展示,我们需要适配.

2020-10-16 17:40:46 21

原创 【设计模式(五)】创建型模式之建造者模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象如果经常使用组件,Builder这个单词是不是很眼熟?很多第三方组件都会使用builder来构造对象,通过向builder设置参数,即可或自己想要的对象重点就在于==设置参数==,我们可以通过设置参数修改目标对象的细节,之前介绍的工厂模式只能选择产品类型,而无法修改参数。例如我们购买一台.

2020-10-10 10:09:06 26

原创 【设计模式(四)】创建型模式之原型模式

【设计模式(四)】原型模式个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言原型模式是一种创建型设计模式, 使你能够复制已有对象, 而又无需使代码依赖它们所属的类。原型(Prototype)模式的定义如下:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节。当直接创建对象的代价比较大时,则采用这种

2020-10-09 12:11:04 78

原创 【设计模式(三)】创建型模式之工厂模式

【设计模式(三)】工厂模式个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言单例模式也是Java最简单和常见的模式之一这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象根据产品类型和抽象成都可分为==简单工厂模式、工厂方法模式和抽象工厂模式==实际上前面介绍的单例模式,也属于工厂模式。1.介绍使用目

2020-09-29 17:48:52 71

原创 【设计模式(二)】创建型模式之单例模式

【设计模式(一)】介绍与设计原则个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言单例模式是Java最简单和常见的模式之一都知道Java中,类需要被实例化为对象才能使用,因而同一个类可以被实例化为多个对象,但是部分场景我们需要使用同一个对象,这就是单例模式出现的原因1.介绍使用目的:保证一个类仅有一个实例,并提供一个访问他的全局访问点使用时机:需要节省系统资源,或者需要在多个地方公用类里面的数据等情况解决问题:频繁创

2020-09-28 18:21:07 39

原创 【设计模式(一)】设计模式概览与六大设计原则

【设计模式(一)】介绍与设计原则个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言本文为自学笔记,当前水平有限,如有出错或者纰漏的地方欢迎指正1.介绍设计模式代表了最佳的实践,是开发人员在开发过程中对一般问题的解决方案。这些方案并不是语法规定,而是众多开发人员长时间试验和总结出来,用于提交代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案2.六大设计原则设计模式有六大原则Single Respo

2020-09-24 16:22:53 23

原创 【算法刷题】无重复字符的最长子串

本文为个人解题思路整理,水平有限,有问题欢迎交流概览第一次解出来没花多长时间,但是提交后发现击败了30%的人,也就是意味着还有大幅度优化的空间,于是再优化了一下难度:中等核心知识点:滑动窗口 + 贪心题目来源力扣:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/题目内容给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度样例输入1pwwkew输出1.

2020-09-22 12:03:45 45

原创 【算法刷题】全排列 II

本文为个人解题思路整理,水平有限,有问题欢迎交流概览这题想做出来其实很简单,但是可以通过剪枝不断的优化性能,又是一道表面深搜实则优化的题难度:中等核心知识点:DFS(回溯) + 数据结构题目来源力扣:https://leetcode-cn.com/problems/permutations-ii/题目要求给定一个可包含重复数字的序列,返回所有不重复的全排列。样例输入1:[1,1,2]输出1:[ [1,1,2], [1,2,1], [2,1,1]].

2020-09-18 17:32:03 28

原创 【算法刷题】LRU缓存模拟

本文为个人解题思路整理,水平有限,有问题欢迎交流概览这题有两个解决方案,第二个的性能比第一个稍强,但是建议练习第一种方法,当然实际使用中性能优先难度:中等核心知识点:自定义链表 + map题目来源牛客:https://www.nowcoder.com/practice/e3769a5f49894d49b871c09cadd13a61力扣:https://leetcode-cn.com/problems/lru-cache-lcci/本文依照牛客的要求解答,力扣的解决方案也是一样的.

2020-09-17 20:54:04 51

原创 【算法刷题】翻转二叉树

本文为个人解题思路整理,水平有限,有问题欢迎交流概览一个简单的递归而已,入门级算法题,其实没啥记录的价值,写出来是因为看到个有趣的东西,莫名可爱难度:入门核心知识点:递归题目来源力扣:https://leetcode-cn.com/problems/invert-binary-tree/题目内容翻转一颗二叉树样例数据源 4 / \ 2 7 / \ / \1 3 6 9输出 4 / \ 7 .

2020-09-17 17:05:49 38

原创 【算法刷题】解数独

本文为个人解题思路整理,水平有限,有问题欢迎交流概览本题已数独问题为背景,要求计算出唯一解,表面是一个暴力深搜和回溯的问题,然而实际上如何优化才是精华所在难度:中等核心知识点:DFS(回溯)、状态压缩、位运算题目来源力扣:https://leetcode-cn.com/problems/sudoku-solver题目内容编写一个程序,通过已填充的空格来解决数独问题。一个数独的解法遵循如下规则:数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字.

2020-09-16 16:53:17 64

原创 【JAVA定时器】四种常见定时器的原理和简单实现

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言定时器顾名思义,即定时触发某个事件,分离开来,即包含三个因素:定时,触发,某个事件,本文也将以此为基础介绍五种常见的定时器本文只做基于SpringBoot的示例,其余版本的请自行查阅资料,大同小异1.介绍1.1.目的定时器的目的即为了在某个时间点,程序自身主动触发某个事件,而不需要外力去开启或者启动,以节省人力并统一管理1.2.示例场景管理系统,需要每日12点.

2020-09-11 17:46:37 472

原创 【Quartz】初识与基本使用

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言本文只做基于SpringBoot的示例,其余版本的请自行查阅资料,大同小异1.介绍Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,完全由Java开发,可以用来执行定时任务,类似于java.util.Timer。但是相较于Timer, Quartz增加了很多功能:持久性作业 - 就是保持调度定时的状态;作业管理 - 对调.

2020-09-10 18:22:24 30

原创 【JWT】初识与集成,及优缺点

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言随着分布式的普及,session的成本正变得越来越高,因而一种不需要session,而直接将身份信息放在token中的方案应运而生–JWT请留意,本文主要整理相关思路,为方便理解,示例代码并不完整,更谈不上严谨若需要实际使用的demo,请直接查看整理后的代码,完整demo会传到github或码云1.介绍1.1.什么是JWTJWT全程为Json web token,是一.

2020-09-04 17:51:57 68 2

原创 【shiro】初识与集成

【shiro】初识与集成个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言权限管理对于一个成熟的项目是极为基础且必要的部分,我们必须知道来者何人,才能判断这个人能做什么不能做什么而shiro正是解决方案中最常见的一种请留意,本文主要整理shiro相关思路,为方便理解,示例代码并不完整,更谈不上严谨若需要实际使用的demo,请直接查看整理后的代码,完整demo会传到github或码云1.介绍shiro是Apache下的一

2020-08-24 18:38:48 131

原创 【redis】生产者/消费者模式与订阅/发布模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言设想一个场景:你和你女朋友(假设有)打算出门,你问你女朋友打扮好了没,她说还没。于是过了五分钟,你再去问,她说还没。再过五分钟,你又问,她说再等会儿再过五分钟,你又问,她说烦不烦一直问,多等会能咋了??。。。。2000 years later,她准备好了,你已经准备打开网抑云了其实解决方案很简单,你跟她说准备好了喊你,而你做好随时被喊的准备即可设想如下模型:消费者A.

2020-08-24 18:30:16 150

原创 【SpirngBoot组件(4)】Redis集成

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言通常数据存储在两个位置:数据库&缓存.然而对于使用频率较高的数据,频繁请求数据库的代价过于昂贵,而自带的缓存机制又过于简陋,这时候第三方服务redis就出现了。redis完美解决了这些问题,能够快速的进行数据存取,可以将高频率的数据存于redis,不用再去麻烦数据库了,同时还完美契合了消息队列的实现方案。因而在大小项目中redis都成为了一个必要的组件。1.介绍r.

2020-08-24 18:28:46 29

原创 【SpirngBoot组件(3)】全局异常捕获

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言在未进行全局捕获的情况下,异常有两种处理结果主动try…catch捕获,对每种情况进行针对性处理。缺点如下:代码冗长,需要考虑各种各样的情况,无端增加工作量;人非完人,不可能考虑完整所有情况,有部分情况甚至无从捕获被动处理,不捕获,异常信息最终将会被直接打印到前端。缺点如下:正常用户根本看不懂异常信息,大量的异常信息对于用户而言跟乱码无异异常信息会打印出后端的信.

2020-08-24 18:27:50 67

原创 【SpirngBoot组件(2)】统一返回结果格式与自定义异常

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言统一的返回结果格式是项目所必须的组件,应在搭建项目前就定好格式,前端与后端都按照该约定进行数据的组装和解析自定义异常则是为了统一化处理各种异常情况,诸如密码错误、用户不存在此类,若都分别处理,则代码过于冗长,且不易集中处理(配合全局异常捕获)1.介绍统一返回结果通常需要至少三个参数:返回码、返回信息、返回数据,其余参数请自行追加统一异常通常继承自RuntimeExceptio.

2020-08-24 18:26:32 40

原创 【SpirngBoot组件(1)】Swagger集成

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言使用Swagger可以方便快捷的查看和调试接口,而不再需要借助其他第三方工具(如postman),更不需要在茫茫代码中寻找接口,其相关注解也一定程度上提高了代码可读性。因此,swagger几乎已经算的上是一个项目的必要组件了。1.介绍1.1.Swagger、Spring、SpringFoxSwagger是一个流行的API框架,对整个API开发周期提供解决方案,包括设计、编码.

2020-08-24 18:25:30 71

原创 【SQL笔记】基础(一)

【SQL笔记】基础(一)个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言SQL学习中的笔记,重点为4.2和5,题长不看的请直接空降1.基础知识增、删、改、查、连表、索引,新手教程一大堆,不多做叙述,菜鸟教程啥都有。。。2.书写规范表名:应有意义,使用小写英文、数字和下划线组成Linux对大小写敏感,故方便起见,推荐统一表名的英文全部小写注释:单行注释使用--(注意有个空格)或者#标记行首,多行注释使用/*

2020-08-24 18:22:38 45

原创 【Layui】laydate可能无法正常使用的原因

【Layui】laydate可能无法正常使用的原因1.重复引用laydate.js导致同一个页面重复引用两次laydate.js将导致render后依旧无法正常使用, 点击目标也不会有弹窗实际情况项目中使用对div进行load()的方式动态加载子页面, 父页面中已统一引用过一次laydate.js, 但在某个子页面中再次引用了laydate.js,致使该子页面无法正常使用laydat...

2019-12-06 10:13:42 797 4

空空如也

(kotlin初学者)广播接收器收不到正确的的context

发表于 2019-04-17 最后回复 2019-04-20

空空如也

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

TA关注的人 TA的粉丝

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