<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lizhi_java</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lizhi_java]]></copyright><item><title><![CDATA[《mysql学习》-- mysql基本认识]]></title><link>https://blog.youkuaiyun.com/lizhi_java/article/details/69205481</link><guid>https://blog.youkuaiyun.com/lizhi_java/article/details/69205481</guid><author>lizhi_java</author><pubDate>Tue, 04 Apr 2017 20:50:49 +0800</pubDate><description><![CDATA[MySQLMySQL
MySQL基本认识
表结构
常用指令
数据类型
语句
mysql执行流程
MySQL基本认识
  mysql是单进程多线程，每个进程在电脑上能使用的内存最大是有限制的，32位系统mysql最大使用2.7g
表结构
  所有的表都由表结构数据和表数据组成 
  - MyISAM： 
    1. 由下面三个文件组成 
       .frm:表结构文件 
       .MYD:]]></description><category></category></item><item><title><![CDATA[《mysql学习》-- 事务]]></title><link>https://blog.youkuaiyun.com/lizhi_java/article/details/69204792</link><guid>https://blog.youkuaiyun.com/lizhi_java/article/details/69204792</guid><author>lizhi_java</author><pubDate>Tue, 04 Apr 2017 20:50:12 +0800</pubDate><description><![CDATA[mysql事务1、事务的特性ACID 
有效的减少io次数可以明显提高数据库性能，当不开启事务的事务，每执行一条语句都当做一个事务，都会发生一次io，如果开启事务，将一个事务中所有的sql执行会首先在内存中执行，然后事务提交后开启一次io根据事务日志同步到磁盘。事务日志参考:MySQL事务提交过程（一） 
1. 重做日志： 
2. 撤销日志： 
 事务日志可以帮助提高事务的效率，存储引擎在修改表的数]]></description><category></category></item><item><title><![CDATA[《mysql学习》-- 索引]]></title><link>https://blog.youkuaiyun.com/lizhi_java/article/details/69204055</link><guid>https://blog.youkuaiyun.com/lizhi_java/article/details/69204055</guid><author>lizhi_java</author><pubDate>Tue, 04 Apr 2017 20:49:29 +0800</pubDate><description><![CDATA[mysql参考：MySQL索引原理及慢查询优化​   理解MySQL——索引与优化mysql
索引
索引类型
从数据结构角度
从物理存储角度
从逻辑角度
什么样的字段不适合建索引
更新非常频繁的数据不适宜建索引建索引的几大原则
例子
索引
  索引是在存储引擎中实现的，而不是在mysql服务器层实现。每种存储引擎的索引都不一定完全相同，并不是所有的存储引擎都支持所有的索引类型。
  
  一次查询只]]></description><category></category></item><item><title><![CDATA[《mysql学习》-- mysql优化]]></title><link>https://blog.youkuaiyun.com/lizhi_java/article/details/69201222</link><guid>https://blog.youkuaiyun.com/lizhi_java/article/details/69201222</guid><author>lizhi_java</author><pubDate>Tue, 04 Apr 2017 20:44:23 +0800</pubDate><description><![CDATA[mysqlmysql
mysql 优化
sql语句优化
索引优化
数据库结构优化
存储引擎的选择
理解查询执行计划 explain
缓冲和缓存
锁优化锁策略
MySQL服务器优化
性能评估
MySQL优化内幕
sql语句优化
mysql 优化
  MySQL优化主要针对以下几方面的优化，从前往后，优先考虑。
sql语句优化
  sql语句的执行顺序 FROM、WHERE、GROUP BY、HAVIN]]></description><category></category></item><item><title><![CDATA[《mysql学习》-- explain执行计划]]></title><link>https://blog.youkuaiyun.com/lizhi_java/article/details/69200799</link><guid>https://blog.youkuaiyun.com/lizhi_java/article/details/69200799</guid><author>lizhi_java</author><pubDate>Tue, 04 Apr 2017 20:43:37 +0800</pubDate><description><![CDATA[mysql参考：MySQL执行计划解读mysql
explain执行计划
id
select_type
table
type
possible_keys
key
key_len
ref
rows
Extra
explain执行计划
  使用explain查看，尽量优化sql使rows尽量小，因为查询的时候会对数据行加锁，所以rows越小代表锁的行越少  id
  select_type
  tabl]]></description><category></category></item><item><title><![CDATA[《mysql学习》-- 锁]]></title><link>https://blog.youkuaiyun.com/lizhi_java/article/details/69199975</link><guid>https://blog.youkuaiyun.com/lizhi_java/article/details/69199975</guid><author>lizhi_java</author><pubDate>Tue, 04 Apr 2017 20:42:42 +0800</pubDate><description><![CDATA[mysql参考：mysql悲观锁总结和实践 
[TOC]锁
  并发控制：当多个线程同时操作一张表时会出现并发问题
根据锁类型分
读锁(共享锁)：
写锁(独占锁):update时mysql会自动添加锁，也可以手动锁，lock tables tableName lockType,unlock tables
根据锁范围分
表锁：myisam
页锁：
行锁：锁粒度最小，最精细,innodb  多版本并发控]]></description><category></category></item><item><title><![CDATA[《mysql学习》-- MySQL数据库设计总结]]></title><link>https://blog.youkuaiyun.com/lizhi_java/article/details/69199374</link><guid>https://blog.youkuaiyun.com/lizhi_java/article/details/69199374</guid><author>lizhi_java</author><pubDate>Tue, 04 Apr 2017 20:41:48 +0800</pubDate><description><![CDATA[mysql原文：MySQL数据库设计总结 
[TOC]MySQL数据库设计总结规则1：一般情况可以选择MyISAM存储引擎，如果需要事务支持必须使用InnoDB存储引擎。注意：MyISAM存储引擎 B-tree索引有一个很大的限制：参与一个索引的所有字段的长度之和不能超过1000字节。另外MyISAM数据和索引是分开，而InnoDB的数据存储是按聚簇(cluster)索引有序排列的，主键是默认的聚簇]]></description><category></category></item><item><title><![CDATA[《redis学习》-- 缓存淘汰策略]]></title><link>https://blog.youkuaiyun.com/lizhi_java/article/details/68953179</link><guid>https://blog.youkuaiyun.com/lizhi_java/article/details/68953179</guid><author>lizhi_java</author><pubDate>Sun, 02 Apr 2017 17:41:35 +0800</pubDate><description><![CDATA[redis缓存淘汰策略参考：Redis 内存淘汰机制​   深入理解Redis主键失效原理及实现机制
认识最大缓存
  在 redis 中，允许用户设置最大使用内存大小 server.maxmemory，默认为0，没有指定最大缓存，如果有新的数据添加，超过最大内存，则会使redis崩溃，所以一定要设置。redis 内存数据集大小上升到一定大小的时候，就会实行数据淘汰策略。
主键失效
  作为一种定期]]></description><category></category></item><item><title><![CDATA[《redis学习》-- 缓存穿透和缓存雪崩的预防和解决]]></title><link>https://blog.youkuaiyun.com/lizhi_java/article/details/68953014</link><guid>https://blog.youkuaiyun.com/lizhi_java/article/details/68953014</guid><author>lizhi_java</author><pubDate>Sun, 02 Apr 2017 17:13:19 +0800</pubDate><description><![CDATA[redis缓存穿透和缓存失效的预防和解决缓存穿透：
认识
  缓存穿透是指查询一个一定不存在的数据，由于缓存是不命中时需要从数据库查询，查不到数据则不写入缓存，这将导致这个不存在的数据每次请求都要到数据库去查询，造成缓存穿透。解决办法：  
  对所有可能查询的参数以hash形式存储，在控制层先进行校验，不符合则丢弃。还有最常见的则是采用布隆过滤器，将所有可能存在的数据哈希到一个足够大的bitmap]]></description><category></category></item><item><title><![CDATA[《设计模式》-- 访问者模式]]></title><link>https://blog.youkuaiyun.com/lizhi_java/article/details/68216206</link><guid>https://blog.youkuaiyun.com/lizhi_java/article/details/68216206</guid><author>lizhi_java</author><pubDate>Wed, 29 Mar 2017 22:57:06 +0800</pubDate><description><![CDATA[访问者模式参考：《JAVA与模式》之访问者模式访问者模式
认识
思考
使用场景
优缺点
UML图
代码实现
认识
  访问者模式是对象的行为模式。访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话，接受这个操作的数据结构则可以保持不变。变化的是访问者，不变的是被访问者 
思考
  本质是：预留通路，回调实现
  
  有条件的接收访问，如果不满足条件，禁止访问
使用]]></description><category></category></item><item><title><![CDATA[《设计模式》-- 解释器模式]]></title><link>https://blog.youkuaiyun.com/lizhi_java/article/details/68183085</link><guid>https://blog.youkuaiyun.com/lizhi_java/article/details/68183085</guid><author>lizhi_java</author><pubDate>Wed, 29 Mar 2017 22:11:17 +0800</pubDate><description><![CDATA[解释器模式解释器模式
认识
思考
使用场景
优缺点
UML图
代码实现
认识
  解释器模式是类的行为模式。给定一个语言之后，解释器模式可以定义出其文法的一种表示，并同时提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句子。
思考
  本质：分离实现，解释执行
使用场景
  
  当配置文件中xml的结构发生改变后，能够很方便的获取相应元素、或者是属性的值，而不用再去修改解析xm的程序]]></description><category></category></item><item><title><![CDATA[《设计模式》-- 命令模式]]></title><link>https://blog.youkuaiyun.com/lizhi_java/article/details/67634923</link><guid>https://blog.youkuaiyun.com/lizhi_java/article/details/67634923</guid><author>lizhi_java</author><pubDate>Tue, 28 Mar 2017 13:41:11 +0800</pubDate><description><![CDATA[命令模式命令模式
认识
思考
使用场景
优缺点
UML图
代码实现
普通命令模式
宏命令
认识
  命令模式属于对象的行为模式，命令模式是对命令的封装。命令模式把发出命令的责任和执行命令的责任分割开，委派给不同的对象。
  
  每一个命令都是一个操作：请求的一方发出请求要求执行一个操作；接收的一方收到请求，并执行操作。命令模式允许请求的一方和接收的一方独立开来，使得请求的一方不必知道接收请求的一方]]></description><category></category></item><item><title><![CDATA[《设计模式》-- 迭代器模式]]></title><link>https://blog.youkuaiyun.com/lizhi_java/article/details/67634681</link><guid>https://blog.youkuaiyun.com/lizhi_java/article/details/67634681</guid><author>lizhi_java</author><pubDate>Tue, 28 Mar 2017 13:10:27 +0800</pubDate><description><![CDATA[迭代器模式迭代器模式
认识
思考
使用场景
优缺点
UML图
代码实现
认识
  迭代子模式是对象的行为模式。迭代子模式可以顺序地访问一个聚合对象中的元素而不必暴露聚合对象的内部表示
  
  JAVA聚合对象是实现了共同的java.util.Collection接口的对象，还有数组(最基本的聚合对象)
思考
  迭代器的关键思想就是把对聚合对象的遍历和访问从聚合对象中分离出来，放入单独的迭代器中处]]></description><category></category></item><item><title><![CDATA[《java并发》--ThreadLocal]]></title><link>https://blog.youkuaiyun.com/lizhi_java/article/details/66986116</link><guid>https://blog.youkuaiyun.com/lizhi_java/article/details/66986116</guid><author>lizhi_java</author><pubDate>Mon, 27 Mar 2017 21:41:12 +0800</pubDate><description><![CDATA[ThreadLocal认识
  ThreadLocal是一个map结构，ThreadLocal.set()默认是用当前线程作为key来使用。
  
  ThreadLocal不是用来解决共享对象的多线程并发问题，而是每个线程都创建一个对象，其他线程访问不到本线程的对象，从而达到线程安全。
  
  如果ThreadLocal.set()进行的对象本来就是多个线程共享的一个对象，还是会出现并发访问的问]]></description><category></category></item><item><title><![CDATA[《设计模式》-- 模板方法模式]]></title><link>https://blog.youkuaiyun.com/lizhi_java/article/details/66970561</link><guid>https://blog.youkuaiyun.com/lizhi_java/article/details/66970561</guid><author>lizhi_java</author><pubDate>Mon, 27 Mar 2017 13:11:23 +0800</pubDate><description><![CDATA[模板方法模式模板方法模式
认识
思考
使用场景
优缺点
UML图
代码实现
认识
  模板方法模式是类的行为模式。准备一个抽象类，将部分逻辑以具体方法以及具体构造函数的形式实现，然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法，从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。
思考
  把程序中不变的部分抽象出来，放在抽象父类中，进行公共的实现，把变化]]></description><category></category></item><item><title><![CDATA[《设计模式》-- 观察者模式]]></title><link>https://blog.youkuaiyun.com/lizhi_java/article/details/65465666</link><guid>https://blog.youkuaiyun.com/lizhi_java/article/details/65465666</guid><author>lizhi_java</author><pubDate>Thu, 23 Mar 2017 23:06:11 +0800</pubDate><description><![CDATA[观察者模式参考：《JAVA与模式》之观察者模式观察者模式
认识
思考
使用场景
优缺点
UML图
代码实现
推模型
拉模型
jdk提供的接口
认识
  观察者模式是对象的行为模式，定义了一种一对多的依赖关系，多个观察者对象同时监听一个主题对象，当主题对象状态发生改变时，会通知所有观察者对象更新。是一种发布-订阅模式。
思考
  在观察者模式中，观察者和目标是单向依赖的，只有观察者依赖目标，观察者只能]]></description><category></category></item><item><title><![CDATA[《设计模式》-- 享元模式]]></title><link>https://blog.youkuaiyun.com/lizhi_java/article/details/64651057</link><guid>https://blog.youkuaiyun.com/lizhi_java/article/details/64651057</guid><author>lizhi_java</author><pubDate>Wed, 22 Mar 2017 00:12:10 +0800</pubDate><description><![CDATA[享元模式参考：《JAVA与模式》之享元模式享元模式
认识
思考
使用场景
优缺点
UML图
单纯享元模式
复合享元模式
代码实现
单纯享元模式
复合享元模式
认识
  享元模式是对象的结构模式。享元模式以共享的方式高效地支持大量的细粒度对象。避免不必要的资源损耗
  
  在享元模式中，通常是第一次请求享元工厂时，享元工厂进行共享对象的初始化，然后放入享元工厂的缓存中，之后访问直接使用缓存中的对象。]]></description><category></category></item><item><title><![CDATA[《设计模式》-- 适配器模式]]></title><link>https://blog.youkuaiyun.com/lizhi_java/article/details/64604370</link><guid>https://blog.youkuaiyun.com/lizhi_java/article/details/64604370</guid><author>lizhi_java</author><pubDate>Tue, 21 Mar 2017 23:19:16 +0800</pubDate><description><![CDATA[适配器模式适配器模式
认识
思考
使用场景
优缺点
UML图
类适配器
对象适配器
缺省适配
代码实现
类适配器
对象适配器
缺省适配
认识
  适配器模式是将一个类的接口变为客户端想要的另外一个接口，从而使原本因接口不匹配无法在一起工作的两个类能够在一起工作。适配器的目的是复用已有的功能。
  
  适配器分为类适配器和对象适配器两种
  
  缺省适配:为一个接口提供缺省实现，一般是一个抽象类]]></description><category></category></item><item><title><![CDATA[《设计模式》-- 代理模式]]></title><link>https://blog.youkuaiyun.com/lizhi_java/article/details/64440482</link><guid>https://blog.youkuaiyun.com/lizhi_java/article/details/64440482</guid><author>lizhi_java</author><pubDate>Tue, 21 Mar 2017 13:14:18 +0800</pubDate><description><![CDATA[代理模式代理模式
认识
思考
使用场景
优缺点
UML图
代码实现
认识
  代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象，并由代理对象控制对原对象的引用。
  
  客户端操作代理对象时，具体的操作还是由被代理对象实现，客户端操作代理，代理操作被代理，被代理对象对于客户端是透明的。
  
  代理模式同装饰模式不同在，代理模式中的被代理对象一般不通过客户端传入，对客户端透明；装饰]]></description><category></category></item><item><title><![CDATA[《设计模式》-- 策略模式]]></title><link>https://blog.youkuaiyun.com/lizhi_java/article/details/64237049</link><guid>https://blog.youkuaiyun.com/lizhi_java/article/details/64237049</guid><author>lizhi_java</author><pubDate>Tue, 21 Mar 2017 00:31:16 +0800</pubDate><description><![CDATA[策略模式策略模式
认识
思考
使用场景
优缺点
UML图
代码实现
认识
  策略模式属于对象的行为模式。其用意是针对一组算法，将每一个算法封装到具有共同接口的独立的类中，从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。
  
  策略模式很好的体现了开-闭原则和里氏替换原则
思考
  
  本质：分离算法，选择实现
  策略模式的重心
  
  策略模式的重心不是如]]></description><category></category></item></channel></rss>