- 博客(29)
- 资源 (14)
- 问答 (1)
- 收藏
- 关注
原创 使用docker搭建测试环境
使用docker搭建测试环境:日常开发中经常需要用到各种软件数据库等,在此使用docker来搭建,省时省力,还方便。在此主要介绍使用docker来搭建mysql、redis、mongodb、es。同时推荐一款简洁好用的docker可视化工具 Portainer。可视化工具推荐参考链接:Docker可视化工具Portainer在此推荐一个docker的可视化软件,可以方便查看docker的镜像、容器等信息。使用时截图如下:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
2020-07-22 14:54:54 3248 3
原创 常见的跨域问题解决方案
常见的跨域问题解决方案:什么是跨域:跨域是指一个域下的文档或脚本师试图请求另一个域下的资源,这里的跨域是广义的。其实我们通常说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景。什么是同源策略:同源策略(SOP - Same Origin Policy)是一种约定,由NetSpace公司1995年引入浏览器,他是浏览器最核心也是最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS,CSRF等攻击,所谓的同源是指: 协议+ 域名+ 端口,三者相同,即便两个不同的域名指向一个IP地址,也
2020-07-09 10:30:47 543
原创 单链表倒序
单链表倒序题目来源牛客网题目描述输入一个链表,按链表从尾到头的顺序返回一个ArrayList。public class ListNode { int val; ListNode next = null; public ListNode(int val) { this.val = val; } public void setNext(ListNode node) { this.next = node; }}
2020-07-04 16:39:44 415
原创 二维数组中的查找
二维数组中的查找题目来源牛客网题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路解法一:判断一个二维数组中是否存在某一个元素,直接遍历:public class Solution { public boolean Find(int target, int [][] array) { for(int
2020-07-04 15:26:32 197
原创 数组中重复的数字
数组中重复的数字:题目来源牛客网题目描述:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。解题思路:第一种解法:判断数组中元素是否重复?首先的想法就是获取数组第一个位置的元素,然后从第二个开始遍历,判断后续的数组中是否有元素与当前的元素一致… 然后一致循环下去:时间复杂度
2020-07-04 15:22:36 1621
原创 SpringBoot 集成 CKEditor4 完整实例
SpringBoot 集成 CKEditor4 完整实例:快速开始:首先我们需要新建一个SpringBoot的项目,将CKEditor4集成进来。下载CKEditor 标准版即可将其解压放在SpringBoot项目的static目录下:引入官方提供的例子: (修改正确的js地址)edit.html:<!DOCTYPE html><html la...
2019-10-16 16:35:15 2616 4
转载 windows10 安装与配置weblogic
一、WebLogic的介绍 WebLogic是美国bea公司出品的一个application server,确切的说是一个基于Javaee架构的中间件,纯java开发的,最新版本WebLogic Server 9.0是迄今为止发布的最卓越的BEA应用服务器。BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功...
2019-09-04 10:29:03 3378
转载 单链表的反转
转载自 单链表的反转单链表的反转是常见的面试题目。本文总结了2种方法。1 定义单链表node的数据结构定义如下:class ListNode { int val; ListNode next; ListNode(int x) { val = x; next = null; }} 2 方法1:就地反转法2...
2019-02-15 14:57:37 160
转载 微服务接口限流的设计与思考
当前文章来源于 掘金 觉得讲得相对不错。链接如下 微服务接口限流的设计与思考说明微服务拆分之后,系统之间的调用关系错综复杂,平台的整体复杂熵升高,出错的概率、debug 问题的难度都高了好几个数量级。所以,服务治理便成了微服务的一个技术重点。服务治理本身的概念比较大,包括鉴权、限流、降级、熔断、监控告警等等,本文聚焦于限流,根据笔者的实战经验,分享一些对微服务接口限流的思考。本文试图...
2019-02-14 10:16:14 391
转载 数据结构与算法 - 图论
数据结构与算法 - 图论当前文章来源于 掘金 觉得讲得相对不错。链接如下:数据结构与算法 - 图论基本概念:图论〔Graph Theory〕是数学的一个分支。它以图为研究对象。图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间具有这种关系。图论是一种表示 "多对多" 的关系图是由...
2019-02-13 17:41:04 734 1
转载 数据结构中关于树的一切(java版)
数据结构中关于树的一切(java版)当前文章来源于 掘金 觉得讲得相对不错。链接如下:数据结构中关于树的一切当你第一次学习编码时,大部分人都是将数组作为主要数据结构来学习。之后,你将会学习到哈希表。如果你是计算机专业的,你肯定需要选修一门数据结构的课程。上课时,你又会学习到链表,队列和栈等数据结构。这些都被统称为线性的数据结构,因为它们在逻辑上都有起点和终点。当你开始学习树和图的数据...
2019-02-13 16:17:33 229 1
原创 数据结构与算法(java)
数据结构与算法(java)当前文章来源于掘金觉得讲得相对不错。链接如下:数据结构与算法简述在编程过程中,通常会遇到的一个问题就是,性能瓶颈。很多时候考虑的都是怎么去做横向扩展,但偏偏忽略掉了最基本的问题就是系统是否真的已经达到了瓶颈?性能瓶颈通常的表象是资源消耗过多外部处理系统的性能不足;或者资源消耗不多但程序的响应速度却仍达不到要求。而调优的方式就是 寻找过度消耗资源的代...
2019-02-13 15:24:26 3955 4
转载 从磁盘结构到B+树
从磁盘结构到B+树本篇文章来自掘金,觉得讲得相对不错。链接如下:从磁盘结构到B+树目录disk结构disk是如何存储数据(特值定数据库数据)的什么是索引什么是多级索引m-way搜索树B树:m-way搜索树 + 规则B树中的插入操作B+树disk结构简单来说:按照时钟方向分,disk由很多个sector组成,编号为0-N。按照从外到内分,disk又...
2019-02-13 10:43:10 628
原创 Spring 之 SpringBean的生命周期
参考文章:Spring 的生命周期Spring作为当前Java最流行、最强大的轻量级框架,受到了程序员的热烈欢迎。准确的了解Spring Bean的生命周期是非常必要的。我们通常使用ApplicationContext作为Spring容器。这里,我们讲的也是 ApplicationContext中Bean的生命周期。生命周期流程图:Spring Bean的完整生命周期从创建Spring...
2019-01-30 16:31:06 160
原创 策略模式
定义了一个算法族,将他们分别封装起来,让他们之间可以互相替换,此模式让算法的变化,独立于使用算法的客户。思考一个场景:有一个鸭子的接口,鸭子可以叫 飞 将鸭子定义为一个接口,叫 和 飞成为其中的两个方法。后续出来了 具体的实现类:红鸭子 白鸭子 他们除了外观不同 叫 和 飞是相同的。橡皮鸭子:会叫 但是不会飞 而且叫声与 红鸭子 白鸭子 不同。丑小鸭:会叫 2...
2019-01-25 17:40:54 100
原创 观察者模式
观察者模式:观察者模式使用的场景:订阅者 + 出版者 = 观察者模式观察者模式提供了一种对象设计,让观察者和主题之间松耦合。在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖他的对象就会收到通知 ,并自动更新。有两种对象,双方之间是一对多的关系,一方做出改变时需要通知其他方做改动。使用了观察者模式之后 需要被动做出变化的一方不需要一直查看主题方是否有变化。使用时...
2019-01-25 17:25:13 93
转载 SpringBoot源码解析
参考链接 :https://yq.aliyun.com/articles/613386#comment 云栖社区SpringBoot应用基础结构我们每创建一个springboot应用就会发现,其目录结构中都会有一个以应用名为首的Application类(下文中都直接称为Application类),而其他包都是在这个类的同级或子级下面,结构如图:Application类作为应用的...
2019-01-25 16:58:23 187
原创 重构改善既有代码的设计--读书笔记 1
重构是在不改变软件可观察行为的前提下改善其内部结构。在软件的设计前期过度的追求设计模式常常导致过度工程,单凭对完美的追求,无法写出实用的代码。保持代码易读、易修改的关键就是重构。重构具有风险,他必须修改运作中的程序,这可能会引入一些不易察觉的错误。设计模式为重构提供了目标。从一个案例中入手。按照书中的例子,我在这里又复制了一遍:案例:是一个影片出租店的项目 ,需要计算每...
2019-01-24 15:29:53 204
原创 Mysql使用 之 开发篇
Mysql中关于外键的选择?外键的介绍:Mysql支持外键索引的存储引擎只有Innodb,在创建外键的时候,要求父表必须有对应的索引,子表在创建时也会自动创建对应的索引。在创建索引时可以指定在删除更新父表时对子表进行相关的操作,包括RESTRICT、 CASCADE、SET NULL、NO ACTION。 其中RESTRICT和NO ACTION相同,限制在子表有关联业务的情况下,父表不能...
2019-01-24 10:54:05 171
原创 微服务实战 之 声明式服务调用 Spring Cloud Feign
Spring Cloud FeignSpring Cloud Ribbon 和 Spring Cloud Hystrix 是微服务架构中实现客户端负载均衡的调用以及服务容错保护机制的基础组件。在实际的使用中,他们通常是同时出现的,那么时候有一种框架将他们整合在一起呢?Spring Cloud Feign就是一个这样的工具。他是基于Netflix Feign整合实现的,除了提供这两个的功能之外,...
2019-01-23 18:03:47 257
原创 微服务实战 之 服务容错保护 Spring Cloud Hystrix
Spring Cloud Hystrix整体描述:在微服务架构中,我们将服务拆分成了许多独立的单元,这些服务部署在不同的地方,服务之间通过服务注册,服务消费互相调用。但是在服务的调用过程当中可能由于网络的原因或者是被调用方自身的故障出现响应延迟的情况。而这种情况也会导致调用方出现响应延迟,而此时如果请求不断,会造成请求的积压 从而导致服务瘫痪。由于存在着许多的服务单元,单一的服务出现问...
2019-01-23 14:52:32 288 1
原创 微服务实战 之 服务消费 Spring Cloud Ribbon
客户端的负载均衡 spring cloud ribbonSpring Cloud Ribbon 是一个基于HTTP 和 TCP客户端的负载均衡工具。服务端的调用 api网关的请求转发都是基于ribbon来实现的。 Feign也是基于ribbon实现的。客户端的负载均衡:负载均衡是一个对系统的高可用,网络压力的缓解和处理能力扩容的重要手段之一,我们通常所说的负载均衡是服务端的负载均衡,其...
2019-01-22 18:20:21 192
原创 微服务实战 之 服务治理 Spring Cloud Eureka
服务治理 Spring Cloud Eureka服务治理:是微服务架构中最为基础和重要的一个模块。主要用来实现各个模块实例的自动化注册和发现。 为什么需要使用服务治理的框架?在最初构建微服务应用时可能服务并不多,我们可以通过简单的配置来完成服务的调用。例如,有两个服务 A,BA需要调用B来实现一些业务的功能,为了实现服务B的高可用,可以通过集群的方式来实现,测试据需要维护服务B...
2019-01-22 16:55:22 387 2
原创 微服务实战 之 基础部分
什么是微服务?简单来说:微服务是一种设计风格,它是将原来的单体系统进行拆分,这些小型的服务运行在相相互独立的进程中,他们之间通过HTTP 或者 restful API进行通信协作。被拆分成的每一个小部分的服务应用都围绕着整个系统中的耦合度较高的部分来进行构建,而且每一个微服务都维护者自己的数据存储,业务开发,自动化测试案例以及独立的部署机制。由于存在着轻量级的通信协议做基础,各个部分可以使...
2019-01-22 16:25:45 248 3
原创 代理模式介绍
什么叫代理?代理模式的英文叫做Proxy,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用 。 代理分为静态代理和动态代理:静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。 动态代理:在程序运行时,运用反...
2018-12-12 13:53:42 237 1
原创 ReentrantLock的认识 及与synchronized的比较
今天在看java并发编程一书时,看到关于显示锁的介绍,受益良多,在此做一个总结整理。首先是Lock接口中的方法:与内置的加锁机制不同的是Lock的加锁和解锁都是显示的。ReentrantLock实现了Lock,并提供了与synchronized相同的可重入性,互斥性和内存可见性。1.ReentrantLock的使用方法:Lock lock = new ReentrantLoc...
2018-11-30 13:08:25 179
原创 使用线程池来创建线程
1.如何使用线程池来创建线程?java中提供了一个静态工厂方法来创建不同的线程池: Executors通过静态方法创建出的线程都实现了ExecutorService接口。常用的方法包括:newFixedThreadPool(int threads); 创建一个固定数目的线程池newCachedThreadPool(); 创建一个可缓存的线程池,调用execute方法将重用以前...
2018-11-29 14:09:44 17694
原创 线程的基本介绍 二
1.线程的几种状态: 在前面介绍了线程的几种创建方式,现在介绍一下线程的几种状态: 新建、就绪、运行、阻塞、死亡。线程状态介绍新建状态:线程被创建出来,还没有执行start() 方法开始执行,此时处于新建状态。就绪状态:线程并不会自动执行过,当调用线程的start() 方法之后,线程进入就绪状态。处于就续状态的方法并不一定会执行run() 方法,需要和其他的线程竞争CPU...
2018-11-29 13:42:26 145
原创 线程的基本介绍 一
1.并发简史: 线程和进程之间的关系以及为什么要使用线程。 在早期的计算器系统中不存在操作系统,他从头到尾只能执行一个程序,这个程序能够访问计算机中的所有资源,在这种环境中,不仅程序很难编写,而且极大的造成资源的浪费。操作系统的出现使得可以运行多个程序在上面,这些程序运行在不同的进程中上,操作系统来管理分配给这些进程运行的资源,内存、文件句柄、安全证书等。不同的进程之间可以通过一...
2018-11-29 11:02:46 848
RabbitMQ+erlang安装包
2018-10-23
idea创建maven Servlet3.0工具
2018-10-08
server-jre-8u162 linux64位
2018-02-24
springMVC中controller层有许多重复性的代码,能整成继承的吗?
2017-04-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人