自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 单向队列和循环队列(c)

关于队列队列可分为顺序表队列 也可以为链式队列,这里小编为了便于理解,是用顺序表做队列,队列是一种先进先出的数据结构,它的特性是只能在一段进行入队(添加数据操作 对头),在另一端进行出对(删除,读取操作 队尾); 分别设三个属性 最大容量(capaticy),头指针(head) 尾指针tail, 队列的长度为tail-head 这幅图是模拟了一个队列的四种状态:,因此,可以看到 队列满的情...

2019-04-20 17:14:02 1123

原创 动态规划算法

概念理解动态规划是从小问题着手,逐步解决大问题,每次决策依赖于当前的状态 进而引起状态的转移,把一个问题拆分成子问题的一种思想,利用二维的思想在解决生活中的各种问题。举个例子:假设你明天要去户外,你有一个背包,容量只有4千克。你可盗窃的东西有三件:为了让你的背包装的东西价值最高,你会怎样选择:最简单的算法是,尝试各种商品的组合,并找出价值最高的组合。这样可行,但是非常慢,试想一下,3...

2019-04-15 00:54:38 241

原创 tcp状态转换

参考链接:https://blog.csdn.net/wenqian1991/article/details/39667131https://blog.csdn.net/wenqian1991/article/details/40110703

2019-04-07 15:35:06 214

翻译 迪克斯特拉算法(最短路径)理解及代码实现(java)

介绍迪克斯特拉算法是基于有向图(无负权)有负权边的图结构不适用这种算法,因为有负权边会导致这种算法不管用如图: 求a1定点到其他定点的最短距离对于每一个结点 都遵循运算法则:找出最便宜节点,(从a1结点出发,到其邻居最小开销的结点)。更新该节点邻居的开销。重复这个过程,直到对每个结点都这样做了。计算最终路径a,初始化 distance 数组,初始化时,我们对能直接到达的节点附上权...

2019-04-05 20:31:11 2516

原创 spring beanFactory继承关系图以及说明

在springbean容器当中 xmlbeanFactory继承自DefaultListableBeanFactory,而DefaultListableBeanFactory是整个bean加载的核心部分,是spring加载并注册bean的默认实现 XmlBeanFactory中使用了自定义的XmlBeanDefinationReader 实现了个性化的BeanDefinationReader的读...

2019-03-10 21:50:41 2515

原创 BIO,NIO 以及netty

BIO NIO AIO三者的技术实现以及之间的区别bio 阻塞io处理 在程序开发里面,java最小的处理单元就是线程,也就是说每一个线程可以进行IO的处理,在处理之中 该线程无法进行其他任何操作,tcp程序实现代码的核心,Echo程序模型,通过网络实现基础的echo操作,多线程是不可能无限制创造的,如果产生的线程过多,那么直接问题在于,处理性能降低,响应速度变慢,需要去区分操作系统的线...

2019-01-24 00:34:58 314

原创 jvm性能调优并用Jmeter测试

java内存结构方法区在java8里面改成永久区堆内存的构成eden 伊甸园survivor 幸存者当我们new对象的时候 特别大的对象 放入老年代 ,其他普通的对象 放入新生代,内部使用GC 垃圾回收器 来进行收集和整理的,如果经历过第一次GC之后,eden当中的某个对象并没有被回收(因为还有一个引用老指向它),那么此时该没有被回收对象就会从eden区进入其中的一个survivor...

2019-01-20 20:46:23 1425 1

原创 理解红黑树及代码实现

1.红黑树定义红黑树是一颗 红-黑的平衡二叉树,它具有二叉树的所有特性,是一颗自平衡的排序二叉树.(树中任何节点值都大于左子节点的值,而且都小于右子节点的值),其检索效率高,它是一颗空树或它的左右两个子树高度差的绝对值不超过1,并且左右子树都是平衡二叉树.最坏的情况下 是一边倒的情况在这种情况下,如果我们要在树中查找g节点,就需要顺着根节点往下找,时间复杂度约为O(n)常数级。那么红黑...

2019-01-19 01:29:50 7969 9

原创 spring5日志体系

spring4日志底层使用的是log4j。spring5的日志默认使用的是jul(java.util.logging)主流的log技术名词1,log4j可以不需要依赖第三方技术,直接记录日志2,jcljcl它不直接记录日志,而是通过第三方记录日志(jul)如果使用jcl记录日志,在没有log4j的情况下,是用log4j 如果有log4j 则使用log4jjcl common...

2019-01-17 00:39:14 1261

原创 mysql存储引擎 以及事务的隔离机制

mysql存储引擎主流的分为三种1 mysiam这种存储引擎分别使用三个问价来表述一张表 .frm文件表示格式文件(存放表结构).myd文件表示数据文件 表中的数据被存储在这个文件当中 .myi文件存储表当中的索引 同时支持压缩节省存储空间 还可以设置为只读 不支持事务2Innodb这种存储引擎是mysql默认的存储引擎,每个innodb表在数据库当中都已.frm文件表示,支持事务 ...

2019-01-16 20:05:55 172

原创 lamdba表达式方法 构造方法,函数式接口,默认方法 构造方法

在jdk8之前,一个方法能接受的参数都是变量,但是我们在传入变量的同时 也可以传入一个方法(动作),我们可能会想到匿名内部类如果一个接口需要 或者想被替换成一个lambda表达式,那么这个接口中,只能含有一个抽象方法,如果有多个抽象方法 就不能使用lambda表达式,加了静态方法和默认方法的接口并不影响这个接口成为一个函数是接口默认方法接口当中的默认方法一定要有实现静态方法...

2019-01-10 17:57:54 242

原创 JVM和JMM

jvmjvm内存结构是java虚拟机内部的内存划分方案。1)从图中可以看出 classloader类加载器,就是将class文件加载到内存,就是把描述类的元数据 以及信息加载到内存 并进行校验,初始化 并最终形成可被虚拟机使用的java类型,这就是java类加载器的作用2)RUNTIME AREA(运行时数据区) 就是我们常说的虚拟机管理的内存模型了。所写的程序都被加载到这里,之后才开始运...

2019-01-10 12:25:53 1336

原创 swaggerUI

根据官网说明,(Swagger UI allows anyone — be it your development team or your end consumers — to visualize and interact with the API’s resources without having any of the implementation logic in place. It’s ...

2019-01-07 23:26:37 156

原创 RabbitMq作为消息中间件(三种模式)

先说说安装rabbit的坑1),由于rabbit是依赖erlang开发包的,所以小编一开始安装的erlang是centOs6机器上的,小编安装的是rabbitmq-server-3.7.9-1.el7.noarch.rpm这个版本,导致在安装的时候 由于erlang版本太低 安装的时候总是报 >= 19.3 的错误,这里记录一下踩过的坑首先,我们卸载掉旧版本的erlang命令:yum...

2019-01-04 00:57:11 1647

原创 springboot整合spring security和JSON WEB JOKEN(jwt)实现用户登陆拦截验证

概念Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。一般来说,Web 应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分。用户认证指的是验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来完成认证过程。用户授权指...

2019-01-02 22:21:20 1264

原创 0xml配置启动springmvc

springboot是由springmvc过渡过来的,现在用mvc方式模拟实现一个div的springboot项目,便于我们更好的理解springboot的本质准备工作1,新建一个父项目,再新建一个模块,在该模块中,我们来div我们自己的boot项目,打开idea File->new->project操作同上 不赘述 ,模块创建以后,在pom文件当中加入mvc三大件...

2018-12-31 00:26:52 343

原创 springAop当中一个神奇的注解

小编在研究springAop的过程中发现了一个有趣的事情,因此拿出来和大家分享探讨一下:1新建一个spring小项目,在pom当中引入spring springAop aspectj的相关jar包2这里我们一律采用注解javaBean配置同时加入@EnableAspectJAutoProxy注解 同时设置为cglib代理方式3.写好切面类4,我们简单写几个接口和一个实现类...

2018-12-30 15:45:22 139

原创 利用netty模拟分布式事务锁

1.分布式事务简介a,所谓分布式事务,是指的涉及多个数据库操作的事务,小编在开发中曾遇到过很多分布式事务的场景,今天我自己模拟了一个解决分布式事务的demo,希望和大家交流,并指出优缺点b,下面简单画一个图说明一下分布式事务的小例子c,图中简单描述了一个下订单的场景,用户下单首先会调用订单系统中下单,同时减库存,可能还有其他许多操作,如果下单顺利则不议论,如果下单失败,那么库存也应该失败 ...

2018-12-28 02:15:38 848 2

原创 spring学习-01编译spring5.0源码(亲测可用)

使用idea+gradle编译spring5.X源码@TOC使用idea+gradle编译spring5.X源码作为一个开发三年的技术小白,都没有编译一下spring源码,现在我尝试一下编译源码,并把编译过程中遇到的坑记录一下,希望能对很多像我一样的人起到参考作用版本工具:spring5.0.x,gradle4,9,jdk1.8_131,kotlin1.2.51,groovy2.4.15,I...

2018-12-25 23:10:38 3495 3

空空如也

空空如也

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

TA关注的人

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