<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[javabcdef的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/javabcdef</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; javabcdef]]></copyright><item><title><![CDATA[二分法查找+Master定理]]></title><link>https://blog.youkuaiyun.com/javabcdef/article/details/102529337</link><guid>https://blog.youkuaiyun.com/javabcdef/article/details/102529337</guid><author>javabcdef</author><pubDate>Sun, 13 Oct 2019 08:32:42 +0800</pubDate><description><![CDATA[二分法：binarysearch

二分法查找适用于数据量较大时，但是数据需要先排好顺序。主要思想是：（设查找的数组区间为array[low, high]）

确定该区间的中间位置K（2）将查找的值T与array[k]比较。若相等，查找成功返回此位置；否则确定新的查找区域，继续二分查找。

区域确定如下：a.array[k]&gt;T 由数组的有序性可知array[k,k+1,……,high]&...]]></description><category></category></item><item><title><![CDATA[空间复杂度-简单易懂]]></title><link>https://blog.youkuaiyun.com/javabcdef/article/details/102511990</link><guid>https://blog.youkuaiyun.com/javabcdef/article/details/102511990</guid><author>javabcdef</author><pubDate>Fri, 11 Oct 2019 23:09:17 +0800</pubDate><description><![CDATA[空间复杂度

概念：

 空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的量度，记做S(n)=O(f(n))。

比如直接插入排序的时间复杂度是O(n^2),空间复杂度是O(1) 。而一般的递归算法就要有O(n)的空间复杂度了，因为每次递归都要存储返回信息。

一个算法的优劣主要从算法的执行时间和所需要占用的存储空间两个方面衡量。

详细量度：

...]]></description><category></category></item><item><title><![CDATA[时间复杂度-简单易懂]]></title><link>https://blog.youkuaiyun.com/javabcdef/article/details/102511550</link><guid>https://blog.youkuaiyun.com/javabcdef/article/details/102511550</guid><author>javabcdef</author><pubDate>Fri, 11 Oct 2019 22:33:54 +0800</pubDate><description><![CDATA[时间复杂度

概念：

1、时间复杂度&amp;渐进时间复杂度

 一个是时间复杂度，一个是渐近时间复杂度。前者是某个算法的时间耗费，它是该算法所求解问题规模n的函数，而后者是指当问题规模趋向无穷大时，该算法时间复杂度的数量级。

当我们评价一个算法的时间性能时，主要标准就是算法的渐近时间复杂度

2、频度

一个算法中的语句执行次数称为语句频度或时间频度，记为T（n）

3、n

n为问题...]]></description><category></category></item><item><title><![CDATA[RxJava预热，java interface review]]></title><link>https://blog.youkuaiyun.com/javabcdef/article/details/102387805</link><guid>https://blog.youkuaiyun.com/javabcdef/article/details/102387805</guid><author>javabcdef</author><pubDate>Tue, 08 Oct 2019 15:06:38 +0800</pubDate><description><![CDATA[basic

1、非抽象类implements接口以后，必须要实现，而抽象类则不用

2、接口可以实现多继承

3、接口的隐式信息有

  接口方法： public abstract

  接口变量： public static final

4、接口里面允许有静态代码块和静态方法（jdk1.8以后），抽象类里面也可以有

5、类在实现接口的方法时，不能抛出强制性异常，只...]]></description><category></category></item><item><title><![CDATA[zuul | review]]></title><link>https://blog.youkuaiyun.com/javabcdef/article/details/101562404</link><guid>https://blog.youkuaiyun.com/javabcdef/article/details/101562404</guid><author>javabcdef</author><pubDate>Fri, 27 Sep 2019 21:22:12 +0800</pubDate><description><![CDATA[zuul

对zuul进行一个简单的回顾

zuul是什么？

zuul是一个微服务网关，其与Nginx可以有很多时候有相同的应用场景

如果不用网关，的确会存在不少问题：

比如有：

 1、客户端会多次请求不同的微服务，明显增加客户端的复杂性

 2、存在跨域请求

 3、认证问题，难道每个服务都要认证？

 4、难以重构：如果客户端直接面向微服务，那么重构起来很麻烦
...]]></description><category></category></item><item><title><![CDATA[策略模式-STRATEGY]]></title><link>https://blog.youkuaiyun.com/javabcdef/article/details/101548936</link><guid>https://blog.youkuaiyun.com/javabcdef/article/details/101548936</guid><author>javabcdef</author><pubDate>Fri, 27 Sep 2019 17:51:11 +0800</pubDate><description><![CDATA[策略模式STRATEGY

分别封装行为接口，实现算法族，父类里面放行为接口，在子类里具体设定行为对象。

原则就是：

分离变化接口，封装接口，基于接口编程各种功能

如果我们不使用策略模式

使用extends的方式，在父类里面做2种行为：

①只写方法不实现

②写方法并实现

子类继承父类以后，如果需要手动实现的，有一些是重复的，有些则是不重复的，细粒度偏高，这样写起来效果不好

而写了方...]]></description><category></category></item><item><title><![CDATA[对象的mutable/immutable以及String基础]]></title><link>https://blog.youkuaiyun.com/javabcdef/article/details/101101336</link><guid>https://blog.youkuaiyun.com/javabcdef/article/details/101101336</guid><author>javabcdef</author><pubDate>Sat, 21 Sep 2019 11:25:43 +0800</pubDate><description><![CDATA[对象的可变和不可变

可变对象：

 对象进行操作后，该对象内部是发生变化的 可以这样认为，操作直接作用于该对象，并使该对象发生了变化 比如list，对list进行操作，list内部的内容是会变化的

不可变对象：

 对象进行操作后，该对象内部是不发生变化的 可以这样认为，操作该对象之前先将其复制一份，然后对该复制的对象进行操作，原来的对象不发生变化 比如str，对str进行操作...]]></description><category></category></item><item><title><![CDATA[命令模式-COMMAND]]></title><link>https://blog.youkuaiyun.com/javabcdef/article/details/101070495</link><guid>https://blog.youkuaiyun.com/javabcdef/article/details/101070495</guid><author>javabcdef</author><pubDate>Fri, 20 Sep 2019 17:48:52 +0800</pubDate><description><![CDATA[命令模式

说一个二元模型

consumer调用provider

providerA--&gt;通过条件判断A

providerB--&gt;通过条件判断B

providerC--&gt;通过条件判断C

现在consumer想使用providerA|B|C这三个生产者的方法

普通模式：

不使用命令模式的情况下

我们的consumer通过判断索引来找，我们要使用哪个provider...]]></description><category></category></item><item><title><![CDATA[Hystrix review]]></title><link>https://blog.youkuaiyun.com/javabcdef/article/details/101070285</link><guid>https://blog.youkuaiyun.com/javabcdef/article/details/101070285</guid><author>javabcdef</author><pubDate>Fri, 20 Sep 2019 17:45:51 +0800</pubDate><description><![CDATA[Hystrix

断路器，实现快速失败，提供了很多失败策略，来防止雪崩，并且提供了监控

1.断路器注解

这里在启动类加@EnableCircuitBreaker或者@EnableHystrix都可以

2.@HystrixCommand

其是作用在consumer上的，在你的调用provider的controller方法上加上该注解

@HystrixCommand(fallbackMeth...]]></description><category></category></item><item><title><![CDATA[Eureka|Ribbon|Actuator-review]]></title><link>https://blog.youkuaiyun.com/javabcdef/article/details/101027723</link><guid>https://blog.youkuaiyun.com/javabcdef/article/details/101027723</guid><author>javabcdef</author><pubDate>Thu, 19 Sep 2019 16:50:06 +0800</pubDate><description><![CDATA[Actuator

1.添加依赖

&lt;dependency&gt;

&lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;

&lt;artifactId&gt;spring-boot-starter-actuator&lt;/artifactId&gt;

&lt;/dependency&gt;

2.端点检测(en...]]></description><category></category></item><item><title><![CDATA[使用docker安装nginx]]></title><link>https://blog.youkuaiyun.com/javabcdef/article/details/100894011</link><guid>https://blog.youkuaiyun.com/javabcdef/article/details/100894011</guid><author>javabcdef</author><pubDate>Mon, 16 Sep 2019 17:28:21 +0800</pubDate><description><![CDATA[说明：

我们在run docker的时候，把其：

①log文件

②nginx配置文件

③html文件夹

把以上3个全部使用数据卷技术，copy到主机上

如果你不知道docker的nginx的你想要的文件，你可以使用exec -it CONTAINNERID /bin/bash进入已运行的容器内部查看

步骤：

1、在home目录或者别的你想的目录，创建好你即将copy的文件夹

2、...]]></description><category></category></item><item><title><![CDATA[Nginx负载均衡策略]]></title><link>https://blog.youkuaiyun.com/javabcdef/article/details/100163029</link><guid>https://blog.youkuaiyun.com/javabcdef/article/details/100163029</guid><author>javabcdef</author><pubDate>Fri, 30 Aug 2019 17:30:09 +0800</pubDate><description><![CDATA[Nginx负载均衡

官方doc

1.Nginx提供了3种负载均衡策略：

 1)、round-robin轮询=&gt;采用轮询机制

  2)、least-connected=&gt;下次的请求总会分配给连接数最小的server

  3)、 ip-hash=&gt;根据客户端的ip在较长的一段时间内为客户端分配固定的后台server

Nginx默认的负载均衡策略是round...]]></description><category></category></item><item><title><![CDATA[常用的docker命令]]></title><link>https://blog.youkuaiyun.com/javabcdef/article/details/100151476</link><guid>https://blog.youkuaiyun.com/javabcdef/article/details/100151476</guid><author>javabcdef</author><pubDate>Fri, 30 Aug 2019 10:11:44 +0800</pubDate><description><![CDATA[Docker常用命令

ref：https://www.runoob.com/docker/docker-command-manual.html

容器生命周期管理

run：dockerrun --namemyXXX（容器别名） XXX（镜像名/镜像ID） -d -p 8080:8080


	使容器在后台运行：-d
	
	
	运行一个名为XXX的容器：dockerrun XXX
	
	
...]]></description><category></category></item><item><title><![CDATA[65-springboot_安全和分布式的一些简单内容]]></title><link>https://blog.youkuaiyun.com/javabcdef/article/details/100118487</link><guid>https://blog.youkuaiyun.com/javabcdef/article/details/100118487</guid><author>javabcdef</author><pubDate>Wed, 28 Aug 2019 14:25:51 +0800</pubDate><description><![CDATA[1.Spring-security



这里同shiro。。但是demo里面也没有前后端分离，所以这里不深究了

2.dubbo



RPC框架的一个基本图，之后还是尽量以spring-boot为准，考虑到生态

2.zookeeper

zookeeper有3个端口：client端口，follower集群端口，election选举端口；我们在linux只安装zookeeper，dubbo是整...]]></description><category></category></item><item><title><![CDATA[64-springboot_task&简单的es]]></title><link>https://blog.youkuaiyun.com/javabcdef/article/details/100105450</link><guid>https://blog.youkuaiyun.com/javabcdef/article/details/100105450</guid><author>javabcdef</author><pubDate>Tue, 27 Aug 2019 17:54:07 +0800</pubDate><description><![CDATA[Springboot-ElasticSearch

1.检索ElasticSearch

分布式搜索服务

这里也是作为一个服务存在的，不是嵌入到springboot里面的

如果是在linux上下载完ElasticSearch以后，启动的话会占用2个G的内存空间



这里的9300是用于分布式节点访问端口

在这里可以改写ES的内存，这里的命令就不说了，有点像之前启动springboot的各种...]]></description><category></category></item><item><title><![CDATA[63-springboot_RabbitMQ]]></title><link>https://blog.youkuaiyun.com/javabcdef/article/details/100099506</link><guid>https://blog.youkuaiyun.com/javabcdef/article/details/100099506</guid><author>javabcdef</author><pubDate>Tue, 27 Aug 2019 14:58:57 +0800</pubDate><description><![CDATA[Springboot-消息中间件

1.消息队列的模式：

p2p：

 点对点，消息发送者发送消息，消息代理将其放入一个队列中，消息接收者从队列中获取消息内容，消息读取后被移出队列，消息只有一个唯一的接受者和发送者，但并不是说只有一个接收者

 这里的意思是：可以有很多消息的"等待接收者"，但是这个消息最终只有一个接受者拿到，这个接受者拿到了以后别的"接收者"就拿不到了

发布订阅式...]]></description><category></category></item><item><title><![CDATA[61-springboot_DAO]]></title><link>https://blog.youkuaiyun.com/javabcdef/article/details/100082790</link><guid>https://blog.youkuaiyun.com/javabcdef/article/details/100082790</guid><author>javabcdef</author><pubDate>Mon, 26 Aug 2019 17:49:01 +0800</pubDate><description><![CDATA[关于springboot：mybatis，jdbc，spring DATA jpa相关

1.springboot

默认是采用了SpringDATA来进行数据处理

jdbc的springboot整合数据源暂时不了解，直接看后面的重点，整个mybatis、jpa的

2.druid

在properties文件里面，写的一些配置默认是跟java的配置类的属性有映射关系的

但是如果写一些关于最...]]></description><category></category></item><item><title><![CDATA[60-springboot_Cache]]></title><link>https://blog.youkuaiyun.com/javabcdef/article/details/100082677</link><guid>https://blog.youkuaiyun.com/javabcdef/article/details/100082677</guid><author>javabcdef</author><pubDate>Mon, 26 Aug 2019 17:43:48 +0800</pubDate><description><![CDATA[Springboot-缓存

1.JSR107规范



这些具体的核心接口整合难度有点大，之后整合还是使用Spring缓存抽象

2.交互流程



3.spring缓存抽象

spring给提供的一些缓存技术



4.使用缓存技术

①开启基于注解的缓存@EnableCaching

②@Cacheable，方法级别，直接将方法的返回结果进行缓存

属性：

cacheName/value，...]]></description><category></category></item><item><title><![CDATA[59-springboot_docker-5]]></title><link>https://blog.youkuaiyun.com/javabcdef/article/details/100038685</link><guid>https://blog.youkuaiyun.com/javabcdef/article/details/100038685</guid><author>javabcdef</author><pubDate>Fri, 23 Aug 2019 15:12:47 +0800</pubDate><description><![CDATA[关于docker的一些基本操作在这里整理一下

1.应用容器引擎



各个容器都是隔离机制

docker的核心就是，支持把一个软件编译成一个镜像，然后这个镜像可以直接用docker在系统里面形成一个容器，而这个容器的启动是非常快速的

2.docker核心概念

①docker镜像：docker镜像是用于创建docker容器的模板

②docker容器：独立运行的一个或者一组的应用

③doc...]]></description><category></category></item><item><title><![CDATA[58-springboot-4]]></title><link>https://blog.youkuaiyun.com/javabcdef/article/details/100020496</link><guid>https://blog.youkuaiyun.com/javabcdef/article/details/100020496</guid><author>javabcdef</author><pubDate>Thu, 22 Aug 2019 17:52:36 +0800</pubDate><description><![CDATA[1.回顾

技术栈，你需要用到哪些技术栈，在创建springboot的时候，直接勾选就可以了

配置原理，还是跟之前一样，把.properties文件给某个配置bean赋值，然后就可以用这些配置bean去搞事情了

2.springboot对静态资源的映射规则

所有/webjars下的请求都去META-INF/resources/webjars/下找资源，webjars让我们可以用jar包的方式...]]></description><category></category></item></channel></rss>